| Commit message (Collapse) | Author | Age |
| |
|
|
|
|
|
|
| |
If constructing immutable Expr bottom up this would be very inefficient
because the hashcode would be recomputed unnecessarily. Now just make
ComputeHashCode() methods call GetHashCode() on Expr instead.
|
|
|
|
| |
are immutable. Add unit tests to check this.
|
|
|
|
| |
to set them as immutable (not currently enforced for these Expr types).
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is currently not enforced (it really should be). So right now it
only amounts to a promise by the client that the Expr will not be modified
after it is constructed. We should actually enforce this by protecting
various fields of the Expr classes so they can't be changed if an Expr
is constructed as Immutable.
The motivation for doing this is it allows the value of GetHashCode()
to be cached. Expr classes now implement ComputeHashCode() to do the
actuall hash code computation.
|
| |
|
| |
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| | |
- making field private
- adding getter/setter
- copying incoming list
- exposing read-only list
(with help from David Rohr)
|
| |
| |
| |
| |
| |
| |
| |
| | |
- making field private
- exposing read-only list
- copying incoming list
- adding methods 'AddParam', 'AddParams', and 'ClearParams'
(with help from David Rohr)
|
| | |
|
| | |
|
|/
|
|
|
|
| |
-replacing public field by private field + getter
-using read-only wrappers (to avoid leaking)
-cloning the tr list in the setter and constructor (to avoid capturing)
|
| |
|
|\ |
|
| | |
|
| |
| |
| |
| | |
true but A.GetHashCode() == B.GetHashCode() return false.
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
BinderExpr was doing:
object.Equals(this.TypeParameters, other.TypeParameters)
&& object.Equals(this.Dummies, other.Dummies)
Both of these are wrong because these are of type List<> and so
- object.Equals(this.TypeParamters, other.TypeParameters) will call this.TypeParameters.Equals(other.TypeParamters) (assuming they aren't references to the same list)
- object.Equals(this.Dummies, other.TypeParameters) will call this.TypeParameters.Equals(other.Dummies) (assuming they aren't references to the same list)
so this is becomes a reference comparision on Lists<>. This is wrong
because Equals() has been overloaded to implement structural equality.
This affects the classes ForallExpr, LambdaExpr and ExistsExpr.
|
|
|
|
|
|
| |
When running boogie form the command line, this should be on by default.
On the other hand, the TokenTextWriter constructors and PrintBplFile now have an
argument for this, but by default it is off.
|
| |
|
|
|
|
| |
discussed with Rustan)
|
|
|
|
|
|
| |
before real verification.
Fixed treatment of lambda-expression attributes.
|
|
|
|
|
|
| |
of its methods now demand the return value to equal the given node.
Changed read-only visitors to extend from ReadOnlyVisitor instead of just StandardVisitor.
|
| |
|
|
|
|
| |
updates to DeviceCache.bpl to make it verify
|
| |
|
|
|
|
| |
does not assemble any nopats from nested quantifiers/lambdas.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
conversion from Spec# into C# moved a constructor call
|
|
|
|
|
|
|
| |
interval-based abstract interpretation instead.
Command-line option '/infer' now accepts only arguments 't' and 'j' where the latter is the default now for Boogie.
Command-line option '/logInfer' has been dropped.
|
|
|
|
| |
Make the set class generic
|
| |
|
| |
|
|
|
|
| |
fewer error messages when compiling with runtime checking on.
|
| |
|
|
|