Index: pkg/front_end/lib/src/fasta/scanner/array_based_scanner.dart |
diff --git a/pkg/front_end/lib/src/fasta/scanner/array_based_scanner.dart b/pkg/front_end/lib/src/fasta/scanner/array_based_scanner.dart |
index e5de58514b2674f814aaa7ef6668a86936a29932..3a44acd575a2408f3fad51f72e92e8cb2a330cc2 100644 |
--- a/pkg/front_end/lib/src/fasta/scanner/array_based_scanner.dart |
+++ b/pkg/front_end/lib/src/fasta/scanner/array_based_scanner.dart |
@@ -14,7 +14,11 @@ import 'token.dart' |
show BeginGroupToken, KeywordToken, StringToken, SymbolToken, Token; |
import 'token_constants.dart' |
- show LT_TOKEN, OPEN_CURLY_BRACKET_TOKEN, STRING_INTERPOLATION_TOKEN; |
+ show |
+ LT_TOKEN, |
+ OPEN_CURLY_BRACKET_TOKEN, |
+ OPEN_PAREN_TOKEN, |
+ STRING_INTERPOLATION_TOKEN; |
import 'characters.dart' show $LF, $STX; |
@@ -132,8 +136,11 @@ abstract class ArrayBasedScanner extends AbstractScanner { |
Token token = new BeginGroupToken(info, tokenStart); |
appendToken(token); |
- // { ( [ ${ cannot appear inside a type parameters / arguments. |
- if (!identical(info.kind, LT_TOKEN)) discardOpenLt(); |
+ // { [ ${ cannot appear inside a type parameters / arguments. |
+ if (!identical(info.kind, LT_TOKEN) && |
+ !identical(info.kind, OPEN_PAREN_TOKEN)) { |
+ discardOpenLt(); |
+ } |
groupingStack = groupingStack.prepend(token); |
} |