Commit message (Collapse) | Author | Age | |
---|---|---|---|
* | Allow left-hand sides of a let expression to be patterns (like in the case ↵ | 2014-01-08 | |
| | | | | | | | of a match expression). Moved the implementation of CondApplyBox, BoxIfNecessary, CondApplyUnbox, and ModeledAsBoxType from class ExpressionTranslator to class Translator. Fixed compilation of match expressions, to allow them anywhere. | ||
* | Added ghost let expressions. | 2014-01-05 | |
| | |||
* | Improved the name-clashing situation when substituting to produce printable ↵ | 2014-01-03 | |
| | | | | AdditionalInformation for forall-statement ensures clauses. | ||
* | Merge | 2014-01-03 | |
|\ | |||
| * | Make ModuleDefinition inherit from TopLevelDecl instead of just Declaration | 2014-01-03 | |
| | | |||
* | | Allow "match" expressions anywhere | 2014-01-03 | |
|/ | |||
* | Hover text for inferred postconditions of 'forall' statements (the one for ↵ | 2013-12-30 | |
| | | | | calls leaves something to be desired) | ||
* | Merge | 2013-12-30 | |
|\ | |||
* | | Added proper parsing for StmtExpr's in all contexts. | 2013-12-30 | |
| | | | | | | | | | | | | Adjusted printer accordingly. Fixed bug in Substituter for CalcStmt in StmtExpr's. Always show terminating semi-colon in hover-text for default decreases clauses. | ||
| * | Changed the iterator class hover text back to the iterator name (which is ↵ | 2013-12-20 | |
|/ | | | | consistent with everything else), not the "iterator" keyword | ||
* | Hover text for default decreases clauses of loops. | 2013-12-20 | |
| | | | | Collected various routines used to create resolved Dafny expressions into the Expression class. | ||
* | Moved the hover text of iterator classes to the "iterator" keyword itself ↵ | 2013-12-19 | |
| | | | | (since it is long and there may be other things hanging off the iterator name) | ||
* | Merge | 2013-12-19 | |
|\ | |||
* | | Added an .EndTok for every statement. (Note, in some places, especially in ↵ | 2013-12-19 | |
| | | | | | | | | | | | | | | VarDecl statements, there's often no good .EndTok information.) Used the .EndTok in CaptureState information. In other words, move the blue dots in the IDE to after the statement just executed. Removed /*!*/ comments in some parts of the source code -- CodeContracts reveal this information. | ||
| * | Compute default decreases clauses in Resolver instead of in the Translator. | 2013-12-19 | |
|/ | | | | Make this information available as AdditionalInformation, that is, as hover text in the IDE. | ||
* | Merge | 2013-12-13 | |
|\ | |||
| * | Produce "tail recursive" hover text in the IDE only for methods that are ↵ | 2013-12-13 | |
| | | | | | | | | recursive | ||
* | | Added support for opaque function definitions, indicated via the {:opaque} ↵ | 2013-12-13 | |
|/ | | | | | | | | attribute. Dafny cannot see the body of opaque function foo() unless you call the (automatically generated) lemma reveal_foo(). This can be helpful in preventing Dafny from spending unnecessary time thinking about the body of a function. | ||
* | Refactored the calling of rewriters | 2013-12-11 | |
| | |||
* | Fixed bug reported as discussion:472216 on dafny.codeplex.com | 2013-12-09 | |
| | |||
* | Allow calls to side-effect-free ghost methods from expressions | 2013-08-06 | |
| | |||
* | Merged PredicateExpr and CalcExpr into a single StmtExpr | 2013-08-06 | |
| | | | | In that process, added a SubstStmt method (and entourage) for substituting into statements | ||
* | Added hover text ("additional information") in places where co-predicates ↵ | 2013-08-04 | |
| | | | | provide syntactic shorthands | ||
* | Allow co-predicates to be wrapped inside bounded existential quantifiers | 2013-08-04 | |
| | |||
* | Added hover text ("additional information") in places where co-methods ↵ | 2013-08-04 | |
| | | | | provide syntactic shorthands | ||
* | Disallow call-graph clusters that mix co-methods / prefix methods with other ↵ | 2013-08-04 | |
| | | | | | | things. Disallow call-graph clusters that mix co-predicates / prefix predicates with other things. | ||
* | Set up call-graph to keep track of edges between functions and methods. (To ↵ | 2013-08-04 | |
| | | | | be done: replace InMethodContext with a Function/Method-Height in translator.) | ||
* | Introduced keywords "lemma" (like a "ghost method", but not allowed to have ↵ | 2013-08-02 | |
| | | | | a "modifies" clause) and "colemma" (synonymous with "comethod"; perhaps "comethod" will go away at some point) | ||
* | Merge | 2013-07-31 | |
|\ | |||
* | | Allowing dangling hints in calculations. | 2013-07-31 | |
| | | |||
| * | Minor change | 2013-07-30 | |
|/ | |||
* | Added "co-recursive call" to drop box | 2013-07-30 | |
| | |||
* | Simplified the guardedness checking algorithm | 2013-07-30 | |
| | |||
* | Co-recursion, now sounder than ever! | 2013-07-30 | |
| | | | | | | - prefix equality is destructive - co-methods are not allowed to have out-parameters - in an SCC with both co-recursive and recursive calls, the latter are allowed only in non-destructive contexts | ||
* | Allow field names to be sequences of digits (this is nice, for example, to ↵ | 2013-07-24 | |
| | | | | define a Tuple with fields .0 and .1) | ||
* | DafnyExtension: Added support for collecting additional information during ↵ | 2013-07-15 | |
| | | | | resolution and displaying it. | ||
* | Datatypes with ghost fields (that is, with constructors with ghost ↵ | 2013-07-09 | |
| | | | | | | parameters) do not support equality, since the ghost fields will be erased during compilation. Allow any equalities to be passed in for ghost parameters. | ||
* | Fixed bugs reported as Issue 20. | 2013-07-04 | |
| | | | | | | For the first one, co-recursive calls are allowed only immediately inside co-constructors (which previously wasn't checked properly). For the second one, a resolution error had caused a crash in Dafny. Also, tightened up requirement about equality, since equality on non-codatatypes can also be destructive (if the type contains a co-datatype value). | ||
* | Fixed soundness bug with co-recursive calls: co-recursive calls may now no ↵ | 2013-06-29 | |
| | | | | longer to to functions with ensures clauses | ||
* | Fixed unsoundness (and also allowed other, sound cases) in the admissability ↵ | 2013-06-28 | |
| | | | | checks for co-recursive calls | ||
* | Fixed some Code Contract type errors | 2013-06-25 | |
| | |||
* | Fixed a problem where changes to a substMap were not being undone, curing ↵ | 2013-06-20 | |
| | | | | | | Issue 15 on dafny.codeplex.com. Also fixed some code that make an optimization possible. | ||
* | Allow more tail calls, on account of considering non-loop aggregate ↵ | 2013-05-21 | |
| | | | | statements with only ghost sub-statements to be ghost | ||
* | Fixed bug, where prefix predicate was not included in CheckTypeInference visitor | 2013-05-21 | |
| | |||
* | Refactored some resolution stages to make use of Visitors | 2013-04-02 | |
| | |||
* | Moved resolution of BinaryExpr.ResolveOp until the CheckTypeInference phase, ↵ | 2013-04-01 | |
| | | | | | | | where more type information is known Refactored ConcreteUpdateStatement to no longer inherit from ConcreteSyntaxStatement. Fixed numerous places where some recursive checks did not reach. | ||
* | The "choose" statement, hacky and specialized as it was, is now gone. Use ↵ | 2013-03-27 | |
| | | | | the assign-such-that statement instead. For example: x :| x in S; | ||
* | Replaced SuperSetBoundedPool by SubSetBoundedPool, which is much more useful ↵ | 2013-03-27 | |
| | | | | | | in compiling assign-such-that statements Added run-time support for printing sets, multisets, maps, and sequences | ||
* | Compilation of (many common) assign-such-that statements. | 2013-03-26 | |
| | |||
* | Type-inference support for cardinality operator | 2013-03-26 | |
| |