mirror of
https://github.com/dart-lang/sdk
synced 2024-10-14 11:58:13 +00:00
Allow "Function" as prefixed identifier
Change-Id: Id8dd154d8e3426a9a01d548af94d413e97590c76 Reviewed-on: https://dart-review.googlesource.com/40320 Reviewed-by: Dan Rubel <danrubel@google.com> Commit-Queue: Dan Rubel <danrubel@google.com>
This commit is contained in:
parent
c580897aec
commit
87a395bd09
|
@ -15596,8 +15596,9 @@ abstract class TopLevelParserTestMixin implements AbstractParserTestCase {
|
|||
|
||||
void test_parseCompilationUnit_builtIn_asFunctionName() {
|
||||
for (Keyword keyword in Keyword.values) {
|
||||
if (keyword.isBuiltIn) {
|
||||
if (keyword.isBuiltIn || keyword.isPseudo) {
|
||||
String lexeme = keyword.lexeme;
|
||||
if (lexeme == 'Function' && !usingFastaParser) continue;
|
||||
parseCompilationUnit('$lexeme(x) => 0;');
|
||||
parseCompilationUnit('class C {$lexeme(x) => 0;}');
|
||||
}
|
||||
|
@ -15607,7 +15608,7 @@ abstract class TopLevelParserTestMixin implements AbstractParserTestCase {
|
|||
void test_parseCompilationUnit_builtIn_asFunctionName_withTypeParameter() {
|
||||
if (usingFastaParser) {
|
||||
for (Keyword keyword in Keyword.values) {
|
||||
if (keyword.isBuiltIn) {
|
||||
if (keyword.isBuiltIn || keyword.isPseudo) {
|
||||
String lexeme = keyword.lexeme;
|
||||
parseCompilationUnit('$lexeme<T>(x) => 0;');
|
||||
parseCompilationUnit('class C {$lexeme<T>(x) => 0;}');
|
||||
|
@ -15618,7 +15619,7 @@ abstract class TopLevelParserTestMixin implements AbstractParserTestCase {
|
|||
|
||||
void test_parseCompilationUnit_builtIn_asGetter() {
|
||||
for (Keyword keyword in Keyword.values) {
|
||||
if (keyword.isBuiltIn) {
|
||||
if (keyword.isBuiltIn || keyword.isPseudo) {
|
||||
String lexeme = keyword.lexeme;
|
||||
parseCompilationUnit('get $lexeme => 0;');
|
||||
parseCompilationUnit('class C {get $lexeme => 0;}');
|
||||
|
@ -15701,6 +15702,16 @@ abstract class TopLevelParserTestMixin implements AbstractParserTestCase {
|
|||
expect(unit.declarations, hasLength(1));
|
||||
}
|
||||
|
||||
void test_parseCompilationUnit_pseudo_prefixed() {
|
||||
for (Keyword keyword in Keyword.values) {
|
||||
if (keyword.isPseudo) {
|
||||
String lexeme = keyword.lexeme;
|
||||
parseCompilationUnit('M.$lexeme f;');
|
||||
parseCompilationUnit('class C {M.$lexeme f;}');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void test_parseCompilationUnit_script() {
|
||||
createParser('#! /bin/dart');
|
||||
CompilationUnit unit = parser.parseCompilationUnit2();
|
||||
|
|
|
@ -1420,7 +1420,7 @@ class Parser {
|
|||
// Return the newly inserted synthetic token
|
||||
// as the end of the type reference.
|
||||
return token.next;
|
||||
} else if (identical(value, '<') || identical(value, 'Function')) {
|
||||
} else if (identical(value, '<')) {
|
||||
// Found a type reference, but missing an identifier after the period.
|
||||
rewriteAndRecover(
|
||||
token,
|
||||
|
|
Loading…
Reference in a new issue