Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1037)

Unified Diff: compiler/java/com/google/dart/compiler/parser/DartParser.java

Issue 9270016: Issue 932. Checks for various named arguments cases. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Tweaks for comments, changes in tests. Created 8 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: compiler/java/com/google/dart/compiler/parser/DartParser.java
diff --git a/compiler/java/com/google/dart/compiler/parser/DartParser.java b/compiler/java/com/google/dart/compiler/parser/DartParser.java
index 8d21c71f65e9b81ef2fcd78ca6d824e7fe2355f7..dffb6799ac861dbd73aee0e5806071fd3085aa55 100644
--- a/compiler/java/com/google/dart/compiler/parser/DartParser.java
+++ b/compiler/java/com/google/dart/compiler/parser/DartParser.java
@@ -1754,6 +1754,7 @@ public class DartParser extends CompletionHooksParserBase {
List<DartExpression> arguments = new ArrayList<DartExpression>();
expect(Token.LPAREN);
// SEMICOLON is for error recovery
+ boolean namedArgumentParsed = false;
while (!match(Token.RPAREN) && !match(Token.EOS) && !match(Token.SEMICOLON)) {
beginParameter();
DartExpression expression;
@@ -1761,8 +1762,12 @@ public class DartParser extends CompletionHooksParserBase {
DartIdentifier name = parseIdentifier();
expect(Token.COLON);
expression = new DartNamedExpression(name, parseExpression());
+ namedArgumentParsed = true;
} else {
expression = parseExpression();
+ if (namedArgumentParsed) {
+ reportError(expression, ParserErrorCode.POSITIONAL_AFTER_NAMED_ARGUMENT);
+ }
}
arguments.add(done(expression));
switch(peek(0)) {

Powered by Google App Engine
This is Rietveld 408576698