summaryrefslogtreecommitdiff
path: root/Test/dafny0/ResolutionErrors.dfy
Commit message (Collapse)AuthorAge
* Renamed identifiers for increased geopolitical appealGravatar Rustan Leino2016-02-08
|
* Implemented resolution, verification, and (poorly performing) compilation of ↵Gravatar leino2015-10-05
| | | | | | | existential if guards. Fixed bugs in ghost checks involving comprehensions and attributes. Added SubstituteBoundedPool method.
* Removed specContextOnly parameter from ResolveStatement.Gravatar leino2015-09-28
| | | | Moved all bounds discovery to resolution pass 1.
* Removed more traces of the previous resolution checks that happened during ↵Gravatar leino2015-09-28
| | | | | | pass 0. Fixed resolution of specification components of alternative loops.
* Additional testsGravatar leino2015-09-28
|
* Whitespace changes in test fileGravatar leino2015-09-28
|
* Changed computation of ghosts until pass 2 of resolution.Gravatar leino2015-09-28
| | | | | | | Other clean-up in resolution passes, like: Include everything of type "char" into bounds that are discovered, and likewise for reference types. Allow more set comprehensions, determining if they are finite based on their argument type. Changed CalcExpr.SubExpressions to not include computed expressions.
* Added back in various ghost testsGravatar leino2015-09-20
|
* Changes that only affect line numbers in test caseGravatar leino2015-09-20
|
* Removed tabs from test fileGravatar leino2015-09-20
|
* Preliminary refactoring of ghost-statement computations to after type checkingGravatar leino2015-09-20
|
* Bug fix: check that assign-such-that constraint is of type booleanGravatar Rustan Leino2015-07-31
|
* Fixed crash in resolution where, after reporting an error, the cases #type ↵Gravatar Rustan Leino2015-07-29
| | | | and #module were not handled
* Type parameters in method/function signatures are no longer auto-declared. ↵Gravatar Rustan Leino2015-07-02
| | | | | | | | | | | | | Although convenient and concise, the auto-declare behavior has on many occasions caused confusion when a type name has accidentally been mistyped (and Dafny had then accepted and auto-declared the name). Note, the behavior of filling in missing type parameters is still supported. This mode, although unusual (even original?) in languages, is different from the auto- declare behavior. For auto-declare, identifiers could be used in the program without having a declaration. For fill-in parameters, the implicitly declared type parameters remain anonymous.
* Fixed bug in tuplesGravatar leino2015-04-24
|
* Allow let-such-that expression to be compiled, provided that they provably ↵Gravatar leino2015-03-13
| | | | have a unique value
* Fixed bug in resolution of illegal programs.Gravatar leino2015-03-10
| | | | Fixed comments in some test cases.
* Stop pretty-print from emitting deprecated semi-colons.Gravatar qunyanm2015-03-05
|
* When ambiguous references all resolve to the same declaration, don't complainGravatar leino2015-01-09
|
* Language change: All functions and methods declared lexically outside any ↵Gravatar leino2014-12-12
| | | | | | | | | | class are now automatically static, and fields are no longer allowed to be declared there. Stated differently, all heap state must now be declared inside an explicitly declared class, and functions and methods declared outside any class can be viewed as belonging to the module. The motivating benefit of this change is to no longer need the 'static' keyword when declaring a module of functions and methods.
* Snapshot, to be continuedGravatar leino2014-12-02
|
* Fixed bug where resolution was overly restrictive with ghost variables ↵Gravatar leino2014-11-19
| | | | | | appearing in reads clauses. Fixed bug in the checking of reads subset for field frame targets ("back ticks")
* Disallow automatic completion of type arguments to the LHS of datatype ↵Gravatar leino2014-10-28
| | | | declarations
* Stricter rules about that types need to be completely resolved.Gravatar leino2014-10-08
| | | | | | Renamed "default constructor" to "anonymous constructor" (since there's really nothing "default" about it). If the type of literal "null" is unresolved, make the type "object". The need to translate unresolved proxies is now assumed to be gone.
* Support for non-constrained derived types ("new types").Gravatar leino2014-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.
* MergeGravatar leino2014-08-20
|\
* | Start of derived types (aka "new types")Gravatar leino2014-08-20
| | | | | | | | Fixed bug in type checking for integer division.
| * Change behavior of 'decreases *', which can be applied to loops and methods. ↵Gravatar Rustan Leino2014-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).
* Refactor resolver, and really allow reads to take fields of type A -> set<obj>Gravatar Dan Rosén2014-08-15
| | | | twoState and codeContext is moved to a new class ResolveOpts
* Resolved further merge issuesGravatar leino2014-08-05
|
* Fixed bug Issue 37: expand type synonyms in more (hopefully all) places in ↵Gravatar leino2014-08-02
| | | | the resolver and translator
* Allow an arbitrary-type to take type parametersGravatar Rustan Leino2014-07-15
|
* Added type synonyms. (No support yet for these in refinements.)Gravatar Rustan Leino2014-07-11
|
* MergeGravatar Rustan Leino2014-07-08
|\
* | Test cases for int<->real conversionsGravatar Rustan Leino2014-07-08
| |
| * Allow array-type parameters to be filled in automatically.Gravatar leino2014-07-02
|/ | | | Enhanced filling in of datatype parameters: allow places that need only a prefix of the parameters of the datatype
* Added tuples and tuple types. Syntax is the expected one, namely parentheses ↵Gravatar Rustan Leino2014-06-27
| | | | around a comma-delimited list of expressions or types. Unit and the unit type are denoted ().
* Added support for 'dirty' forall statements.Gravatar chmaria2014-06-03
| | | | | | | | | | | One can now write forall statements without bodies (but with ensures clauses) as follows: forall s | s in S ensures s < 0; where S is set<int>. The ensures clauses are assumed but not checked.
* Set up the same test infrastructure as in Boogie.Gravatar wuestholz2014-05-29
|
* Fixed bug #32 dafny.codeplex.com.Gravatar Rustan Leino2014-04-15
|
* Changed an error from a verification error to a syntactic (resolution) errorGravatar Rustan Leino2014-04-04
|
* Added "modify" statement.Gravatar Rustan Leino2014-04-03
| | | | In a frame govered by a ghost context, ignore explicit mentions of `g if g is a ghost field.
* Fixed problem with propagating allocation information about array elements.Gravatar Rustan Leino2014-03-20
| | | | Improved situation with (reducing bogosity of) type checking of "object".
* Added ghost let expressions.Gravatar Rustan Leino2014-01-05
|
* Allow calls to side-effect-free ghost methods from expressionsGravatar Rustan Leino2013-08-06
|
* Set up call-graph to keep track of edges between functions and methods. (To ↵Gravatar Rustan Leino2013-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 ↵Gravatar Rustan Leino2013-08-02
| | | | a "modifies" clause) and "colemma" (synonymous with "comethod"; perhaps "comethod" will go away at some point)
* Moved resolution of BinaryExpr.ResolveOp until the CheckTypeInference phase, ↵Gravatar Rustan Leino2013-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.
* Disallow allocations in ghost contextsGravatar Rustan Leino2013-03-06
|
* Added side-effects and control-flow checks in hints.Gravatar Nadia Polikarpova2013-03-05
|