Index: dart/lib/compiler/implementation/scanner/parser.dart |
diff --git a/dart/lib/compiler/implementation/scanner/parser.dart b/dart/lib/compiler/implementation/scanner/parser.dart |
index adf0646b577c3584f77ad01c1738e11950c09c71..a6e09b7e36b3da88d2e3038602495e60ab6c61cf 100644 |
--- a/dart/lib/compiler/implementation/scanner/parser.dart |
+++ b/dart/lib/compiler/implementation/scanner/parser.dart |
@@ -1206,11 +1206,22 @@ class Parser { |
(kind === OPEN_CURLY_BRACKET_TOKEN) || |
token.stringValue === '[]') { |
return parseLiteralListOrMap(token); |
+ } else if (kind === QUESTION_TOKEN) { |
+ return parseArgumentDefinitionTest(token); |
} else { |
return listener.expectedExpression(token); |
} |
} |
+ Token parseArgumentDefinitionTest(Token token) { |
+ Token questionToken = token; |
+ listener.beginArgumentDefinitionTest(questionToken); |
+ assert(optional('?', token)); |
+ token = parseIdentifier(token.next); |
+ listener.endArgumentDefinitionTest(questionToken, token); |
+ return token; |
+ } |
+ |
Token parseParenthesizedExpressionOrFunctionLiteral(Token token) { |
BeginGroupToken beginGroup = token; |
int kind = beginGroup.endGroup.next.kind; |