mirror of
https://github.com/dart-lang/sdk
synced 2024-10-14 08:51:21 +00:00
Fix parseAssignableSelector() tests and parse '?.' with Fasta.
R=brianwilkerson@google.com, paulberry@google.com BUG= Review-Url: https://codereview.chromium.org/2727663005 .
This commit is contained in:
parent
3d0a94278e
commit
93bf98045c
|
@ -406,12 +406,6 @@ class ExpressionParserTest_Fasta extends FastaParserTestCase
|
|||
super.test_parseAssignableExpression_expression_args_dot_typeParameters();
|
||||
}
|
||||
|
||||
@override
|
||||
@failingTest
|
||||
void test_parseAssignableExpression_expression_question_dot() {
|
||||
super.test_parseAssignableExpression_expression_question_dot();
|
||||
}
|
||||
|
||||
@override
|
||||
@failingTest
|
||||
void
|
||||
|
@ -426,36 +420,6 @@ class ExpressionParserTest_Fasta extends FastaParserTestCase
|
|||
super.test_parseAssignableExpression_identifier_dot();
|
||||
}
|
||||
|
||||
@override
|
||||
@failingTest
|
||||
void test_parseAssignableExpression_identifier_question_dot() {
|
||||
super.test_parseAssignableExpression_identifier_question_dot();
|
||||
}
|
||||
|
||||
@override
|
||||
@failingTest
|
||||
void test_parseAssignableSelector_dot() {
|
||||
super.test_parseAssignableSelector_dot();
|
||||
}
|
||||
|
||||
@override
|
||||
@failingTest
|
||||
void test_parseAssignableSelector_index() {
|
||||
super.test_parseAssignableSelector_index();
|
||||
}
|
||||
|
||||
@override
|
||||
@failingTest
|
||||
void test_parseAssignableSelector_none() {
|
||||
super.test_parseAssignableSelector_none();
|
||||
}
|
||||
|
||||
@override
|
||||
@failingTest
|
||||
void test_parseAssignableSelector_question_dot() {
|
||||
super.test_parseAssignableSelector_question_dot();
|
||||
}
|
||||
|
||||
@override
|
||||
@failingTest
|
||||
void test_parseAwaitExpression() {
|
||||
|
@ -843,12 +807,6 @@ class ExpressionParserTest_Fasta extends FastaParserTestCase
|
|||
super.test_parseNewExpression();
|
||||
}
|
||||
|
||||
@override
|
||||
@failingTest
|
||||
void test_parsePostfixExpression_none_methodInvocation_question_dot() {
|
||||
super.test_parsePostfixExpression_none_methodInvocation_question_dot();
|
||||
}
|
||||
|
||||
@override
|
||||
@failingTest
|
||||
void
|
||||
|
@ -857,14 +815,6 @@ class ExpressionParserTest_Fasta extends FastaParserTestCase
|
|||
.test_parsePostfixExpression_none_methodInvocation_question_dot_typeArgumentComments();
|
||||
}
|
||||
|
||||
@override
|
||||
@failingTest
|
||||
void
|
||||
test_parsePostfixExpression_none_methodInvocation_question_dot_typeArguments() {
|
||||
super
|
||||
.test_parsePostfixExpression_none_methodInvocation_question_dot_typeArguments();
|
||||
}
|
||||
|
||||
@override
|
||||
@failingTest
|
||||
void
|
||||
|
@ -1066,10 +1016,9 @@ class FastaParserTestCase extends Object
|
|||
}
|
||||
|
||||
@override
|
||||
Expression parseAssignableSelector(
|
||||
String code, Expression prefix, bool optional,
|
||||
Expression parseAssignableSelector(String code, bool optional,
|
||||
{bool allowConditional: true}) {
|
||||
return _parseExpression(code);
|
||||
return _parseExpression('foo$code');
|
||||
}
|
||||
|
||||
@override
|
||||
|
|
|
@ -83,7 +83,7 @@ abstract class AbstractParserTestCase implements ParserTestHelpers {
|
|||
Expression parseAssignableExpression(String code, bool primaryAllowed);
|
||||
|
||||
Expression parseAssignableSelector(
|
||||
String code, Expression prefix, bool optional,
|
||||
String code, bool optional,
|
||||
{bool allowConditional: true});
|
||||
|
||||
AwaitExpression parseAwaitExpression(String code);
|
||||
|
@ -4231,7 +4231,7 @@ abstract class ExpressionParserTestMixin implements AbstractParserTestCase {
|
|||
}
|
||||
|
||||
void test_parseAssignableSelector_dot() {
|
||||
Expression expression = parseAssignableSelector('.x', null, true);
|
||||
Expression expression = parseAssignableSelector('.x', true);
|
||||
expect(expression, isNotNull);
|
||||
assertNoErrors();
|
||||
var propertyAccess = expression as PropertyAccess;
|
||||
|
@ -4240,7 +4240,7 @@ abstract class ExpressionParserTestMixin implements AbstractParserTestCase {
|
|||
}
|
||||
|
||||
void test_parseAssignableSelector_index() {
|
||||
Expression expression = parseAssignableSelector('[x]', null, true);
|
||||
Expression expression = parseAssignableSelector('[x]', true);
|
||||
expect(expression, isNotNull);
|
||||
assertNoErrors();
|
||||
var indexExpression = expression as IndexExpression;
|
||||
|
@ -4250,8 +4250,7 @@ abstract class ExpressionParserTestMixin implements AbstractParserTestCase {
|
|||
}
|
||||
|
||||
void test_parseAssignableSelector_none() {
|
||||
Expression expression =
|
||||
parseAssignableSelector(';', astFactory.simpleIdentifier(null), true);
|
||||
Expression expression = parseAssignableSelector('', true);
|
||||
expect(expression, isNotNull);
|
||||
assertNoErrors();
|
||||
var identifier = expression as SimpleIdentifier;
|
||||
|
@ -4259,7 +4258,7 @@ abstract class ExpressionParserTestMixin implements AbstractParserTestCase {
|
|||
}
|
||||
|
||||
void test_parseAssignableSelector_question_dot() {
|
||||
Expression expression = parseAssignableSelector('?.x', null, true);
|
||||
Expression expression = parseAssignableSelector('?.x', true);
|
||||
expect(expression, isNotNull);
|
||||
assertNoErrors();
|
||||
var propertyAccess = expression as PropertyAccess;
|
||||
|
@ -7720,8 +7719,10 @@ class ParserTestCase extends EngineTestCase
|
|||
|
||||
@override
|
||||
Expression parseAssignableSelector(
|
||||
String code, Expression prefix, bool optional,
|
||||
String code, bool optional,
|
||||
{bool allowConditional: true}) {
|
||||
Expression prefix =
|
||||
astFactory.simpleIdentifier(new StringToken(TokenType.STRING, 'foo', 0));
|
||||
createParser(code);
|
||||
return parser.parseAssignableSelector(prefix, optional,
|
||||
allowConditional: allowConditional);
|
||||
|
|
|
@ -240,6 +240,7 @@ class AstBuilder extends ScopeListener {
|
|||
void handleBinaryExpression(Token token) {
|
||||
debugEvent("BinaryExpression");
|
||||
if (identical(".", token.stringValue) ||
|
||||
identical("?.", token.stringValue) ||
|
||||
identical("..", token.stringValue)) {
|
||||
doDotExpression(token);
|
||||
} else {
|
||||
|
|
Loading…
Reference in a new issue