mirror of
https://github.com/dart-lang/sdk
synced 2024-10-14 08:51:21 +00:00
Add preliminary support for method declarations to AstBuilder.
R=scheglov@google.com Review-Url: https://codereview.chromium.org/2706293014 .
This commit is contained in:
parent
f55f111d7a
commit
fb1bc6ad83
|
@ -58,19 +58,12 @@ class ClassMemberParserTest_Fasta extends FastaParserTestCase
|
|||
}
|
||||
|
||||
@override
|
||||
@failingTest
|
||||
@assertFailingTest
|
||||
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() {
|
||||
|
@ -134,27 +127,6 @@ class ClassMemberParserTest_Fasta extends FastaParserTestCase
|
|||
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() {
|
||||
|
@ -183,69 +155,6 @@ class ClassMemberParserTest_Fasta extends FastaParserTestCase
|
|||
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() {
|
||||
|
@ -253,41 +162,6 @@ class ClassMemberParserTest_Fasta extends FastaParserTestCase
|
|||
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() {
|
||||
|
@ -354,7 +228,7 @@ class ClassMemberParserTest_Fasta extends FastaParserTestCase
|
|||
@override
|
||||
@failingTest
|
||||
void test_parseGetter_nonStatic() {
|
||||
// TODO(paulberry): Add support for method declarations
|
||||
// TODO(paulberry): handle doc comments
|
||||
super.test_parseGetter_nonStatic();
|
||||
}
|
||||
|
||||
|
@ -389,7 +263,7 @@ class ClassMemberParserTest_Fasta extends FastaParserTestCase
|
|||
@override
|
||||
@failingTest
|
||||
void test_parseSetter_nonStatic() {
|
||||
// TODO(paulberry): Add support for method declarations
|
||||
// TODO(paulberry): handle doc comments
|
||||
super.test_parseSetter_nonStatic();
|
||||
}
|
||||
|
||||
|
|
|
@ -1137,12 +1137,11 @@ class AstBuilder extends ScopeListener {
|
|||
List<ConstructorInitializer> initializers = null; // TODO(paulberry)
|
||||
Token separator = null; // TODO(paulberry)
|
||||
FormalParameterList parameters = pop();
|
||||
/* TypeParameterList typeParameters = */ pop(); // TODO(paulberry)
|
||||
TypeParameterList typeParameters = pop(); // TODO(paulberry)
|
||||
var name = pop();
|
||||
// TODO(paulberry)
|
||||
// analyzer.Token propertyKeyword = toAnalyzerToken(getOrSet);
|
||||
/* TypeAnnotation returnType = */ pop(); // TODO(paulberry)
|
||||
|
||||
Token operatorKeyword = null; // TODO(paulberry)
|
||||
TypeAnnotation returnType = pop(); // TODO(paulberry)
|
||||
Token modifierKeyword = null; // TODO(paulberry)
|
||||
Token externalKeyword = null;
|
||||
Token constKeyword = null;
|
||||
Token factoryKeyword = null;
|
||||
|
@ -1170,23 +1169,48 @@ class AstBuilder extends ScopeListener {
|
|||
SimpleIdentifier returnType2;
|
||||
Token period;
|
||||
SimpleIdentifier name2;
|
||||
void unnamedConstructor() {
|
||||
push(ast.constructorDeclaration(
|
||||
comment,
|
||||
metadata,
|
||||
toAnalyzerToken(externalKeyword),
|
||||
toAnalyzerToken(constKeyword),
|
||||
toAnalyzerToken(factoryKeyword),
|
||||
returnType2,
|
||||
toAnalyzerToken(period),
|
||||
name2,
|
||||
parameters,
|
||||
toAnalyzerToken(separator),
|
||||
initializers,
|
||||
redirectedConstructor,
|
||||
body));
|
||||
}
|
||||
|
||||
void method() {
|
||||
push(ast.methodDeclaration(
|
||||
comment,
|
||||
metadata,
|
||||
toAnalyzerToken(externalKeyword),
|
||||
toAnalyzerToken(modifierKeyword),
|
||||
returnType,
|
||||
toAnalyzerToken(getOrSet),
|
||||
toAnalyzerToken(operatorKeyword),
|
||||
name,
|
||||
typeParameters,
|
||||
parameters,
|
||||
body));
|
||||
}
|
||||
|
||||
if (name is SimpleIdentifier) {
|
||||
returnType2 = name;
|
||||
if (name.name == className) {
|
||||
unnamedConstructor();
|
||||
} else {
|
||||
method();
|
||||
}
|
||||
} else {
|
||||
throw new UnimplementedError();
|
||||
}
|
||||
push(ast.constructorDeclaration(
|
||||
comment,
|
||||
metadata,
|
||||
toAnalyzerToken(externalKeyword),
|
||||
toAnalyzerToken(constKeyword),
|
||||
toAnalyzerToken(factoryKeyword),
|
||||
returnType2,
|
||||
toAnalyzerToken(period),
|
||||
name2,
|
||||
parameters,
|
||||
toAnalyzerToken(separator),
|
||||
initializers,
|
||||
redirectedConstructor,
|
||||
body));
|
||||
}
|
||||
|
||||
@override
|
||||
|
|
Loading…
Reference in a new issue