diff options
author | Dan Liew <daniel.liew@imperial.ac.uk> | 2015-01-25 20:46:28 +0000 |
---|---|---|
committer | Dan Liew <daniel.liew@imperial.ac.uk> | 2015-01-25 20:46:28 +0000 |
commit | 75a170c34ad60fda22961045cfcdb89fda3f4571 (patch) | |
tree | 5aca2937790180f264db425f065aa367e6b63264 /Source/VCExpr | |
parent | f11b44a267d7b77feccf33dd1d6d3a2ee712458e (diff) |
Change the return type of StandardVisitor.VisitForAllExpr() from
ForAllExpr to Expr. Enforcing the return type be ForAllExpr is
too restrictive. For example it prevents anyone from implementing
a visitor that does constant folding of an Expr tree.
There is precedence for this. For example VisitNAryExpr() returns
an Expr not an NAryExpr.
Unfortunately this a breaking API change so anyone who subclasses
the StandardVisitor (or one of its sub classes) and overrides this
method will get compilation errors until they change the return type.
a visitor that does constant folding of an Expr tree
Diffstat (limited to 'Source/VCExpr')
-rw-r--r-- | Source/VCExpr/Boogie2VCExpr.cs | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/Source/VCExpr/Boogie2VCExpr.cs b/Source/VCExpr/Boogie2VCExpr.cs index d53a75a4..f261553b 100644 --- a/Source/VCExpr/Boogie2VCExpr.cs +++ b/Source/VCExpr/Boogie2VCExpr.cs @@ -461,7 +461,7 @@ namespace Microsoft.Boogie.VCExprAST { return node;
}
- public override ForallExpr VisitForallExpr(ForallExpr node) {
+ public override Expr VisitForallExpr(ForallExpr node) {
//Contract.Requires(node != null);
Contract.Ensures(Contract.Result<ForallExpr>() != null);
node = (ForallExpr)this.VisitQuantifierExpr(node);
|