Commit message (Collapse) | Author | Age | ||
---|---|---|---|---|
... | ||||
* | | Shorter wait-for-idle time in the Dafny IDE | leino | 2014-09-29 | |
| | | ||||
| * | DafnyExtension: Made it not log the pretty-printed program. | wuestholz | 2014-09-28 | |
| | | ||||
| * | DafnyExtension: minor change due to change in Boogie | wuestholz | 2014-09-28 | |
| | | ||||
| * | Did more refactoring. | wuestholz | 2014-09-23 | |
| | | ||||
| * | Did more refactoring. | wuestholz | 2014-09-23 | |
| | | ||||
| * | Did some refactoring. | wuestholz | 2014-09-23 | |
| | | ||||
| * | DafnyExtension: minor change | wuestholz | 2014-09-22 | |
|/ | ||||
* | Fixed crash after parse error | Rustan Leino | 2014-09-11 | |
| | ||||
* | Print system module (in a comment) with /rprint. | leino | 2014-09-09 | |
| | | | | Cleaner printing of .reads and .requires members of the built-in arrow "classes". | |||
* | Bounds discovery now takes newtype constraints into consideration. | leino | 2014-08-28 | |
| | ||||
* | Disallow parentheses-less declarations of predicates and co-predicates, ↵ | leino | 2014-08-27 | |
| | | | | along with a backward-compatibility warning message if such declarations are attempted | |||
* | Merge, and refactored bit in Cloner into class ClonerButDropMethodBodies. | leino | 2014-08-27 | |
|\ | ||||
* | | Refactored ArrowType's to be resolved with other types. ArrowTypeDecl's are ↵ | leino | 2014-08-27 | |
| | | | | | | | | now created by the parser into the system module. | |||
* | | Various resolution fixes and improvements | leino | 2014-08-26 | |
| | | | | | | | | | | Added IsGoodHeap antecedent in (exists heap ...) in newtype Is axioms. Added IDE tool tips in newtype constraints. | |||
* | | Refactoring: renamed DerivedTypeDecl to NewtypeDecl | leino | 2014-08-26 | |
| | | ||||
* | | Changed syntax of newtype | leino | 2014-08-26 | |
| | | ||||
* | | Fixed scoping to allow a datatype to have a constructor with the same name. | leino | 2014-08-26 | |
| | | | | | | | | Allow conversions to qualify type with module names. | |||
* | | Implemented arbitrary numeric conversions (but name resolution still needs ↵ | leino | 2014-08-25 | |
| | | | | | | | | work when module names are involved) | |||
* | | Fixed bugs in previous check-in | leino | 2014-08-25 | |
| | | | | | | | | Made up for inadequacy in reasoning machinery (supplying Int(Real(i)) == i axiom) | |||
* | | Check that result of newtype operations satisfy the newtype constraint | leino | 2014-08-25 | |
| | | ||||
* | | Allow $Heap to occur in constraints (even though it isn't actually used) | leino | 2014-08-25 | |
| | | ||||
| * | changed $implements function argument type to ClassNameType (from Ty) | Reza Ahmadi | 2014-08-24 | |
| | | ||||
* | | Define $Is and $IsAlloc predicates for newtypes. | leino | 2014-08-24 | |
| | | ||||
| * | - generating TraitParent axioms | Reza Ahmadi | 2014-08-24 | |
| | | | | | | | | - $Is and $IsAlloc is no longer generated for a trait | |||
* | | Cycle detection among newtypes. Start of well-formedness check for newtypes. | leino | 2014-08-24 | |
| | | ||||
| * | Merge | Dan Rosén | 2014-08-22 | |
| |\ | |/ |/| | ||||
* | | Type check and pretty print newtype constraints | leino | 2014-08-22 | |
| | | ||||
* | | Added .Trunc field to real-based types | leino | 2014-08-21 | |
| | | | | | | | | Changed semantics of real-to-int conversions--these now have a precondition that the number converted is already an integer | |||
* | | Changed syntax of derived types to "newtype" | leino | 2014-08-21 | |
| | | | | | | | | Added parsing of constraints (beyond parsing is yet to come) | |||
* | | Support for non-constrained derived types ("new types"). | leino | 2014-08-21 | |
| | | | | | | | | | | Arbitrary conversion from int/real to derived types not yet supported. Changed rules about numeric type conversions to allow conversions from any numeric type. | |||
| * | Remove the cloner inside the Resolver | Dan Rosén | 2014-08-21 | |
| | | ||||
* | | Merge | leino | 2014-08-20 | |
|\ \ | ||||
* | | | Start of derived types (aka "new types") | leino | 2014-08-20 | |
| |/ |/| | | | | | Fixed bug in type checking for integer division. | |||
| * | Merge | Rustan Leino | 2014-08-19 | |
| |\ | |/ |/| | ||||
| * | Change behavior of 'decreases *', which can be applied to loops and methods. ↵ | Rustan Leino | 2014-08-19 | |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Now, loops that may possibly do an infinite number of iterations (that is, loops marked with 'decreases *') and calls to methods marked with 'decreases *' are allowed only in methods that themselves are marked with 'decreases *'. As before, ghost loops and ghost methods are not allowed to be marked with 'decreases *'. Previously, 'decreases *' was allowed on a method only if the method was tail recursive; this is no longer so. Note, however, that if the method is not tail recursive and engages in infinite recursion, then it will eventually run out of stack space. Previously, a 'decreases *' was not inherited in a refining module; this is no longer so. That is, 'decreases *' is now inherited. To refine a possibly non-terminating method or loop, the refining version simply provides a decreases clause that does not mention '*'. Note that if the refined method is not recursive, it still needs to have _some_ decreases clause in order not to inherit the 'decreases *' from the refined method, but the expression stated in the decreases clause can be arbitrary (for example, one can write 'decreases true' or 'decreases 7' or 'decreases x' for some 'x' in scope). Note, in the new design, a method needs to be declared with 'decreases *' if it may recurse forever _or_ if it contains a possibly infinite loop. Note that the absence of 'decreases *' on a loop does not mean the loop will terminate, but it does mean that the loop will iterate a finite number of times (the subtle distinction here is that a loop without a 'decreases *' is allowed to contain a nested loop that has a 'decreases *' -- provided the enclosing method is also declared with 'decreases *', as previously mentioned). | |||
* | | Handle underscores in lambda bound variable lists properly | Dan Rosén | 2014-08-19 | |
|/ | | | | + add a test case with lambdas that don't get their types fully specified | |||
* | Fix type inference bug in data rank comparison when one side can be a TypeVar | Dan Rosén | 2014-08-19 | |
| | ||||
* | Consider lambdas literals + create literal axioms when an argument is a function | Dan Rosén | 2014-08-18 | |
| | ||||
* | Fix type equality for UserDefinedTypes | Dan Rosén | 2014-08-15 | |
| | ||||
* | Refactor resolver, and really allow reads to take fields of type A -> set<obj> | Dan Rosén | 2014-08-15 | |
| | | | | twoState and codeContext is moved to a new class ResolveOpts | |||
* | Fix a performance issue regarding requires for top level function handles | Dan Rosén | 2014-08-14 | |
| | ||||
* | Make arrow types not look like reference types for the resolver | Dan Rosén | 2014-08-14 | |
| | ||||
* | Optimise ApplyExpr to FunctionCallExpr when possible in translator | Dan Rosén | 2014-08-14 | |
| | ||||
* | Generate function handle requires for functions without a body | Dan Rosén | 2014-08-14 | |
| | ||||
* | Reword error message for type error in lambda requires clause | Dan Rosén | 2014-08-14 | |
| | ||||
* | Fix bug in type substitution for type variables | Dan Rosén | 2014-08-14 | |
| | ||||
* | Allow reads to take fields of type A -> set<object> | Dan Rosén | 2014-08-14 | |
| | ||||
* | Refactor: Change ApplyExpr's Receiver to Function | Dan Rosén | 2014-08-14 | |
| | ||||
* | Re-included lost calls to CheckEqualityTypes_Type | leino | 2014-08-13 | |
| | | | | Modified syntax in some tests, since predicates now require parentheses (without parentheses refers to a predicate, not an application of the predicate) | |||
* | Merge | leino | 2014-08-13 | |
|\ |