Index: pkg/analyzer/test/generated/parser_fasta_test.dart |
diff --git a/pkg/analyzer/test/generated/parser_fasta_test.dart b/pkg/analyzer/test/generated/parser_fasta_test.dart |
index f62baf874f312d5360cb796fe7dc91eca3d4c266..acedb13438fd5730321fd7d640c2bccd42de6487 100644 |
--- a/pkg/analyzer/test/generated/parser_fasta_test.dart |
+++ b/pkg/analyzer/test/generated/parser_fasta_test.dart |
@@ -13,6 +13,7 @@ import 'package:front_end/src/fasta/builder/scope.dart'; |
import 'package:front_end/src/fasta/kernel/kernel_builder.dart'; |
import 'package:front_end/src/fasta/kernel/kernel_library_builder.dart'; |
import 'package:front_end/src/fasta/parser/parser.dart' as fasta; |
+import 'package:front_end/src/fasta/scanner/precedence.dart' as fasta; |
import 'package:front_end/src/fasta/scanner/string_scanner.dart'; |
import 'package:front_end/src/fasta/scanner/token.dart' as fasta; |
import 'package:test/test.dart'; |
@@ -22,6 +23,7 @@ import 'parser_test.dart'; |
main() { |
defineReflectiveSuite(() { |
+ defineReflectiveTests(ClassMemberParserTest_Fasta); |
defineReflectiveTests(ComplexParserTest_Fasta); |
defineReflectiveTests(FormalParameterParserTest_Fasta); |
defineReflectiveTests(TopLevelParserTest_Fasta); |
@@ -43,6 +45,360 @@ class BuilderProxy implements Builder { |
noSuchMethod(Invocation invocation) => super.noSuchMethod(invocation); |
} |
+@reflectiveTest |
+class ClassMemberParserTest_Fasta extends FastaParserTestCase |
+ with ClassMemberParserTestMixin { |
+ @override |
+ @failingTest |
+ void test_constFactory() { |
+ // TODO(paulberry): Unhandled event: ConstructorReference |
+ super.test_constFactory(); |
+ } |
+ |
+ @override |
+ @failingTest |
+ void test_parseAwaitExpression_asStatement_inAsync() { |
+ // TODO(paulberry): Add support for async |
+ super.test_parseAwaitExpression_asStatement_inAsync(); |
+ } |
+ |
+ @override |
+ @failingTest |
+ void test_parseAwaitExpression_asStatement_inSync() { |
+ // TODO(paulberry): Add support for method declarations |
+ super.test_parseAwaitExpression_asStatement_inSync(); |
+ } |
+ |
+ @override |
+ @failingTest |
+ void test_parseClassMember_constructor_withInitializers() { |
+ // TODO(paulberry): 'this' can't be used here. |
+ super.test_parseClassMember_constructor_withInitializers(); |
+ } |
+ |
+ @override |
+ @failingTest |
+ void test_parseClassMember_field_covariant() { |
+ // TODO(paulberry): Unhandled event: Fields |
+ super.test_parseClassMember_field_covariant(); |
+ } |
+ |
+ @override |
+ @failingTest |
+ void test_parseClassMember_field_instance_prefixedType() { |
+ // TODO(paulberry): Unhandled event: Fields |
+ super.test_parseClassMember_field_instance_prefixedType(); |
+ } |
+ |
+ @override |
+ @failingTest |
+ void test_parseClassMember_field_namedGet() { |
+ // TODO(paulberry): Unhandled event: Fields |
+ super.test_parseClassMember_field_namedGet(); |
+ } |
+ |
+ @override |
+ @failingTest |
+ void test_parseClassMember_field_namedOperator() { |
+ // TODO(paulberry): Unhandled event: Fields |
+ super.test_parseClassMember_field_namedOperator(); |
+ } |
+ |
+ @override |
+ @failingTest |
+ void test_parseClassMember_field_namedOperator_withAssignment() { |
+ // TODO(paulberry): Unhandled event: Fields |
+ super.test_parseClassMember_field_namedOperator_withAssignment(); |
+ } |
+ |
+ @override |
+ @failingTest |
+ void test_parseClassMember_field_namedSet() { |
+ // TODO(paulberry): Unhandled event: Fields |
+ super.test_parseClassMember_field_namedSet(); |
+ } |
+ |
+ @override |
+ @failingTest |
+ void test_parseClassMember_field_static() { |
+ // TODO(paulberry): Unhandled event: Fields |
+ super.test_parseClassMember_field_static(); |
+ } |
+ |
+ @override |
+ @failingTest |
+ void test_parseClassMember_getter_functionType() { |
+ // TODO(paulberry): InputError: ErrorKind.ExpectedFunctionBody {actual: get} |
+ super.test_parseClassMember_getter_functionType(); |
+ } |
+ |
+ @override |
+ @failingTest |
+ void test_parseClassMember_getter_void() { |
+ // TODO(paulberry): Add support for method declarations |
+ super.test_parseClassMember_getter_void(); |
+ } |
+ |
+ @override |
+ @failingTest |
+ void test_parseClassMember_method_external() { |
+ // TODO(paulberry): Add support for method declarations |
+ super.test_parseClassMember_method_external(); |
+ } |
+ |
+ @override |
+ @failingTest |
+ void test_parseClassMember_method_external_withTypeAndArgs() { |
+ // TODO(paulberry): Add support for method declarations |
+ super.test_parseClassMember_method_external_withTypeAndArgs(); |
+ } |
+ |
+ @override |
+ @failingTest |
+ void test_parseClassMember_method_generic_comment_noReturnType() { |
+ // TODO(paulberry): Fasta doesn't support generic comment syntax |
+ super.test_parseClassMember_method_generic_comment_noReturnType(); |
+ } |
+ |
+ @override |
+ @failingTest |
+ void test_parseClassMember_method_generic_comment_returnType() { |
+ // TODO(paulberry): Fasta doesn't support generic comment syntax |
+ super.test_parseClassMember_method_generic_comment_returnType(); |
+ } |
+ |
+ @override |
+ @failingTest |
+ void test_parseClassMember_method_generic_comment_returnType_bound() { |
+ // TODO(paulberry): Fasta doesn't support generic comment syntax |
+ super.test_parseClassMember_method_generic_comment_returnType_bound(); |
+ } |
+ |
+ @override |
+ @failingTest |
+ void test_parseClassMember_method_generic_comment_void() { |
+ // TODO(paulberry): Fasta doesn't support generic comment syntax |
+ super.test_parseClassMember_method_generic_comment_void(); |
+ } |
+ |
+ @override |
+ @failingTest |
+ void test_parseClassMember_method_generic_noReturnType() { |
+ // TODO(paulberry): Add support for method declarations |
+ super.test_parseClassMember_method_generic_noReturnType(); |
+ } |
+ |
+ @override |
+ @failingTest |
+ void test_parseClassMember_method_generic_returnType() { |
+ // TODO(paulberry): Add support for method declarations |
+ super.test_parseClassMember_method_generic_returnType(); |
+ } |
+ |
+ @override |
+ @failingTest |
+ void test_parseClassMember_method_generic_void() { |
+ // TODO(paulberry): Add support for method declarations |
+ super.test_parseClassMember_method_generic_void(); |
+ } |
+ |
+ @override |
+ @failingTest |
+ void test_parseClassMember_method_get_noType() { |
+ // TODO(paulberry): Add support for method declarations |
+ super.test_parseClassMember_method_get_noType(); |
+ } |
+ |
+ @override |
+ @failingTest |
+ void test_parseClassMember_method_get_type() { |
+ // TODO(paulberry): Add support for method declarations |
+ super.test_parseClassMember_method_get_type(); |
+ } |
+ |
+ @override |
+ @failingTest |
+ void test_parseClassMember_method_get_void() { |
+ // TODO(paulberry): Add support for method declarations |
+ super.test_parseClassMember_method_get_void(); |
+ } |
+ |
+ @override |
+ @failingTest |
+ void test_parseClassMember_method_operator_noType() { |
+ // TODO(paulberry): Add support for method declarations |
+ super.test_parseClassMember_method_operator_noType(); |
+ } |
+ |
+ @override |
+ @failingTest |
+ void test_parseClassMember_method_operator_type() { |
+ // TODO(paulberry): Add support for method declarations |
+ super.test_parseClassMember_method_operator_type(); |
+ } |
+ |
+ @override |
+ @failingTest |
+ void test_parseClassMember_method_operator_void() { |
+ // TODO(paulberry): Add support for method declarations |
+ super.test_parseClassMember_method_operator_void(); |
+ } |
+ |
+ @override |
+ @failingTest |
+ void test_parseClassMember_method_returnType_functionType() { |
+ // TODO(paulberry): InputError: ErrorKind.ExpectedFunctionBody {actual: m} |
+ super.test_parseClassMember_method_returnType_functionType(); |
+ } |
+ |
+ @override |
+ @failingTest |
+ void test_parseClassMember_method_returnType_parameterized() { |
+ // TODO(paulberry): Add support for method declarations |
+ super.test_parseClassMember_method_returnType_parameterized(); |
+ } |
+ |
+ @override |
+ @failingTest |
+ void test_parseClassMember_method_set_noType() { |
+ // TODO(paulberry): Add support for method declarations |
+ super.test_parseClassMember_method_set_noType(); |
+ } |
+ |
+ @override |
+ @failingTest |
+ void test_parseClassMember_method_set_type() { |
+ // TODO(paulberry): Add support for method declarations |
+ super.test_parseClassMember_method_set_type(); |
+ } |
+ |
+ @override |
+ @failingTest |
+ void test_parseClassMember_method_set_void() { |
+ // TODO(paulberry): Add support for method declarations |
+ super.test_parseClassMember_method_set_void(); |
+ } |
+ |
+ @override |
+ @failingTest |
+ void test_parseClassMember_method_trailing_commas() { |
+ // TODO(paulberry): Add support for method declarations |
+ super.test_parseClassMember_method_trailing_commas(); |
+ } |
+ |
+ @override |
+ @failingTest |
+ void test_parseClassMember_operator_functionType() { |
+ // TODO(paulberry): InputError: ErrorKind.ExpectedFunctionBody {actual: operator} |
+ super.test_parseClassMember_operator_functionType(); |
+ } |
+ |
+ @override |
+ @failingTest |
+ void test_parseClassMember_operator_index() { |
+ // TODO(paulberry): Unhandled event: OperatorName |
+ super.test_parseClassMember_operator_index(); |
+ } |
+ |
+ @override |
+ @failingTest |
+ void test_parseClassMember_operator_indexAssign() { |
+ // TODO(paulberry): Unhandled event: OperatorName |
+ super.test_parseClassMember_operator_indexAssign(); |
+ } |
+ |
+ @override |
+ @failingTest |
+ void test_parseClassMember_redirectingFactory_const() { |
+ // TODO(paulberry): Unhandled event: ConstructorReference |
+ super.test_parseClassMember_redirectingFactory_const(); |
+ } |
+ |
+ @override |
+ @failingTest |
+ void test_parseClassMember_redirectingFactory_nonConst() { |
+ // TODO(paulberry): Unhandled event: ConstructorReference |
+ super.test_parseClassMember_redirectingFactory_nonConst(); |
+ } |
+ |
+ @override |
+ @failingTest |
+ void test_parseConstructor_assert() { |
+ // TODO(paulberry): Fasta doesn't support asserts in initializers |
+ super.test_parseConstructor_assert(); |
+ } |
+ |
+ @override |
+ @failingTest |
+ void test_parseConstructor_with_pseudo_function_literal() { |
+ // TODO(paulberry): Expected: an object with length of <1> |
+ super.test_parseConstructor_with_pseudo_function_literal(); |
+ } |
+ |
+ @override |
+ @failingTest |
+ void test_parseConstructorFieldInitializer_qualified() { |
+ // TODO(paulberry): Unhandled event: ThisExpression |
+ super.test_parseConstructorFieldInitializer_qualified(); |
+ } |
+ |
+ @override |
+ @failingTest |
+ void test_parseConstructorFieldInitializer_unqualified() { |
+ // TODO(paulberry): Expected: an object with length of <1> |
+ super.test_parseConstructorFieldInitializer_unqualified(); |
+ } |
+ |
+ @override |
+ @failingTest |
+ void test_parseGetter_nonStatic() { |
+ // TODO(paulberry): Add support for method declarations |
+ super.test_parseGetter_nonStatic(); |
+ } |
+ |
+ @override |
+ @failingTest |
+ void test_parseGetter_static() { |
+ // TODO(paulberry): Invalid modifier (static). Report an error. |
+ super.test_parseGetter_static(); |
+ } |
+ |
+ @override |
+ @failingTest |
+ void test_parseInitializedIdentifierList_type() { |
+ // TODO(paulberry): Unhandled event: Fields |
+ super.test_parseInitializedIdentifierList_type(); |
+ } |
+ |
+ @override |
+ @failingTest |
+ void test_parseInitializedIdentifierList_var() { |
+ // TODO(paulberry): Unhandled event: Fields |
+ super.test_parseInitializedIdentifierList_var(); |
+ } |
+ |
+ @override |
+ @failingTest |
+ void test_parseOperator() { |
+ // TODO(paulberry): Unhandled event: OperatorName |
+ super.test_parseOperator(); |
+ } |
+ |
+ @override |
+ @failingTest |
+ void test_parseSetter_nonStatic() { |
+ // TODO(paulberry): Add support for method declarations |
+ super.test_parseSetter_nonStatic(); |
+ } |
+ |
+ @override |
+ @failingTest |
+ void test_parseSetter_static() { |
+ // TODO(paulberry): Invalid modifier (static). Report an error. |
+ super.test_parseSetter_static(); |
+ } |
+} |
+ |
/** |
* Tests of the fasta parser based on [ComplexParserTestMixin]. |
*/ |
@@ -257,6 +613,15 @@ class FastaParserTestCase extends Object |
ParserProxy _parserProxy; |
@override |
+ set enableAssertInitializer(bool value) { |
+ if (value == true) { |
+ // TODO(paulberry,ahe): it looks like asserts in initializer lists are not |
+ // supported by Fasta. |
+ throw new UnimplementedError(); |
+ } |
+ } |
+ |
+ @override |
set enableGenericMethodComments(bool value) { |
if (value == true) { |
// TODO(paulberry,ahe): generic method comment syntax is not supported by |
@@ -778,10 +1143,28 @@ class ParserProxy implements analyzer.Parser { |
noSuchMethod(Invocation invocation) => super.noSuchMethod(invocation); |
@override |
+ ClassMember parseClassMember(String className) { |
+ _astBuilder.className = className; |
+ var result = _run((parser) => parser.parseMember) as ClassMember; |
+ _astBuilder.className = null; |
+ return result; |
+ } |
+ |
+ @override |
CompilationUnit parseCompilationUnit2() { |
return _run((parser) => parser.parseUnit) as CompilationUnit; |
} |
+ @override |
+ ConstructorFieldInitializer parseConstructorFieldInitializer(bool hasThis) { |
+ // Fasta's parser doesn't need the [hasThis] hint, so we ignore it. |
+ var colon = new fasta.SymbolToken(fasta.COLON_INFO, 0); |
+ colon.next = _currentFastaToken; |
+ _currentFastaToken = colon; |
+ var initializers = _run((parser) => parser.parseInitializers) as List; |
+ return initializers[0] as ConstructorFieldInitializer; |
+ } |
+ |
/** |
* Runs a single parser function, and returns the result as an analyzer AST. |
*/ |