summaryrefslogtreecommitdiff
path: root/Source/Dafny/Cloner.cs
diff options
context:
space:
mode:
authorGravatar Rustan Leino <unknown>2014-03-17 15:16:16 -0700
committerGravatar Rustan Leino <unknown>2014-03-17 15:16:16 -0700
commite4e919490ff161bd7acaa81b8c5bca49b719c58e (patch)
tree3b5bd33435176c2e68ed63acb0ac30860502a9ff /Source/Dafny/Cloner.cs
parentb4648bc600a7f566aa150864950a6385ce3bd9af (diff)
AST refactoring:
Changed VarDecl to no longer inherit from Statement. Removed ConcreteSyntaxStatement and changed VarDeclStmt's superclass be Statement.
Diffstat (limited to 'Source/Dafny/Cloner.cs')
-rw-r--r--Source/Dafny/Cloner.cs7
1 files changed, 2 insertions, 5 deletions
diff --git a/Source/Dafny/Cloner.cs b/Source/Dafny/Cloner.cs
index 97e88e3d..385bfd78 100644
--- a/Source/Dafny/Cloner.cs
+++ b/Source/Dafny/Cloner.cs
@@ -438,10 +438,6 @@ namespace Microsoft.Dafny
var s = (AssignStmt)stmt;
r = new AssignStmt(Tok(s.Tok), Tok(s.EndTok), CloneExpr(s.Lhs), CloneRHS(s.Rhs));
- } else if (stmt is VarDecl) {
- var s = (VarDecl)stmt;
- r = new VarDecl(Tok(s.Tok), Tok(s.EndTok), s.Name, CloneType(s.OptionalType), s.IsGhost);
-
} else if (stmt is CallStmt) {
var s = (CallStmt)stmt;
r = new CallStmt(Tok(s.Tok), Tok(s.EndTok), s.Lhs.ConvertAll(CloneExpr), CloneExpr(s.Receiver), s.MethodName, s.Args.ConvertAll(CloneExpr));
@@ -488,7 +484,8 @@ namespace Microsoft.Dafny
} else if (stmt is VarDeclStmt) {
var s = (VarDeclStmt)stmt;
- r = new VarDeclStmt(Tok(s.Tok), Tok(s.EndTok), s.Lhss.ConvertAll(c => (VarDecl)CloneStmt(c)), (ConcreteUpdateStatement)CloneStmt(s.Update));
+ var lhss = s.Lhss.ConvertAll(c => new VarDecl(Tok(c.Tok), Tok(c.EndTok), c.Name, CloneType(c.OptionalType), c.IsGhost));
+ r = new VarDeclStmt(Tok(s.Tok), Tok(s.EndTok), lhss, (ConcreteUpdateStatement)CloneStmt(s.Update));
} else {
Contract.Assert(false); throw new cce.UnreachableException(); // unexpected statement