| Index: runtime/vm/parser.cc
|
| diff --git a/runtime/vm/parser.cc b/runtime/vm/parser.cc
|
| index 6e83ad6ded5681538d7c7850ccce109337ad2d85..72f078e230c2e0d2ebd48d395761846368e917e4 100644
|
| --- a/runtime/vm/parser.cc
|
| +++ b/runtime/vm/parser.cc
|
| @@ -8248,10 +8248,17 @@ bool Parser::TryParseTypeArguments() {
|
| } else if (ct == Token::kSHR) {
|
| nesting_level -= 2;
|
| } else if (ct == Token::kIDENT) {
|
| - // Check to see if it is a qualified identifier.
|
| - if (LookaheadToken(1) == Token::kPERIOD) {
|
| - // Consume the identifier, the period will be consumed below.
|
| - ConsumeToken();
|
| + if (IsFunctionTypeSymbol()) {
|
| + if (!TryParseType(false)) {
|
| + return false;
|
| + }
|
| + continue;
|
| + } else {
|
| + // Check to see if it is a qualified identifier.
|
| + if (LookaheadToken(1) == Token::kPERIOD) {
|
| + // Consume the identifier, the period will be consumed below.
|
| + ConsumeToken();
|
| + }
|
| }
|
| } else if (ct != Token::kCOMMA) {
|
| return false;
|
| @@ -8384,7 +8391,7 @@ bool Parser::TryParseType(bool allow_void) {
|
| if (!TryParseQualIdent()) {
|
| return false;
|
| }
|
| - if ((CurrentToken() == Token::kLT) && !TryParseTypeParameters()) {
|
| + if ((CurrentToken() == Token::kLT) && !TryParseTypeArguments()) {
|
| return false;
|
| }
|
| found = true;
|
|
|