summaryrefslogtreecommitdiff
path: root/Source/Dafny/Parser.cs
diff options
context:
space:
mode:
authorGravatar leino <unknown>2015-01-02 22:05:10 -0800
committerGravatar leino <unknown>2015-01-02 22:05:10 -0800
commitbcb2910254f5e108e65f8f6ff5ab4efe03728f6c (patch)
tree9a127103f5c1f86f44cdd12dd89b8c6e07abcb94 /Source/Dafny/Parser.cs
parent1ad3e91e2b2945572603b8ca5bf063195e72b55f (diff)
Fixed resolution of method calls with explicit type parameters.
Finished refactoring of the recent name segments changes.
Diffstat (limited to 'Source/Dafny/Parser.cs')
-rw-r--r--Source/Dafny/Parser.cs25
1 files changed, 11 insertions, 14 deletions
diff --git a/Source/Dafny/Parser.cs b/Source/Dafny/Parser.cs
index 42627024..15137923 100644
--- a/Source/Dafny/Parser.cs
+++ b/Source/Dafny/Parser.cs
@@ -2104,7 +2104,6 @@ List<Expression/*!*/>/*!*/ decreases, ref Attributes decAttrs, ref Attributes mo
List<Expression> lhss = new List<Expression>();
List<AssignmentRhs> rhss = new List<AssignmentRhs>();
Expression e; AssignmentRhs r;
- Expression lhs0;
IToken x, endTok = Token.NoToken;
Attributes attrs = null;
IToken suchThatAssume = null;
@@ -2119,7 +2118,7 @@ List<Expression/*!*/>/*!*/ decreases, ref Attributes decAttrs, ref Attributes mo
Expect(25);
endTok = t; rhss.Add(new ExprRhs(e, attrs));
} else if (la.kind == 20 || la.kind == 89 || la.kind == 91) {
- lhss.Add(e); lhs0 = e;
+ lhss.Add(e);
while (la.kind == 20) {
Get();
Lhs(out e);
@@ -2128,11 +2127,11 @@ List<Expression/*!*/>/*!*/ decreases, ref Attributes decAttrs, ref Attributes mo
if (la.kind == 89) {
Get();
x = t;
- Rhs(out r, lhs0);
+ Rhs(out r);
rhss.Add(r);
while (la.kind == 20) {
Get();
- Rhs(out r, lhs0);
+ Rhs(out r);
rhss.Add(r);
}
} else if (la.kind == 91) {
@@ -2165,7 +2164,7 @@ List<Expression/*!*/>/*!*/ decreases, ref Attributes decAttrs, ref Attributes mo
void VarDeclStatement(out Statement/*!*/ s) {
IToken x = null, assignTok = null; bool isGhost = false;
LocalVariable d;
- AssignmentRhs r; IdentifierExpr lhs0;
+ AssignmentRhs r;
List<LocalVariable> lhss = new List<LocalVariable>();
List<AssignmentRhs> rhss = new List<AssignmentRhs>();
IToken suchThatAssume = null;
@@ -2195,14 +2194,12 @@ List<Expression/*!*/>/*!*/ decreases, ref Attributes decAttrs, ref Attributes mo
if (la.kind == 89 || la.kind == 91) {
if (la.kind == 89) {
Get();
- assignTok = t;
- lhs0 = new IdentifierExpr(lhss[0].Tok, lhss[0].Name);
-
- Rhs(out r, lhs0);
+ assignTok = t;
+ Rhs(out r);
rhss.Add(r);
while (la.kind == 20) {
Get();
- Rhs(out r, lhs0);
+ Rhs(out r);
rhss.Add(r);
}
} else {
@@ -2560,11 +2557,11 @@ List<Expression/*!*/>/*!*/ decreases, ref Attributes decAttrs, ref Attributes mo
returnTok = t; isYield = true;
} else SynErr(191);
if (StartOf(26)) {
- Rhs(out r, null);
+ Rhs(out r);
rhss = new List<AssignmentRhs>(); rhss.Add(r);
while (la.kind == 20) {
Get();
- Rhs(out r, null);
+ Rhs(out r);
rhss.Add(r);
}
}
@@ -2612,7 +2609,7 @@ List<Expression/*!*/>/*!*/ decreases, ref Attributes decAttrs, ref Attributes mo
s = new SkeletonStatement(dotdotdot, t, names, exprs);
}
- void Rhs(out AssignmentRhs r, Expression receiverForInitCall) {
+ void Rhs(out AssignmentRhs r) {
Contract.Ensures(Contract.ValueAtReturn<AssignmentRhs>(out r) != null);
IToken/*!*/ x, newToken; Expression/*!*/ e;
Type ty = null;
@@ -2649,7 +2646,7 @@ List<Expression/*!*/>/*!*/ decreases, ref Attributes decAttrs, ref Attributes mo
if (ee != null) {
r = new TypeRhs(newToken, ty, ee);
} else if (args != null) {
- r = new TypeRhs(newToken, ty, x == null ? null : x.val, receiverForInitCall, args);
+ r = new TypeRhs(newToken, ty, x == null ? null : x.val, args);
} else {
r = new TypeRhs(newToken, ty);
}