Index: frog/parser.dart |
=================================================================== |
--- frog/parser.dart (revision 4560) |
+++ frog/parser.dart (working copy) |
@@ -461,7 +461,7 @@ |
_error('unsupported qualified name for factory', names[0].span); |
} |
type = new NameTypeReference(false, names[0], null, names[0].span); |
- var di = new DeclaredIdentifier(type, name, _makeSpan(start)); |
+ var di = new DeclaredIdentifier(type, name, false, _makeSpan(start)); |
return finishDefinition(start, [factoryToken], di); |
} |
@@ -651,7 +651,7 @@ |
var typeArgs = [_makeType(init.y)]; |
var gt = _finishTypeArguments(baseType, 0, typeArgs); |
var name = identifier(); |
- init = new DeclaredIdentifier(gt, name, _makeSpan(init.span.start)); |
+ init = new DeclaredIdentifier(gt, name, false, _makeSpan(init.span.start)); |
} |
if (_maybeEat(TokenKind.IN)) { |
@@ -845,7 +845,7 @@ |
_finishDeclaredId(type) { |
var name = identifier(); |
return finishPostfixExpression( |
- new DeclaredIdentifier(type, name, _makeSpan(type.span.start))); |
+ new DeclaredIdentifier(type, name, false, _makeSpan(type.span.start))); |
} |
/** |
@@ -1019,7 +1019,7 @@ |
if (_peekIdentifier()) { |
return finishPostfixExpression( |
new DeclaredIdentifier(_makeType(expr), identifier(), |
- _makeSpan(expr.span.start))); |
+ false, _makeSpan(expr.span.start))); |
} else { |
return expr; |
} |
@@ -1322,6 +1322,7 @@ |
int start = _peekToken.start; |
var myType = null; |
var name = _specialIdentifier(includeOperators); |
+ bool isFinal = false; |
if (name == null) { |
myType = type(); |
name = _specialIdentifier(includeOperators); |
@@ -1330,13 +1331,14 @@ |
name = identifier(); |
} else if (myType is NameTypeReference && myType.names == null) { |
name = _typeAsIdentifier(myType); |
+ isFinal = myType.isFinal; |
myType = null; |
} else { |
// TODO(jimhug): Where do these errors get handled? |
} |
} |
} |
- return new DeclaredIdentifier(myType, name, _makeSpan(start)); |
+ return new DeclaredIdentifier(myType, name, isFinal, _makeSpan(start)); |
} |
finishNewExpression(int start, bool isConst) { |
@@ -1674,12 +1676,12 @@ |
/** Converts an expression to a [DeclaredIdentifier]. */ |
_makeDeclaredIdentifier(e) { |
if (e is VarExpression) { |
- return new DeclaredIdentifier(null, e.name, e.span); |
+ return new DeclaredIdentifier(null, e.name, false, e.span); |
} else if (e is DeclaredIdentifier) { |
return e; |
} else { |
_error('expected declared identifier'); |
- return new DeclaredIdentifier(null, null, e.span); |
+ return new DeclaredIdentifier(null, null, false, e.span); |
} |
} |