Index: pkg/analyzer_experimental/test/generated/parser_test.dart |
=================================================================== |
--- pkg/analyzer_experimental/test/generated/parser_test.dart (revision 23549) |
+++ pkg/analyzer_experimental/test/generated/parser_test.dart (working copy) |
@@ -16,7 +16,9 @@ |
import 'package:unittest/unittest.dart' as _ut; |
import 'test_support.dart'; |
import 'scanner_test.dart' show TokenFactory; |
+import 'ast_test.dart' show ASTFactory; |
+ |
/** |
* The class {@code SimpleParserTest} defines parser tests that test individual parsing method. The |
* code fragments should be as minimal as possible in order to test the method, but should not test |
@@ -80,6 +82,9 @@ |
void test_computeStringValue_raw_withEscape() { |
JUnitTestCase.assertEquals("two\\nlines", computeStringValue("r'two\\nlines'")); |
} |
+ void test_constFactory() { |
+ ParserTestCase.parse("parseClassMember", <Object> ["C"], "const factory C() = A;"); |
+ } |
void test_createSyntheticIdentifier() { |
SimpleIdentifier identifier = createSyntheticIdentifier(); |
JUnitTestCase.assertTrue(identifier.isSynthetic()); |
@@ -1403,7 +1408,7 @@ |
JUnitTestCase.assertNotNull(literal.rightBracket); |
} |
void test_parseConstExpression_mapLiteral_typed() { |
- MapLiteral literal = ParserTestCase.parse5("parseConstExpression", "const <A> {}", []); |
+ MapLiteral literal = ParserTestCase.parse5("parseConstExpression", "const <A, B> {}", []); |
JUnitTestCase.assertNotNull(literal.leftBracket); |
EngineTestCase.assertSize(0, literal.entries); |
JUnitTestCase.assertNotNull(literal.rightBracket); |
@@ -1679,6 +1684,14 @@ |
JUnitTestCase.assertEquals(Keyword.FINAL, ((keyword2 as KeywordToken)).keyword); |
JUnitTestCase.assertNull(result.type); |
} |
+ void test_parseFinalConstVarOrType_final_prefixedType() { |
+ FinalConstVarOrType result = ParserTestCase.parse("parseFinalConstVarOrType", <Object> [false], "final p.A a"); |
+ Token keyword2 = result.keyword; |
+ JUnitTestCase.assertNotNull(keyword2); |
+ JUnitTestCase.assertEquals(TokenType.KEYWORD, keyword2.type); |
+ JUnitTestCase.assertEquals(Keyword.FINAL, ((keyword2 as KeywordToken)).keyword); |
+ JUnitTestCase.assertNotNull(result.type); |
+ } |
void test_parseFinalConstVarOrType_final_type() { |
FinalConstVarOrType result = ParserTestCase.parse("parseFinalConstVarOrType", <Object> [false], "final A a"); |
Token keyword2 = result.keyword; |
@@ -2069,21 +2082,21 @@ |
JUnitTestCase.assertNotNull(statement.body); |
} |
void test_parseFunctionBody_block() { |
- BlockFunctionBody functionBody = ParserTestCase.parse("parseFunctionBody", <Object> [false, false], "{}"); |
+ BlockFunctionBody functionBody = ParserTestCase.parse("parseFunctionBody", <Object> [false, null, false], "{}"); |
JUnitTestCase.assertNotNull(functionBody.block); |
} |
void test_parseFunctionBody_empty() { |
- EmptyFunctionBody functionBody = ParserTestCase.parse("parseFunctionBody", <Object> [true, false], ";"); |
+ EmptyFunctionBody functionBody = ParserTestCase.parse("parseFunctionBody", <Object> [true, null, false], ";"); |
JUnitTestCase.assertNotNull(functionBody.semicolon); |
} |
void test_parseFunctionBody_expression() { |
- ExpressionFunctionBody functionBody = ParserTestCase.parse("parseFunctionBody", <Object> [false, false], "=> y;"); |
+ ExpressionFunctionBody functionBody = ParserTestCase.parse("parseFunctionBody", <Object> [false, null, false], "=> y;"); |
JUnitTestCase.assertNotNull(functionBody.functionDefinition); |
JUnitTestCase.assertNotNull(functionBody.expression); |
JUnitTestCase.assertNotNull(functionBody.semicolon); |
} |
void test_parseFunctionBody_nativeFunctionBody() { |
- NativeFunctionBody functionBody = ParserTestCase.parse("parseFunctionBody", <Object> [false, false], "native 'str';"); |
+ NativeFunctionBody functionBody = ParserTestCase.parse("parseFunctionBody", <Object> [false, null, false], "native 'str';"); |
JUnitTestCase.assertNotNull(functionBody.nativeToken); |
JUnitTestCase.assertNotNull(functionBody.stringLiteral); |
JUnitTestCase.assertNotNull(functionBody.semicolon); |
@@ -2160,7 +2173,7 @@ |
Comment comment = Comment.createDocumentationComment(new List<Token>(0)); |
Token staticKeyword = TokenFactory.token(Keyword.STATIC); |
TypeName returnType = new TypeName.full(new SimpleIdentifier.full(null), null); |
- MethodDeclaration method = ParserTestCase.parse("parseGetter", <Object> [commentAndMetadata(comment, []), null, staticKeyword, returnType], "get a;"); |
+ MethodDeclaration method = ParserTestCase.parse("parseGetter", <Object> [commentAndMetadata(comment, []), null, staticKeyword, returnType], "get a => 42;"); |
JUnitTestCase.assertNotNull(method.body); |
JUnitTestCase.assertEquals(comment, method.documentationComment); |
JUnitTestCase.assertNull(method.externalKeyword); |
@@ -2432,7 +2445,7 @@ |
JUnitTestCase.assertNotNull(literal.rightBracket); |
} |
void test_parseListOrMapLiteral_map_type() { |
- MapLiteral literal = ParserTestCase.parse("parseListOrMapLiteral", <Object> [null], "<int> {'1' : 1}"); |
+ MapLiteral literal = ParserTestCase.parse("parseListOrMapLiteral", <Object> [null], "<String, int> {'1' : 1}"); |
JUnitTestCase.assertNull(literal.modifier); |
JUnitTestCase.assertNotNull(literal.typeArguments); |
JUnitTestCase.assertNotNull(literal.leftBracket); |
@@ -2455,7 +2468,7 @@ |
} |
void test_parseMapLiteral_empty() { |
Token token2 = TokenFactory.token(Keyword.CONST); |
- TypeArgumentList typeArguments = new TypeArgumentList.full(null, null, null); |
+ TypeArgumentList typeArguments = ASTFactory.typeArgumentList([ASTFactory.typeName4("String", []), ASTFactory.typeName4("int", [])]); |
MapLiteral literal = ParserTestCase.parse("parseMapLiteral", <Object> [token2, typeArguments], "{}"); |
JUnitTestCase.assertEquals(token2, literal.modifier); |
JUnitTestCase.assertEquals(typeArguments, literal.typeArguments); |
@@ -2475,7 +2488,19 @@ |
EngineTestCase.assertSize(1, literal.entries); |
JUnitTestCase.assertNotNull(literal.rightBracket); |
} |
- void test_parseMapLiteralEntry() { |
+ void test_parseMapLiteralEntry_complex() { |
+ MapLiteralEntry entry = ParserTestCase.parse5("parseMapLiteralEntry", "2 + 2 : y", []); |
+ JUnitTestCase.assertNotNull(entry.key); |
+ JUnitTestCase.assertNotNull(entry.separator); |
+ JUnitTestCase.assertNotNull(entry.value); |
+ } |
+ void test_parseMapLiteralEntry_int() { |
+ MapLiteralEntry entry = ParserTestCase.parse5("parseMapLiteralEntry", "0 : y", []); |
+ JUnitTestCase.assertNotNull(entry.key); |
+ JUnitTestCase.assertNotNull(entry.separator); |
+ JUnitTestCase.assertNotNull(entry.value); |
+ } |
+ void test_parseMapLiteralEntry_string() { |
MapLiteralEntry entry = ParserTestCase.parse5("parseMapLiteralEntry", "'x' : y", []); |
JUnitTestCase.assertNotNull(entry.key); |
JUnitTestCase.assertNotNull(entry.separator); |
@@ -2772,11 +2797,6 @@ |
JUnitTestCase.assertNotNull(identifier.period); |
JUnitTestCase.assertEquals("bar", identifier.identifier.name); |
} |
- void test_parsePrimaryExpression_argumentDefinitionTest() { |
- ArgumentDefinitionTest expression = ParserTestCase.parse5("parseArgumentDefinitionTest", "?a", []); |
- JUnitTestCase.assertNotNull(expression.question); |
- JUnitTestCase.assertNotNull(expression.identifier); |
- } |
void test_parsePrimaryExpression_const() { |
InstanceCreationExpression expression = ParserTestCase.parse5("parsePrimaryExpression", "const A()", []); |
JUnitTestCase.assertNotNull(expression); |
@@ -2836,9 +2856,9 @@ |
JUnitTestCase.assertNotNull(literal); |
} |
void test_parsePrimaryExpression_mapLiteral_typed() { |
- MapLiteral literal = ParserTestCase.parse5("parsePrimaryExpression", "<A>{}", []); |
+ MapLiteral literal = ParserTestCase.parse5("parsePrimaryExpression", "<A, B>{}", []); |
JUnitTestCase.assertNotNull(literal.typeArguments); |
- EngineTestCase.assertSize(1, literal.typeArguments.arguments); |
+ EngineTestCase.assertSize(2, literal.typeArguments.arguments); |
} |
void test_parsePrimaryExpression_new() { |
InstanceCreationExpression expression = ParserTestCase.parse5("parsePrimaryExpression", "new A()", []); |
@@ -2849,7 +2869,7 @@ |
JUnitTestCase.assertNotNull(literal.literal); |
} |
void test_parsePrimaryExpression_parenthesized() { |
- ParenthesizedExpression expression = ParserTestCase.parse5("parsePrimaryExpression", "()", []); |
+ ParenthesizedExpression expression = ParserTestCase.parse5("parsePrimaryExpression", "(x)", []); |
JUnitTestCase.assertNotNull(expression); |
} |
void test_parsePrimaryExpression_string() { |
@@ -3650,6 +3670,7 @@ |
JUnitTestCase.assertNotNull(following); |
JUnitTestCase.assertEquals(TokenType.PLUS, following.type); |
} |
+ |
/** |
* Invoke the method {@link Parser#computeStringValue(String)} with the given argument. |
* @param lexeme the argument to the method |
@@ -3657,10 +3678,11 @@ |
* @throws Exception if the method could not be invoked or throws an exception |
*/ |
String computeStringValue(String lexeme) { |
- AnalysisErrorListener listener = new AnalysisErrorListener_19(); |
+ AnalysisErrorListener listener = new AnalysisErrorListener_20(); |
Parser parser = new Parser(null, listener); |
return invokeParserMethodImpl(parser, "computeStringValue", <Object> [lexeme], null) as String; |
} |
+ |
/** |
* Invoke the method {@link Parser#createSyntheticIdentifier()} with the parser set to the token |
* stream produced by scanning the given source. |
@@ -3672,6 +3694,7 @@ |
GatheringErrorListener listener = new GatheringErrorListener(); |
return ParserTestCase.invokeParserMethod2("createSyntheticIdentifier", "", listener); |
} |
+ |
/** |
* Invoke the method {@link Parser#createSyntheticIdentifier()} with the parser set to the token |
* stream produced by scanning the given source. |
@@ -3683,6 +3706,7 @@ |
GatheringErrorListener listener = new GatheringErrorListener(); |
return ParserTestCase.invokeParserMethod2("createSyntheticStringLiteral", "", listener); |
} |
+ |
/** |
* Invoke the method {@link Parser#isFunctionDeclaration()} with the parser set to the token |
* stream produced by scanning the given source. |
@@ -3694,6 +3718,7 @@ |
GatheringErrorListener listener = new GatheringErrorListener(); |
return ParserTestCase.invokeParserMethod2("isFunctionDeclaration", source, listener) as bool; |
} |
+ |
/** |
* Invoke the method {@link Parser#isFunctionExpression()} with the parser set to the token stream |
* produced by scanning the given source. |
@@ -3708,6 +3733,7 @@ |
Parser parser = new Parser(null, listener); |
return invokeParserMethodImpl(parser, "isFunctionExpression", <Object> [tokenStream], tokenStream) as bool; |
} |
+ |
/** |
* Invoke the method {@link Parser#isInitializedVariableDeclaration()} with the parser set to the |
* token stream produced by scanning the given source. |
@@ -3719,6 +3745,7 @@ |
GatheringErrorListener listener = new GatheringErrorListener(); |
return ParserTestCase.invokeParserMethod2("isInitializedVariableDeclaration", source, listener) as bool; |
} |
+ |
/** |
* Invoke the method {@link Parser#isSwitchMember()} with the parser set to the token stream |
* produced by scanning the given source. |
@@ -3730,6 +3757,7 @@ |
GatheringErrorListener listener = new GatheringErrorListener(); |
return ParserTestCase.invokeParserMethod2("isSwitchMember", source, listener) as bool; |
} |
+ |
/** |
* Invoke a "skip" method in {@link Parser}. The method is assumed to take a token as it's |
* parameter and is given the first token in the scanned source. |
@@ -3816,6 +3844,10 @@ |
final __test = new SimpleParserTest(); |
runJUnitTest(__test, __test.test_computeStringValue_raw_withEscape); |
}); |
+ _ut.test('test_constFactory', () { |
+ final __test = new SimpleParserTest(); |
+ runJUnitTest(__test, __test.test_constFactory); |
+ }); |
_ut.test('test_createSyntheticIdentifier', () { |
final __test = new SimpleParserTest(); |
runJUnitTest(__test, __test.test_createSyntheticIdentifier); |
@@ -4720,6 +4752,10 @@ |
final __test = new SimpleParserTest(); |
runJUnitTest(__test, __test.test_parseFinalConstVarOrType_final_noType); |
}); |
+ _ut.test('test_parseFinalConstVarOrType_final_prefixedType', () { |
+ final __test = new SimpleParserTest(); |
+ runJUnitTest(__test, __test.test_parseFinalConstVarOrType_final_prefixedType); |
+ }); |
_ut.test('test_parseFinalConstVarOrType_final_type', () { |
final __test = new SimpleParserTest(); |
runJUnitTest(__test, __test.test_parseFinalConstVarOrType_final_type); |
@@ -5052,10 +5088,18 @@ |
final __test = new SimpleParserTest(); |
runJUnitTest(__test, __test.test_parseLogicalOrExpression); |
}); |
- _ut.test('test_parseMapLiteralEntry', () { |
+ _ut.test('test_parseMapLiteralEntry_complex', () { |
final __test = new SimpleParserTest(); |
- runJUnitTest(__test, __test.test_parseMapLiteralEntry); |
+ runJUnitTest(__test, __test.test_parseMapLiteralEntry_complex); |
}); |
+ _ut.test('test_parseMapLiteralEntry_int', () { |
+ final __test = new SimpleParserTest(); |
+ runJUnitTest(__test, __test.test_parseMapLiteralEntry_int); |
+ }); |
+ _ut.test('test_parseMapLiteralEntry_string', () { |
+ final __test = new SimpleParserTest(); |
+ runJUnitTest(__test, __test.test_parseMapLiteralEntry_string); |
+ }); |
_ut.test('test_parseMapLiteral_empty', () { |
final __test = new SimpleParserTest(); |
runJUnitTest(__test, __test.test_parseMapLiteral_empty); |
@@ -5284,10 +5328,6 @@ |
final __test = new SimpleParserTest(); |
runJUnitTest(__test, __test.test_parsePrefixedIdentifier_prefix); |
}); |
- _ut.test('test_parsePrimaryExpression_argumentDefinitionTest', () { |
- final __test = new SimpleParserTest(); |
- runJUnitTest(__test, __test.test_parsePrimaryExpression_argumentDefinitionTest); |
- }); |
_ut.test('test_parsePrimaryExpression_const', () { |
final __test = new SimpleParserTest(); |
runJUnitTest(__test, __test.test_parsePrimaryExpression_const); |
@@ -5811,11 +5851,12 @@ |
}); |
} |
} |
-class AnalysisErrorListener_19 implements AnalysisErrorListener { |
+class AnalysisErrorListener_20 implements AnalysisErrorListener { |
void onError(AnalysisError event) { |
JUnitTestCase.fail("Unexpected compilation error: ${event.message} (${event.offset}, ${event.length})"); |
} |
} |
+ |
/** |
* The class {@code ComplexParserTest} defines parser tests that test the parsing of more complex |
* code fragments or the interactions between multiple parsing methods. For example, tests to ensure |
@@ -5947,15 +5988,6 @@ |
JUnitTestCase.assertSame(target2, index.realTarget); |
} |
} |
- void test_conditionalExpression_precedence_argumentDefinitionTest_not() { |
- ConditionalExpression conditional = ParserTestCase.parseExpression("!?a?!?b:!?c", []); |
- EngineTestCase.assertInstanceOf(PrefixExpression, conditional.condition); |
- EngineTestCase.assertInstanceOf(ArgumentDefinitionTest, ((conditional.condition as PrefixExpression)).operand); |
- EngineTestCase.assertInstanceOf(PrefixExpression, conditional.thenExpression); |
- EngineTestCase.assertInstanceOf(ArgumentDefinitionTest, ((conditional.thenExpression as PrefixExpression)).operand); |
- EngineTestCase.assertInstanceOf(PrefixExpression, conditional.elseExpression); |
- EngineTestCase.assertInstanceOf(ArgumentDefinitionTest, ((conditional.elseExpression as PrefixExpression)).operand); |
- } |
void test_conditionalExpression_precedence_logicalOrExpression() { |
ConditionalExpression expression = ParserTestCase.parseExpression("a | b ? y : z", []); |
EngineTestCase.assertInstanceOf(BinaryExpression, expression.condition); |
@@ -6144,10 +6176,6 @@ |
final __test = new ComplexParserTest(); |
runJUnitTest(__test, __test.test_cascade_withAssignment); |
}); |
- _ut.test('test_conditionalExpression_precedence_argumentDefinitionTest_not', () { |
- final __test = new ComplexParserTest(); |
- runJUnitTest(__test, __test.test_conditionalExpression_precedence_argumentDefinitionTest_not); |
- }); |
_ut.test('test_conditionalExpression_precedence_logicalOrExpression', () { |
final __test = new ComplexParserTest(); |
runJUnitTest(__test, __test.test_conditionalExpression_precedence_logicalOrExpression); |
@@ -6239,15 +6267,18 @@ |
}); |
} |
} |
+ |
/** |
* Instances of the class {@code ASTValidator} are used to validate the correct construction of an |
* AST structure. |
*/ |
class ASTValidator extends GeneralizingASTVisitor<Object> { |
+ |
/** |
* A list containing the errors found while traversing the AST structure. |
*/ |
List<String> _errors = new List<String>(); |
+ |
/** |
* Assert that no errors were found while traversing any of the AST structures that have been |
* visited. |
@@ -6267,6 +6298,7 @@ |
validate(node); |
return super.visitNode(node); |
} |
+ |
/** |
* Validate that the given AST node is correctly constructed. |
* @param node the AST node being validated |
@@ -6307,10 +6339,12 @@ |
} |
} |
class ParserTestCase extends EngineTestCase { |
+ |
/** |
* An empty array of objects used as arguments to zero-argument methods. |
*/ |
static List<Object> _EMPTY_ARGUMENTS = new List<Object>(0); |
+ |
/** |
* Invoke a parse method in {@link Parser}. The method is assumed to have the given number and |
* type of parameters and will be invoked with the given arguments. |
@@ -6325,6 +6359,7 @@ |
* @throws AssertionFailedError if the result is {@code null} or if any errors are produced |
*/ |
static Object parse(String methodName, List<Object> objects, String source) => parse3(methodName, objects, source, new List<AnalysisError>(0)); |
+ |
/** |
* Invoke a parse method in {@link Parser}. The method is assumed to have the given number and |
* type of parameters and will be invoked with the given arguments. |
@@ -6346,6 +6381,7 @@ |
listener.assertErrors(errors); |
return result; |
} |
+ |
/** |
* Invoke a parse method in {@link Parser}. The method is assumed to have the given number and |
* type of parameters and will be invoked with the given arguments. |
@@ -6367,6 +6403,7 @@ |
listener.assertErrors2(errorCodes); |
return result; |
} |
+ |
/** |
* Invoke a parse method in {@link Parser}. The method is assumed to have no arguments. |
* <p> |
@@ -6381,6 +6418,7 @@ |
* scanning and parsing the source do not match the expected errors |
*/ |
static Object parse5(String methodName, String source, List<ErrorCode> errorCodes) => parse4(methodName, _EMPTY_ARGUMENTS, source, errorCodes); |
+ |
/** |
* Parse the given source as a compilation unit. |
* @param source the source to be parsed |
@@ -6400,6 +6438,7 @@ |
listener.assertErrors2(errorCodes); |
return unit; |
} |
+ |
/** |
* Parse the given source as an expression. |
* @param source the source to be parsed |
@@ -6419,6 +6458,7 @@ |
listener.assertErrors2(errorCodes); |
return expression as Expression; |
} |
+ |
/** |
* Parse the given source as a statement. |
* @param source the source to be parsed |
@@ -6438,6 +6478,7 @@ |
listener.assertErrors2(errorCodes); |
return statement as Statement; |
} |
+ |
/** |
* Parse the given source as a sequence of statements. |
* @param source the source to be parsed |
@@ -6459,6 +6500,7 @@ |
listener.assertErrors2(errorCodes); |
return statements; |
} |
+ |
/** |
* Invoke a method in {@link Parser}. The method is assumed to have the given number and type of |
* parameters and will be invoked with the given arguments. |
@@ -6485,6 +6527,7 @@ |
} |
return result as Object; |
} |
+ |
/** |
* Invoke a method in {@link Parser}. The method is assumed to have no arguments. |
* <p> |
@@ -6499,6 +6542,7 @@ |
* scanning and parsing the source do not match the expected errors |
*/ |
static Object invokeParserMethod2(String methodName, String source, GatheringErrorListener listener) => invokeParserMethod(methodName, _EMPTY_ARGUMENTS, source, listener); |
+ |
/** |
* Return a CommentAndMetadata object with the given values that can be used for testing. |
* @param comment the comment to be wrapped in the object |
@@ -6512,6 +6556,7 @@ |
} |
return new CommentAndMetadata(comment, metadata); |
} |
+ |
/** |
* Return an empty CommentAndMetadata object that can be used for testing. |
* @return an empty CommentAndMetadata object that can be used for testing |
@@ -6522,246 +6567,249 @@ |
}); |
} |
} |
+ |
/** |
* The class {@code RecoveryParserTest} defines parser tests that test the parsing of invalid code |
* sequences to ensure that the correct recovery steps are taken in the parser. |
*/ |
class RecoveryParserTest extends ParserTestCase { |
+ void fail_incompleteReturnType() { |
+ ParserTestCase.parseCompilationUnit(EngineTestCase.createSource(["Map<Symbol, convertStringToSymbolMap(Map<String, dynamic> map) {", " if (map == null) return null;", " Map<Symbol, dynamic> result = new Map<Symbol, dynamic>();", " map.forEach((name, value) {", " result[new Symbol(name)] = value;", " });", " return result;", "}"]), []); |
+ } |
void test_additiveExpression_missing_LHS() { |
- BinaryExpression expression = ParserTestCase.parseExpression("+ y", [ParserErrorCode.USE_OF_UNARY_PLUS_OPERATOR]); |
+ BinaryExpression expression = ParserTestCase.parseExpression("+ y", [ParserErrorCode.MISSING_IDENTIFIER]); |
EngineTestCase.assertInstanceOf(SimpleIdentifier, expression.leftOperand); |
JUnitTestCase.assertTrue(expression.leftOperand.isSynthetic()); |
} |
void test_additiveExpression_missing_LHS_RHS() { |
- BinaryExpression expression = ParserTestCase.parseExpression("+", [ParserErrorCode.USE_OF_UNARY_PLUS_OPERATOR]); |
+ BinaryExpression expression = ParserTestCase.parseExpression("+", [ParserErrorCode.MISSING_IDENTIFIER, ParserErrorCode.MISSING_IDENTIFIER]); |
EngineTestCase.assertInstanceOf(SimpleIdentifier, expression.leftOperand); |
JUnitTestCase.assertTrue(expression.leftOperand.isSynthetic()); |
EngineTestCase.assertInstanceOf(SimpleIdentifier, expression.rightOperand); |
JUnitTestCase.assertTrue(expression.rightOperand.isSynthetic()); |
} |
void test_additiveExpression_missing_RHS() { |
- BinaryExpression expression = ParserTestCase.parseExpression("x +", []); |
+ BinaryExpression expression = ParserTestCase.parseExpression("x +", [ParserErrorCode.MISSING_IDENTIFIER]); |
EngineTestCase.assertInstanceOf(SimpleIdentifier, expression.rightOperand); |
JUnitTestCase.assertTrue(expression.rightOperand.isSynthetic()); |
} |
void test_additiveExpression_missing_RHS_super() { |
- BinaryExpression expression = ParserTestCase.parseExpression("super +", []); |
+ BinaryExpression expression = ParserTestCase.parseExpression("super +", [ParserErrorCode.MISSING_IDENTIFIER]); |
EngineTestCase.assertInstanceOf(SimpleIdentifier, expression.rightOperand); |
JUnitTestCase.assertTrue(expression.rightOperand.isSynthetic()); |
} |
void test_additiveExpression_precedence_multiplicative_left() { |
- BinaryExpression expression = ParserTestCase.parseExpression("* +", [ParserErrorCode.USE_OF_UNARY_PLUS_OPERATOR]); |
+ BinaryExpression expression = ParserTestCase.parseExpression("* +", [ParserErrorCode.MISSING_IDENTIFIER, ParserErrorCode.MISSING_IDENTIFIER, ParserErrorCode.MISSING_IDENTIFIER]); |
EngineTestCase.assertInstanceOf(BinaryExpression, expression.leftOperand); |
} |
void test_additiveExpression_precedence_multiplicative_right() { |
- BinaryExpression expression = ParserTestCase.parseExpression("+ *", [ParserErrorCode.USE_OF_UNARY_PLUS_OPERATOR]); |
+ BinaryExpression expression = ParserTestCase.parseExpression("+ *", [ParserErrorCode.MISSING_IDENTIFIER, ParserErrorCode.MISSING_IDENTIFIER, ParserErrorCode.MISSING_IDENTIFIER]); |
EngineTestCase.assertInstanceOf(BinaryExpression, expression.rightOperand); |
} |
void test_additiveExpression_super() { |
- BinaryExpression expression = ParserTestCase.parseExpression("super + +", [ParserErrorCode.USE_OF_UNARY_PLUS_OPERATOR]); |
+ BinaryExpression expression = ParserTestCase.parseExpression("super + +", [ParserErrorCode.MISSING_IDENTIFIER, ParserErrorCode.MISSING_IDENTIFIER]); |
EngineTestCase.assertInstanceOf(BinaryExpression, expression.leftOperand); |
} |
- void test_argumentDefinitionTest_missing_identifier() { |
- ArgumentDefinitionTest expression = ParserTestCase.parseExpression("?", [ParserErrorCode.MISSING_IDENTIFIER]); |
- JUnitTestCase.assertTrue(expression.identifier.isSynthetic()); |
- } |
void test_assignmentExpression_missing_compound1() { |
- AssignmentExpression expression = ParserTestCase.parseExpression("= y = 0", []); |
+ AssignmentExpression expression = ParserTestCase.parseExpression("= y = 0", [ParserErrorCode.MISSING_IDENTIFIER]); |
Expression syntheticExpression = expression.leftHandSide; |
EngineTestCase.assertInstanceOf(SimpleIdentifier, syntheticExpression); |
JUnitTestCase.assertTrue(syntheticExpression.isSynthetic()); |
} |
void test_assignmentExpression_missing_compound2() { |
- AssignmentExpression expression = ParserTestCase.parseExpression("x = = 0", []); |
+ AssignmentExpression expression = ParserTestCase.parseExpression("x = = 0", [ParserErrorCode.MISSING_IDENTIFIER]); |
Expression syntheticExpression = ((expression.rightHandSide as AssignmentExpression)).leftHandSide; |
EngineTestCase.assertInstanceOf(SimpleIdentifier, syntheticExpression); |
JUnitTestCase.assertTrue(syntheticExpression.isSynthetic()); |
} |
void test_assignmentExpression_missing_compound3() { |
- AssignmentExpression expression = ParserTestCase.parseExpression("x = y =", []); |
+ AssignmentExpression expression = ParserTestCase.parseExpression("x = y =", [ParserErrorCode.MISSING_IDENTIFIER]); |
Expression syntheticExpression = ((expression.rightHandSide as AssignmentExpression)).rightHandSide; |
EngineTestCase.assertInstanceOf(SimpleIdentifier, syntheticExpression); |
JUnitTestCase.assertTrue(syntheticExpression.isSynthetic()); |
} |
void test_assignmentExpression_missing_LHS() { |
- AssignmentExpression expression = ParserTestCase.parseExpression("= 0", []); |
+ AssignmentExpression expression = ParserTestCase.parseExpression("= 0", [ParserErrorCode.MISSING_IDENTIFIER]); |
EngineTestCase.assertInstanceOf(SimpleIdentifier, expression.leftHandSide); |
JUnitTestCase.assertTrue(expression.leftHandSide.isSynthetic()); |
} |
void test_assignmentExpression_missing_RHS() { |
- AssignmentExpression expression = ParserTestCase.parseExpression("x =", []); |
+ AssignmentExpression expression = ParserTestCase.parseExpression("x =", [ParserErrorCode.MISSING_IDENTIFIER]); |
EngineTestCase.assertInstanceOf(SimpleIdentifier, expression.leftHandSide); |
JUnitTestCase.assertTrue(expression.rightHandSide.isSynthetic()); |
} |
void test_bitwiseAndExpression_missing_LHS() { |
- BinaryExpression expression = ParserTestCase.parseExpression("& y", []); |
+ BinaryExpression expression = ParserTestCase.parseExpression("& y", [ParserErrorCode.MISSING_IDENTIFIER]); |
EngineTestCase.assertInstanceOf(SimpleIdentifier, expression.leftOperand); |
JUnitTestCase.assertTrue(expression.leftOperand.isSynthetic()); |
} |
void test_bitwiseAndExpression_missing_LHS_RHS() { |
- BinaryExpression expression = ParserTestCase.parseExpression("&", []); |
+ BinaryExpression expression = ParserTestCase.parseExpression("&", [ParserErrorCode.MISSING_IDENTIFIER, ParserErrorCode.MISSING_IDENTIFIER]); |
EngineTestCase.assertInstanceOf(SimpleIdentifier, expression.leftOperand); |
JUnitTestCase.assertTrue(expression.leftOperand.isSynthetic()); |
EngineTestCase.assertInstanceOf(SimpleIdentifier, expression.rightOperand); |
JUnitTestCase.assertTrue(expression.rightOperand.isSynthetic()); |
} |
void test_bitwiseAndExpression_missing_RHS() { |
- BinaryExpression expression = ParserTestCase.parseExpression("x &", []); |
+ BinaryExpression expression = ParserTestCase.parseExpression("x &", [ParserErrorCode.MISSING_IDENTIFIER]); |
EngineTestCase.assertInstanceOf(SimpleIdentifier, expression.rightOperand); |
JUnitTestCase.assertTrue(expression.rightOperand.isSynthetic()); |
} |
void test_bitwiseAndExpression_missing_RHS_super() { |
- BinaryExpression expression = ParserTestCase.parseExpression("super &", []); |
+ BinaryExpression expression = ParserTestCase.parseExpression("super &", [ParserErrorCode.MISSING_IDENTIFIER]); |
EngineTestCase.assertInstanceOf(SimpleIdentifier, expression.rightOperand); |
JUnitTestCase.assertTrue(expression.rightOperand.isSynthetic()); |
} |
void test_bitwiseAndExpression_precedence_equality_left() { |
- BinaryExpression expression = ParserTestCase.parseExpression("== &", []); |
+ BinaryExpression expression = ParserTestCase.parseExpression("== &", [ParserErrorCode.MISSING_IDENTIFIER, ParserErrorCode.MISSING_IDENTIFIER, ParserErrorCode.MISSING_IDENTIFIER]); |
EngineTestCase.assertInstanceOf(BinaryExpression, expression.leftOperand); |
} |
void test_bitwiseAndExpression_precedence_equality_right() { |
- BinaryExpression expression = ParserTestCase.parseExpression("& ==", []); |
+ BinaryExpression expression = ParserTestCase.parseExpression("& ==", [ParserErrorCode.MISSING_IDENTIFIER, ParserErrorCode.MISSING_IDENTIFIER, ParserErrorCode.MISSING_IDENTIFIER]); |
EngineTestCase.assertInstanceOf(BinaryExpression, expression.rightOperand); |
} |
void test_bitwiseAndExpression_super() { |
- BinaryExpression expression = ParserTestCase.parseExpression("super & &", []); |
+ BinaryExpression expression = ParserTestCase.parseExpression("super & &", [ParserErrorCode.MISSING_IDENTIFIER, ParserErrorCode.MISSING_IDENTIFIER]); |
EngineTestCase.assertInstanceOf(BinaryExpression, expression.leftOperand); |
} |
void test_bitwiseOrExpression_missing_LHS() { |
- BinaryExpression expression = ParserTestCase.parseExpression("| y", []); |
+ BinaryExpression expression = ParserTestCase.parseExpression("| y", [ParserErrorCode.MISSING_IDENTIFIER]); |
EngineTestCase.assertInstanceOf(SimpleIdentifier, expression.leftOperand); |
JUnitTestCase.assertTrue(expression.leftOperand.isSynthetic()); |
} |
void test_bitwiseOrExpression_missing_LHS_RHS() { |
- BinaryExpression expression = ParserTestCase.parseExpression("|", []); |
+ BinaryExpression expression = ParserTestCase.parseExpression("|", [ParserErrorCode.MISSING_IDENTIFIER, ParserErrorCode.MISSING_IDENTIFIER]); |
EngineTestCase.assertInstanceOf(SimpleIdentifier, expression.leftOperand); |
JUnitTestCase.assertTrue(expression.leftOperand.isSynthetic()); |
EngineTestCase.assertInstanceOf(SimpleIdentifier, expression.rightOperand); |
JUnitTestCase.assertTrue(expression.rightOperand.isSynthetic()); |
} |
void test_bitwiseOrExpression_missing_RHS() { |
- BinaryExpression expression = ParserTestCase.parseExpression("x |", []); |
+ BinaryExpression expression = ParserTestCase.parseExpression("x |", [ParserErrorCode.MISSING_IDENTIFIER]); |
EngineTestCase.assertInstanceOf(SimpleIdentifier, expression.rightOperand); |
JUnitTestCase.assertTrue(expression.rightOperand.isSynthetic()); |
} |
void test_bitwiseOrExpression_missing_RHS_super() { |
- BinaryExpression expression = ParserTestCase.parseExpression("super |", []); |
+ BinaryExpression expression = ParserTestCase.parseExpression("super |", [ParserErrorCode.MISSING_IDENTIFIER]); |
EngineTestCase.assertInstanceOf(SimpleIdentifier, expression.rightOperand); |
JUnitTestCase.assertTrue(expression.rightOperand.isSynthetic()); |
} |
void test_bitwiseOrExpression_precedence_xor_left() { |
- BinaryExpression expression = ParserTestCase.parseExpression("^ |", []); |
+ BinaryExpression expression = ParserTestCase.parseExpression("^ |", [ParserErrorCode.MISSING_IDENTIFIER, ParserErrorCode.MISSING_IDENTIFIER, ParserErrorCode.MISSING_IDENTIFIER]); |
EngineTestCase.assertInstanceOf(BinaryExpression, expression.leftOperand); |
} |
void test_bitwiseOrExpression_precedence_xor_right() { |
- BinaryExpression expression = ParserTestCase.parseExpression("| ^", []); |
+ BinaryExpression expression = ParserTestCase.parseExpression("| ^", [ParserErrorCode.MISSING_IDENTIFIER, ParserErrorCode.MISSING_IDENTIFIER, ParserErrorCode.MISSING_IDENTIFIER]); |
EngineTestCase.assertInstanceOf(BinaryExpression, expression.rightOperand); |
} |
void test_bitwiseOrExpression_super() { |
- BinaryExpression expression = ParserTestCase.parseExpression("super | |", []); |
+ BinaryExpression expression = ParserTestCase.parseExpression("super | |", [ParserErrorCode.MISSING_IDENTIFIER, ParserErrorCode.MISSING_IDENTIFIER]); |
EngineTestCase.assertInstanceOf(BinaryExpression, expression.leftOperand); |
} |
void test_bitwiseXorExpression_missing_LHS() { |
- BinaryExpression expression = ParserTestCase.parseExpression("^ y", []); |
+ BinaryExpression expression = ParserTestCase.parseExpression("^ y", [ParserErrorCode.MISSING_IDENTIFIER]); |
EngineTestCase.assertInstanceOf(SimpleIdentifier, expression.leftOperand); |
JUnitTestCase.assertTrue(expression.leftOperand.isSynthetic()); |
} |
void test_bitwiseXorExpression_missing_LHS_RHS() { |
- BinaryExpression expression = ParserTestCase.parseExpression("^", []); |
+ BinaryExpression expression = ParserTestCase.parseExpression("^", [ParserErrorCode.MISSING_IDENTIFIER, ParserErrorCode.MISSING_IDENTIFIER]); |
EngineTestCase.assertInstanceOf(SimpleIdentifier, expression.leftOperand); |
JUnitTestCase.assertTrue(expression.leftOperand.isSynthetic()); |
EngineTestCase.assertInstanceOf(SimpleIdentifier, expression.rightOperand); |
JUnitTestCase.assertTrue(expression.rightOperand.isSynthetic()); |
} |
void test_bitwiseXorExpression_missing_RHS() { |
- BinaryExpression expression = ParserTestCase.parseExpression("x ^", []); |
+ BinaryExpression expression = ParserTestCase.parseExpression("x ^", [ParserErrorCode.MISSING_IDENTIFIER]); |
EngineTestCase.assertInstanceOf(SimpleIdentifier, expression.rightOperand); |
JUnitTestCase.assertTrue(expression.rightOperand.isSynthetic()); |
} |
void test_bitwiseXorExpression_missing_RHS_super() { |
- BinaryExpression expression = ParserTestCase.parseExpression("super ^", []); |
+ BinaryExpression expression = ParserTestCase.parseExpression("super ^", [ParserErrorCode.MISSING_IDENTIFIER]); |
EngineTestCase.assertInstanceOf(SimpleIdentifier, expression.rightOperand); |
JUnitTestCase.assertTrue(expression.rightOperand.isSynthetic()); |
} |
void test_bitwiseXorExpression_precedence_and_left() { |
- BinaryExpression expression = ParserTestCase.parseExpression("& ^", []); |
+ BinaryExpression expression = ParserTestCase.parseExpression("& ^", [ParserErrorCode.MISSING_IDENTIFIER, ParserErrorCode.MISSING_IDENTIFIER, ParserErrorCode.MISSING_IDENTIFIER]); |
EngineTestCase.assertInstanceOf(BinaryExpression, expression.leftOperand); |
} |
void test_bitwiseXorExpression_precedence_and_right() { |
- BinaryExpression expression = ParserTestCase.parseExpression("^ &", []); |
+ BinaryExpression expression = ParserTestCase.parseExpression("^ &", [ParserErrorCode.MISSING_IDENTIFIER, ParserErrorCode.MISSING_IDENTIFIER, ParserErrorCode.MISSING_IDENTIFIER]); |
EngineTestCase.assertInstanceOf(BinaryExpression, expression.rightOperand); |
} |
void test_bitwiseXorExpression_super() { |
- BinaryExpression expression = ParserTestCase.parseExpression("super ^ ^", []); |
+ BinaryExpression expression = ParserTestCase.parseExpression("super ^ ^", [ParserErrorCode.MISSING_IDENTIFIER, ParserErrorCode.MISSING_IDENTIFIER]); |
EngineTestCase.assertInstanceOf(BinaryExpression, expression.leftOperand); |
} |
+ void test_classTypeAlias_withBody() { |
+ ParserTestCase.parseCompilationUnit(EngineTestCase.createSource(["class A {}", "typedef B = Object with A {}"]), [ParserErrorCode.EXPECTED_TOKEN]); |
+ } |
void test_conditionalExpression_missingElse() { |
- ConditionalExpression expression = ParserTestCase.parse5("parseConditionalExpression", "x ? y :", []); |
+ ConditionalExpression expression = ParserTestCase.parse5("parseConditionalExpression", "x ? y :", [ParserErrorCode.MISSING_IDENTIFIER]); |
EngineTestCase.assertInstanceOf(SimpleIdentifier, expression.elseExpression); |
JUnitTestCase.assertTrue(expression.elseExpression.isSynthetic()); |
} |
void test_conditionalExpression_missingThen() { |
- ConditionalExpression expression = ParserTestCase.parse5("parseConditionalExpression", "x ? : z", []); |
+ ConditionalExpression expression = ParserTestCase.parse5("parseConditionalExpression", "x ? : z", [ParserErrorCode.MISSING_IDENTIFIER]); |
EngineTestCase.assertInstanceOf(SimpleIdentifier, expression.thenExpression); |
JUnitTestCase.assertTrue(expression.thenExpression.isSynthetic()); |
} |
void test_equalityExpression_missing_LHS() { |
- BinaryExpression expression = ParserTestCase.parseExpression("== y", []); |
+ BinaryExpression expression = ParserTestCase.parseExpression("== y", [ParserErrorCode.MISSING_IDENTIFIER]); |
EngineTestCase.assertInstanceOf(SimpleIdentifier, expression.leftOperand); |
JUnitTestCase.assertTrue(expression.leftOperand.isSynthetic()); |
} |
void test_equalityExpression_missing_LHS_RHS() { |
- BinaryExpression expression = ParserTestCase.parseExpression("==", []); |
+ BinaryExpression expression = ParserTestCase.parseExpression("==", [ParserErrorCode.MISSING_IDENTIFIER, ParserErrorCode.MISSING_IDENTIFIER]); |
EngineTestCase.assertInstanceOf(SimpleIdentifier, expression.leftOperand); |
JUnitTestCase.assertTrue(expression.leftOperand.isSynthetic()); |
EngineTestCase.assertInstanceOf(SimpleIdentifier, expression.rightOperand); |
JUnitTestCase.assertTrue(expression.rightOperand.isSynthetic()); |
} |
void test_equalityExpression_missing_RHS() { |
- BinaryExpression expression = ParserTestCase.parseExpression("x ==", []); |
+ BinaryExpression expression = ParserTestCase.parseExpression("x ==", [ParserErrorCode.MISSING_IDENTIFIER]); |
EngineTestCase.assertInstanceOf(SimpleIdentifier, expression.rightOperand); |
JUnitTestCase.assertTrue(expression.rightOperand.isSynthetic()); |
} |
void test_equalityExpression_missing_RHS_super() { |
- BinaryExpression expression = ParserTestCase.parseExpression("super ==", []); |
+ BinaryExpression expression = ParserTestCase.parseExpression("super ==", [ParserErrorCode.MISSING_IDENTIFIER]); |
EngineTestCase.assertInstanceOf(SimpleIdentifier, expression.rightOperand); |
JUnitTestCase.assertTrue(expression.rightOperand.isSynthetic()); |
} |
void test_equalityExpression_precedence_relational_left() { |
- BinaryExpression expression = ParserTestCase.parseExpression("is ==", [ParserErrorCode.MISSING_IDENTIFIER]); |
+ BinaryExpression expression = ParserTestCase.parseExpression("is ==", [ParserErrorCode.EXPECTED_TYPE_NAME, ParserErrorCode.MISSING_IDENTIFIER, ParserErrorCode.MISSING_IDENTIFIER]); |
EngineTestCase.assertInstanceOf(IsExpression, expression.leftOperand); |
} |
void test_equalityExpression_precedence_relational_right() { |
- BinaryExpression expression = ParserTestCase.parseExpression("== is", [ParserErrorCode.MISSING_IDENTIFIER]); |
+ BinaryExpression expression = ParserTestCase.parseExpression("== is", [ParserErrorCode.EXPECTED_TYPE_NAME, ParserErrorCode.MISSING_IDENTIFIER, ParserErrorCode.MISSING_IDENTIFIER]); |
EngineTestCase.assertInstanceOf(IsExpression, expression.rightOperand); |
} |
void test_equalityExpression_super() { |
- BinaryExpression expression = ParserTestCase.parseExpression("super == ==", []); |
+ BinaryExpression expression = ParserTestCase.parseExpression("super == ==", [ParserErrorCode.MISSING_IDENTIFIER, ParserErrorCode.MISSING_IDENTIFIER]); |
EngineTestCase.assertInstanceOf(BinaryExpression, expression.leftOperand); |
} |
void test_expressionList_multiple_end() { |
- List<Expression> result = ParserTestCase.parse5("parseExpressionList", ", 2, 3, 4", []); |
+ List<Expression> result = ParserTestCase.parse5("parseExpressionList", ", 2, 3, 4", [ParserErrorCode.MISSING_IDENTIFIER]); |
EngineTestCase.assertSize(4, result); |
Expression syntheticExpression = result[0]; |
EngineTestCase.assertInstanceOf(SimpleIdentifier, syntheticExpression); |
JUnitTestCase.assertTrue(syntheticExpression.isSynthetic()); |
} |
void test_expressionList_multiple_middle() { |
- List<Expression> result = ParserTestCase.parse5("parseExpressionList", "1, 2, , 4", []); |
+ List<Expression> result = ParserTestCase.parse5("parseExpressionList", "1, 2, , 4", [ParserErrorCode.MISSING_IDENTIFIER]); |
EngineTestCase.assertSize(4, result); |
Expression syntheticExpression = result[2]; |
EngineTestCase.assertInstanceOf(SimpleIdentifier, syntheticExpression); |
JUnitTestCase.assertTrue(syntheticExpression.isSynthetic()); |
} |
void test_expressionList_multiple_start() { |
- List<Expression> result = ParserTestCase.parse5("parseExpressionList", "1, 2, 3,", []); |
+ List<Expression> result = ParserTestCase.parse5("parseExpressionList", "1, 2, 3,", [ParserErrorCode.MISSING_IDENTIFIER]); |
EngineTestCase.assertSize(4, result); |
Expression syntheticExpression = result[3]; |
EngineTestCase.assertInstanceOf(SimpleIdentifier, syntheticExpression); |
JUnitTestCase.assertTrue(syntheticExpression.isSynthetic()); |
} |
void test_isExpression_noType() { |
- CompilationUnit unit = ParserTestCase.parseCompilationUnit("class Bar<T extends Foo> {m(x){if (x is ) return;if (x is !)}}", [ParserErrorCode.MISSING_IDENTIFIER, ParserErrorCode.MISSING_IDENTIFIER, ParserErrorCode.MISSING_STATEMENT]); |
+ CompilationUnit unit = ParserTestCase.parseCompilationUnit("class Bar<T extends Foo> {m(x){if (x is ) return;if (x is !)}}", [ParserErrorCode.EXPECTED_TYPE_NAME, ParserErrorCode.EXPECTED_TYPE_NAME, ParserErrorCode.MISSING_STATEMENT]); |
ClassDeclaration declaration = unit.declarations[0] as ClassDeclaration; |
MethodDeclaration method = declaration.members[0] as MethodDeclaration; |
BlockFunctionBody body2 = method.body as BlockFunctionBody; |
@@ -6776,148 +6824,148 @@ |
EngineTestCase.assertInstanceOf(EmptyStatement, ifStatement.thenStatement); |
} |
void test_logicalAndExpression_missing_LHS() { |
- BinaryExpression expression = ParserTestCase.parseExpression("&& y", []); |
+ BinaryExpression expression = ParserTestCase.parseExpression("&& y", [ParserErrorCode.MISSING_IDENTIFIER]); |
EngineTestCase.assertInstanceOf(SimpleIdentifier, expression.leftOperand); |
JUnitTestCase.assertTrue(expression.leftOperand.isSynthetic()); |
} |
void test_logicalAndExpression_missing_LHS_RHS() { |
- BinaryExpression expression = ParserTestCase.parseExpression("&&", []); |
+ BinaryExpression expression = ParserTestCase.parseExpression("&&", [ParserErrorCode.MISSING_IDENTIFIER, ParserErrorCode.MISSING_IDENTIFIER]); |
EngineTestCase.assertInstanceOf(SimpleIdentifier, expression.leftOperand); |
JUnitTestCase.assertTrue(expression.leftOperand.isSynthetic()); |
EngineTestCase.assertInstanceOf(SimpleIdentifier, expression.rightOperand); |
JUnitTestCase.assertTrue(expression.rightOperand.isSynthetic()); |
} |
void test_logicalAndExpression_missing_RHS() { |
- BinaryExpression expression = ParserTestCase.parseExpression("x &&", []); |
+ BinaryExpression expression = ParserTestCase.parseExpression("x &&", [ParserErrorCode.MISSING_IDENTIFIER]); |
EngineTestCase.assertInstanceOf(SimpleIdentifier, expression.rightOperand); |
JUnitTestCase.assertTrue(expression.rightOperand.isSynthetic()); |
} |
void test_logicalAndExpression_precedence_bitwiseOr_left() { |
- BinaryExpression expression = ParserTestCase.parseExpression("| &&", []); |
+ BinaryExpression expression = ParserTestCase.parseExpression("| &&", [ParserErrorCode.MISSING_IDENTIFIER, ParserErrorCode.MISSING_IDENTIFIER, ParserErrorCode.MISSING_IDENTIFIER]); |
EngineTestCase.assertInstanceOf(BinaryExpression, expression.leftOperand); |
} |
void test_logicalAndExpression_precedence_bitwiseOr_right() { |
- BinaryExpression expression = ParserTestCase.parseExpression("&& |", []); |
+ BinaryExpression expression = ParserTestCase.parseExpression("&& |", [ParserErrorCode.MISSING_IDENTIFIER, ParserErrorCode.MISSING_IDENTIFIER, ParserErrorCode.MISSING_IDENTIFIER]); |
EngineTestCase.assertInstanceOf(BinaryExpression, expression.rightOperand); |
} |
void test_logicalOrExpression_missing_LHS() { |
- BinaryExpression expression = ParserTestCase.parseExpression("|| y", []); |
+ BinaryExpression expression = ParserTestCase.parseExpression("|| y", [ParserErrorCode.MISSING_IDENTIFIER]); |
EngineTestCase.assertInstanceOf(SimpleIdentifier, expression.leftOperand); |
JUnitTestCase.assertTrue(expression.leftOperand.isSynthetic()); |
} |
void test_logicalOrExpression_missing_LHS_RHS() { |
- BinaryExpression expression = ParserTestCase.parseExpression("||", []); |
+ BinaryExpression expression = ParserTestCase.parseExpression("||", [ParserErrorCode.MISSING_IDENTIFIER, ParserErrorCode.MISSING_IDENTIFIER]); |
EngineTestCase.assertInstanceOf(SimpleIdentifier, expression.leftOperand); |
JUnitTestCase.assertTrue(expression.leftOperand.isSynthetic()); |
EngineTestCase.assertInstanceOf(SimpleIdentifier, expression.rightOperand); |
JUnitTestCase.assertTrue(expression.rightOperand.isSynthetic()); |
} |
void test_logicalOrExpression_missing_RHS() { |
- BinaryExpression expression = ParserTestCase.parseExpression("x ||", []); |
+ BinaryExpression expression = ParserTestCase.parseExpression("x ||", [ParserErrorCode.MISSING_IDENTIFIER]); |
EngineTestCase.assertInstanceOf(SimpleIdentifier, expression.rightOperand); |
JUnitTestCase.assertTrue(expression.rightOperand.isSynthetic()); |
} |
void test_logicalOrExpression_precedence_logicalAnd_left() { |
- BinaryExpression expression = ParserTestCase.parseExpression("&& ||", []); |
+ BinaryExpression expression = ParserTestCase.parseExpression("&& ||", [ParserErrorCode.MISSING_IDENTIFIER, ParserErrorCode.MISSING_IDENTIFIER, ParserErrorCode.MISSING_IDENTIFIER]); |
EngineTestCase.assertInstanceOf(BinaryExpression, expression.leftOperand); |
} |
void test_logicalOrExpression_precedence_logicalAnd_right() { |
- BinaryExpression expression = ParserTestCase.parseExpression("|| &&", []); |
+ BinaryExpression expression = ParserTestCase.parseExpression("|| &&", [ParserErrorCode.MISSING_IDENTIFIER, ParserErrorCode.MISSING_IDENTIFIER, ParserErrorCode.MISSING_IDENTIFIER]); |
EngineTestCase.assertInstanceOf(BinaryExpression, expression.rightOperand); |
} |
void test_multiplicativeExpression_missing_LHS() { |
- BinaryExpression expression = ParserTestCase.parseExpression("* y", []); |
+ BinaryExpression expression = ParserTestCase.parseExpression("* y", [ParserErrorCode.MISSING_IDENTIFIER]); |
EngineTestCase.assertInstanceOf(SimpleIdentifier, expression.leftOperand); |
JUnitTestCase.assertTrue(expression.leftOperand.isSynthetic()); |
} |
void test_multiplicativeExpression_missing_LHS_RHS() { |
- BinaryExpression expression = ParserTestCase.parseExpression("*", []); |
+ BinaryExpression expression = ParserTestCase.parseExpression("*", [ParserErrorCode.MISSING_IDENTIFIER, ParserErrorCode.MISSING_IDENTIFIER]); |
EngineTestCase.assertInstanceOf(SimpleIdentifier, expression.leftOperand); |
JUnitTestCase.assertTrue(expression.leftOperand.isSynthetic()); |
EngineTestCase.assertInstanceOf(SimpleIdentifier, expression.rightOperand); |
JUnitTestCase.assertTrue(expression.rightOperand.isSynthetic()); |
} |
void test_multiplicativeExpression_missing_RHS() { |
- BinaryExpression expression = ParserTestCase.parseExpression("x *", []); |
+ BinaryExpression expression = ParserTestCase.parseExpression("x *", [ParserErrorCode.MISSING_IDENTIFIER]); |
EngineTestCase.assertInstanceOf(SimpleIdentifier, expression.rightOperand); |
JUnitTestCase.assertTrue(expression.rightOperand.isSynthetic()); |
} |
void test_multiplicativeExpression_missing_RHS_super() { |
- BinaryExpression expression = ParserTestCase.parseExpression("super *", []); |
+ BinaryExpression expression = ParserTestCase.parseExpression("super *", [ParserErrorCode.MISSING_IDENTIFIER]); |
EngineTestCase.assertInstanceOf(SimpleIdentifier, expression.rightOperand); |
JUnitTestCase.assertTrue(expression.rightOperand.isSynthetic()); |
} |
void test_multiplicativeExpression_precedence_unary_left() { |
- BinaryExpression expression = ParserTestCase.parseExpression("-x *", []); |
+ BinaryExpression expression = ParserTestCase.parseExpression("-x *", [ParserErrorCode.MISSING_IDENTIFIER]); |
EngineTestCase.assertInstanceOf(PrefixExpression, expression.leftOperand); |
} |
void test_multiplicativeExpression_precedence_unary_right() { |
- BinaryExpression expression = ParserTestCase.parseExpression("* -y", []); |
+ BinaryExpression expression = ParserTestCase.parseExpression("* -y", [ParserErrorCode.MISSING_IDENTIFIER]); |
EngineTestCase.assertInstanceOf(PrefixExpression, expression.rightOperand); |
} |
void test_multiplicativeExpression_super() { |
- BinaryExpression expression = ParserTestCase.parseExpression("super == ==", []); |
+ BinaryExpression expression = ParserTestCase.parseExpression("super == ==", [ParserErrorCode.MISSING_IDENTIFIER, ParserErrorCode.MISSING_IDENTIFIER]); |
EngineTestCase.assertInstanceOf(BinaryExpression, expression.leftOperand); |
} |
void test_prefixExpression_missing_operand_minus() { |
- PrefixExpression expression = ParserTestCase.parseExpression("-", []); |
+ PrefixExpression expression = ParserTestCase.parseExpression("-", [ParserErrorCode.MISSING_IDENTIFIER]); |
EngineTestCase.assertInstanceOf(SimpleIdentifier, expression.operand); |
JUnitTestCase.assertTrue(expression.operand.isSynthetic()); |
JUnitTestCase.assertEquals(TokenType.MINUS, expression.operator.type); |
} |
void test_relationalExpression_missing_LHS() { |
- IsExpression expression = ParserTestCase.parseExpression("is y", []); |
+ IsExpression expression = ParserTestCase.parseExpression("is y", [ParserErrorCode.MISSING_IDENTIFIER]); |
EngineTestCase.assertInstanceOf(SimpleIdentifier, expression.expression); |
JUnitTestCase.assertTrue(expression.expression.isSynthetic()); |
} |
void test_relationalExpression_missing_LHS_RHS() { |
- IsExpression expression = ParserTestCase.parseExpression("is", [ParserErrorCode.MISSING_IDENTIFIER]); |
+ IsExpression expression = ParserTestCase.parseExpression("is", [ParserErrorCode.EXPECTED_TYPE_NAME, ParserErrorCode.MISSING_IDENTIFIER]); |
EngineTestCase.assertInstanceOf(SimpleIdentifier, expression.expression); |
JUnitTestCase.assertTrue(expression.expression.isSynthetic()); |
EngineTestCase.assertInstanceOf(TypeName, expression.type); |
JUnitTestCase.assertTrue(expression.type.isSynthetic()); |
} |
void test_relationalExpression_missing_RHS() { |
- IsExpression expression = ParserTestCase.parseExpression("x is", [ParserErrorCode.MISSING_IDENTIFIER]); |
+ IsExpression expression = ParserTestCase.parseExpression("x is", [ParserErrorCode.EXPECTED_TYPE_NAME]); |
EngineTestCase.assertInstanceOf(TypeName, expression.type); |
JUnitTestCase.assertTrue(expression.type.isSynthetic()); |
} |
void test_relationalExpression_precedence_shift_right() { |
- IsExpression expression = ParserTestCase.parseExpression("<< is", [ParserErrorCode.MISSING_IDENTIFIER]); |
+ IsExpression expression = ParserTestCase.parseExpression("<< is", [ParserErrorCode.EXPECTED_TYPE_NAME, ParserErrorCode.MISSING_IDENTIFIER, ParserErrorCode.MISSING_IDENTIFIER]); |
EngineTestCase.assertInstanceOf(BinaryExpression, expression.expression); |
} |
void test_shiftExpression_missing_LHS() { |
- BinaryExpression expression = ParserTestCase.parseExpression("<< y", []); |
+ BinaryExpression expression = ParserTestCase.parseExpression("<< y", [ParserErrorCode.MISSING_IDENTIFIER]); |
EngineTestCase.assertInstanceOf(SimpleIdentifier, expression.leftOperand); |
JUnitTestCase.assertTrue(expression.leftOperand.isSynthetic()); |
} |
void test_shiftExpression_missing_LHS_RHS() { |
- BinaryExpression expression = ParserTestCase.parseExpression("<<", []); |
+ BinaryExpression expression = ParserTestCase.parseExpression("<<", [ParserErrorCode.MISSING_IDENTIFIER, ParserErrorCode.MISSING_IDENTIFIER]); |
EngineTestCase.assertInstanceOf(SimpleIdentifier, expression.leftOperand); |
JUnitTestCase.assertTrue(expression.leftOperand.isSynthetic()); |
EngineTestCase.assertInstanceOf(SimpleIdentifier, expression.rightOperand); |
JUnitTestCase.assertTrue(expression.rightOperand.isSynthetic()); |
} |
void test_shiftExpression_missing_RHS() { |
- BinaryExpression expression = ParserTestCase.parseExpression("x <<", []); |
+ BinaryExpression expression = ParserTestCase.parseExpression("x <<", [ParserErrorCode.MISSING_IDENTIFIER]); |
EngineTestCase.assertInstanceOf(SimpleIdentifier, expression.rightOperand); |
JUnitTestCase.assertTrue(expression.rightOperand.isSynthetic()); |
} |
void test_shiftExpression_missing_RHS_super() { |
- BinaryExpression expression = ParserTestCase.parseExpression("super <<", []); |
+ BinaryExpression expression = ParserTestCase.parseExpression("super <<", [ParserErrorCode.MISSING_IDENTIFIER]); |
EngineTestCase.assertInstanceOf(SimpleIdentifier, expression.rightOperand); |
JUnitTestCase.assertTrue(expression.rightOperand.isSynthetic()); |
} |
void test_shiftExpression_precedence_unary_left() { |
- BinaryExpression expression = ParserTestCase.parseExpression("+ <<", [ParserErrorCode.USE_OF_UNARY_PLUS_OPERATOR]); |
+ BinaryExpression expression = ParserTestCase.parseExpression("+ <<", [ParserErrorCode.MISSING_IDENTIFIER, ParserErrorCode.MISSING_IDENTIFIER, ParserErrorCode.MISSING_IDENTIFIER]); |
EngineTestCase.assertInstanceOf(BinaryExpression, expression.leftOperand); |
} |
void test_shiftExpression_precedence_unary_right() { |
- BinaryExpression expression = ParserTestCase.parseExpression("<< +", [ParserErrorCode.USE_OF_UNARY_PLUS_OPERATOR]); |
+ BinaryExpression expression = ParserTestCase.parseExpression("<< +", [ParserErrorCode.MISSING_IDENTIFIER, ParserErrorCode.MISSING_IDENTIFIER, ParserErrorCode.MISSING_IDENTIFIER]); |
EngineTestCase.assertInstanceOf(BinaryExpression, expression.rightOperand); |
} |
void test_shiftExpression_super() { |
- BinaryExpression expression = ParserTestCase.parseExpression("super << <<", []); |
+ BinaryExpression expression = ParserTestCase.parseExpression("super << <<", [ParserErrorCode.MISSING_IDENTIFIER, ParserErrorCode.MISSING_IDENTIFIER]); |
EngineTestCase.assertInstanceOf(BinaryExpression, expression.leftOperand); |
} |
void test_typedef_eof() { |
@@ -6957,10 +7005,6 @@ |
final __test = new RecoveryParserTest(); |
runJUnitTest(__test, __test.test_additiveExpression_super); |
}); |
- _ut.test('test_argumentDefinitionTest_missing_identifier', () { |
- final __test = new RecoveryParserTest(); |
- runJUnitTest(__test, __test.test_argumentDefinitionTest_missing_identifier); |
- }); |
_ut.test('test_assignmentExpression_missing_LHS', () { |
final __test = new RecoveryParserTest(); |
runJUnitTest(__test, __test.test_assignmentExpression_missing_LHS); |
@@ -7065,6 +7109,10 @@ |
final __test = new RecoveryParserTest(); |
runJUnitTest(__test, __test.test_bitwiseXorExpression_super); |
}); |
+ _ut.test('test_classTypeAlias_withBody', () { |
+ final __test = new RecoveryParserTest(); |
+ runJUnitTest(__test, __test.test_classTypeAlias_withBody); |
+ }); |
_ut.test('test_conditionalExpression_missingElse', () { |
final __test = new RecoveryParserTest(); |
runJUnitTest(__test, __test.test_conditionalExpression_missingElse); |
@@ -7240,6 +7288,7 @@ |
}); |
} |
} |
+ |
/** |
* The class {@code ErrorParserTest} defines parser tests that test the parsing of code to ensure |
* that errors are correctly reported, and in some cases, not reported. |
@@ -7250,7 +7299,7 @@ |
JUnitTestCase.assertTrue(literal.isSynthetic()); |
} |
void fail_illegalAssignmentToNonAssignable_superAssigned() { |
- ParserTestCase.parse5("parseExpression", "super = x;", [ParserErrorCode.ILLEGAL_ASSIGNMENT_TO_NON_ASSIGNABLE]); |
+ ParserTestCase.parseExpression("super = x;", [ParserErrorCode.ILLEGAL_ASSIGNMENT_TO_NON_ASSIGNABLE]); |
} |
void fail_invalidCommentReference__new_nonIdentifier() { |
ParserTestCase.parse4("parseCommentReference", <Object> ["new 42", 0], "", [ParserErrorCode.INVALID_COMMENT_REFERENCE]); |
@@ -7267,30 +7316,24 @@ |
void fail_missingClosingParenthesis() { |
ParserTestCase.parse5("parseFormalParameterList", "(int a, int b ;", [ParserErrorCode.MISSING_CLOSING_PARENTHESIS]); |
} |
- void fail_missingExpressionInThrow_withCascade() { |
- ParserTestCase.parse5("parseThrowExpression", "throw;", [ParserErrorCode.MISSING_EXPRESSION_IN_THROW]); |
- } |
- void fail_missingExpressionInThrow_withoutCascade() { |
- ParserTestCase.parse5("parseThrowExpressionWithoutCascade", "throw;", [ParserErrorCode.MISSING_EXPRESSION_IN_THROW]); |
- } |
void fail_missingFunctionParameters_local_nonVoid_block() { |
- ParserTestCase.parse5("parseStatement", "int f { return x;}", [ParserErrorCode.MISSING_FUNCTION_PARAMETERS]); |
+ ParserTestCase.parseStatement("int f { return x;}", [ParserErrorCode.MISSING_FUNCTION_PARAMETERS]); |
} |
void fail_missingFunctionParameters_local_nonVoid_expression() { |
- ParserTestCase.parse5("parseStatement", "int f => x;", [ParserErrorCode.MISSING_FUNCTION_PARAMETERS]); |
+ ParserTestCase.parseStatement("int f => x;", [ParserErrorCode.MISSING_FUNCTION_PARAMETERS]); |
} |
void fail_namedFunctionExpression() { |
Expression expression = ParserTestCase.parse5("parsePrimaryExpression", "f() {}", [ParserErrorCode.NAMED_FUNCTION_EXPRESSION]); |
EngineTestCase.assertInstanceOf(FunctionExpression, expression); |
} |
void fail_unexpectedToken_invalidPostfixExpression() { |
- ParserTestCase.parse5("parseExpression", "f()++", [ParserErrorCode.UNEXPECTED_TOKEN]); |
+ ParserTestCase.parseExpression("f()++", [ParserErrorCode.UNEXPECTED_TOKEN]); |
} |
void fail_voidVariable_initializer() { |
- ParserTestCase.parse5("parseStatement", "void x = 0;", [ParserErrorCode.VOID_VARIABLE]); |
+ ParserTestCase.parseStatement("void x = 0;", [ParserErrorCode.VOID_VARIABLE]); |
} |
void fail_voidVariable_noInitializer() { |
- ParserTestCase.parse5("parseStatement", "void x;", [ParserErrorCode.VOID_VARIABLE]); |
+ ParserTestCase.parseStatement("void x;", [ParserErrorCode.VOID_VARIABLE]); |
} |
void test_abstractClassMember_constructor() { |
ParserTestCase.parse4("parseClassMember", <Object> ["C"], "abstract C.c();", [ParserErrorCode.ABSTRACT_CLASS_MEMBER]); |
@@ -7308,19 +7351,19 @@ |
ParserTestCase.parse4("parseClassMember", <Object> ["C"], "abstract set m(v);", [ParserErrorCode.ABSTRACT_CLASS_MEMBER]); |
} |
void test_abstractTopLevelFunction_function() { |
- ParserTestCase.parse5("parseCompilationUnit", "abstract f(v) {}", [ParserErrorCode.ABSTRACT_TOP_LEVEL_FUNCTION]); |
+ ParserTestCase.parseCompilationUnit("abstract f(v) {}", [ParserErrorCode.ABSTRACT_TOP_LEVEL_FUNCTION]); |
} |
void test_abstractTopLevelFunction_getter() { |
- ParserTestCase.parse5("parseCompilationUnit", "abstract get m {}", [ParserErrorCode.ABSTRACT_TOP_LEVEL_FUNCTION]); |
+ ParserTestCase.parseCompilationUnit("abstract get m {}", [ParserErrorCode.ABSTRACT_TOP_LEVEL_FUNCTION]); |
} |
void test_abstractTopLevelFunction_setter() { |
- ParserTestCase.parse5("parseCompilationUnit", "abstract set m(v) {}", [ParserErrorCode.ABSTRACT_TOP_LEVEL_FUNCTION]); |
+ ParserTestCase.parseCompilationUnit("abstract set m(v) {}", [ParserErrorCode.ABSTRACT_TOP_LEVEL_FUNCTION]); |
} |
void test_abstractTopLevelVariable() { |
- ParserTestCase.parse5("parseCompilationUnit", "abstract C f;", [ParserErrorCode.ABSTRACT_TOP_LEVEL_VARIABLE]); |
+ ParserTestCase.parseCompilationUnit("abstract C f;", [ParserErrorCode.ABSTRACT_TOP_LEVEL_VARIABLE]); |
} |
void test_abstractTypeDef() { |
- ParserTestCase.parse5("parseCompilationUnit", "abstract typedef F();", [ParserErrorCode.ABSTRACT_TYPEDEF]); |
+ ParserTestCase.parseCompilationUnit("abstract typedef F();", [ParserErrorCode.ABSTRACT_TYPEDEF]); |
} |
void test_breakOutsideOfLoop_breakInDoStatement() { |
ParserTestCase.parse5("parseDoStatement", "do {break;} while (x);", []); |
@@ -7338,10 +7381,10 @@ |
ParserTestCase.parse5("parseWhileStatement", "while (x) {break;}", []); |
} |
void test_breakOutsideOfLoop_functionExpression_inALoop() { |
- ParserTestCase.parse5("parseStatement", "for(; x;) {() {break;};}", [ParserErrorCode.BREAK_OUTSIDE_OF_LOOP]); |
+ ParserTestCase.parseStatement("for(; x;) {() {break;};}", [ParserErrorCode.BREAK_OUTSIDE_OF_LOOP]); |
} |
void test_breakOutsideOfLoop_functionExpression_withALoop() { |
- ParserTestCase.parse5("parseStatement", "() {for (; x;) {break;}};", []); |
+ ParserTestCase.parseStatement("() {for (; x;) {break;}};", []); |
} |
void test_constAndFinal() { |
ParserTestCase.parse4("parseClassMember", <Object> ["C"], "const final int x;", [ParserErrorCode.CONST_AND_FINAL]); |
@@ -7350,13 +7393,25 @@ |
ParserTestCase.parse4("parseClassMember", <Object> ["C"], "const var x;", [ParserErrorCode.CONST_AND_VAR]); |
} |
void test_constClass() { |
- ParserTestCase.parse5("parseCompilationUnit", "const class C {}", [ParserErrorCode.CONST_CLASS]); |
+ ParserTestCase.parseCompilationUnit("const class C {}", [ParserErrorCode.CONST_CLASS]); |
} |
+ void test_constConstructorWithBody() { |
+ ParserTestCase.parse4("parseClassMember", <Object> ["C"], "const C() {}", [ParserErrorCode.CONST_CONSTRUCTOR_WITH_BODY]); |
+ } |
+ void test_constFactory() { |
+ ParserTestCase.parse4("parseClassMember", <Object> ["C"], "const factory C() {}", [ParserErrorCode.CONST_FACTORY]); |
+ } |
void test_constMethod() { |
ParserTestCase.parse4("parseClassMember", <Object> ["C"], "const int m() {}", [ParserErrorCode.CONST_METHOD]); |
} |
+ void test_constructorWithReturnType() { |
+ ParserTestCase.parse4("parseClassMember", <Object> ["C"], "C C() {}", [ParserErrorCode.CONSTRUCTOR_WITH_RETURN_TYPE]); |
+ } |
+ void test_constructorWithReturnType_var() { |
+ ParserTestCase.parse4("parseClassMember", <Object> ["C"], "var C() {}", [ParserErrorCode.CONSTRUCTOR_WITH_RETURN_TYPE]); |
+ } |
void test_constTypedef() { |
- ParserTestCase.parse5("parseCompilationUnit", "const typedef F();", [ParserErrorCode.CONST_TYPEDEF]); |
+ ParserTestCase.parseCompilationUnit("const typedef F();", [ParserErrorCode.CONST_TYPEDEF]); |
} |
void test_continueOutsideOfLoop_continueInDoStatement() { |
ParserTestCase.parse5("parseDoStatement", "do {continue;} while (x);", []); |
@@ -7374,10 +7429,10 @@ |
ParserTestCase.parse5("parseWhileStatement", "while (x) {continue;}", []); |
} |
void test_continueOutsideOfLoop_functionExpression_inALoop() { |
- ParserTestCase.parse5("parseStatement", "for(; x;) {() {continue;};}", [ParserErrorCode.CONTINUE_OUTSIDE_OF_LOOP]); |
+ ParserTestCase.parseStatement("for(; x;) {() {continue;};}", [ParserErrorCode.CONTINUE_OUTSIDE_OF_LOOP]); |
} |
void test_continueOutsideOfLoop_functionExpression_withALoop() { |
- ParserTestCase.parse5("parseStatement", "() {for (; x;) {continue;}};", []); |
+ ParserTestCase.parseStatement("() {for (; x;) {continue;}};", []); |
} |
void test_continueWithoutLabelInCase_error() { |
ParserTestCase.parse5("parseSwitchStatement", "switch (x) {case 1: continue;}", [ParserErrorCode.CONTINUE_WITHOUT_LABEL_IN_CASE]); |
@@ -7389,11 +7444,11 @@ |
ParserTestCase.parse5("parseWhileStatement", "while (a) { switch (b) {default: continue;}}", []); |
} |
void test_directiveAfterDeclaration_classBeforeDirective() { |
- CompilationUnit unit = ParserTestCase.parse5("parseCompilationUnit", "class Foo{} library l;", [ParserErrorCode.DIRECTIVE_AFTER_DECLARATION]); |
+ CompilationUnit unit = ParserTestCase.parseCompilationUnit("class Foo{} library l;", [ParserErrorCode.DIRECTIVE_AFTER_DECLARATION]); |
JUnitTestCase.assertNotNull(unit); |
} |
void test_directiveAfterDeclaration_classBetweenDirectives() { |
- CompilationUnit unit = ParserTestCase.parse5("parseCompilationUnit", "library l;\nclass Foo{}\npart 'a.dart';", [ParserErrorCode.DIRECTIVE_AFTER_DECLARATION]); |
+ CompilationUnit unit = ParserTestCase.parseCompilationUnit("library l;\nclass Foo{}\npart 'a.dart';", [ParserErrorCode.DIRECTIVE_AFTER_DECLARATION]); |
JUnitTestCase.assertNotNull(unit); |
} |
void test_duplicatedModifier_const() { |
@@ -7409,7 +7464,7 @@ |
ParserTestCase.parse4("parseClassMember", <Object> ["C"], "final final m;", [ParserErrorCode.DUPLICATED_MODIFIER]); |
} |
void test_duplicatedModifier_static() { |
- ParserTestCase.parse4("parseClassMember", <Object> ["C"], "static static m;", [ParserErrorCode.DUPLICATED_MODIFIER]); |
+ ParserTestCase.parse4("parseClassMember", <Object> ["C"], "static static var m;", [ParserErrorCode.DUPLICATED_MODIFIER]); |
} |
void test_duplicatedModifier_var() { |
ParserTestCase.parse4("parseClassMember", <Object> ["C"], "var var m;", [ParserErrorCode.DUPLICATED_MODIFIER]); |
@@ -7438,6 +7493,9 @@ |
void test_expectedExecutable_topLevel_beforeType() { |
ParserTestCase.parse4("parseCompilationUnitMember", <Object> [emptyCommentAndMetadata()], "4 score", [ParserErrorCode.EXPECTED_EXECUTABLE]); |
} |
+ void test_expectedInterpolationIdentifier() { |
+ ParserTestCase.parse5("parseStringLiteral", "'\$x\$'", [ParserErrorCode.MISSING_IDENTIFIER]); |
+ } |
void test_expectedStringLiteral() { |
StringLiteral expression = ParserTestCase.parse5("parseStringLiteral", "1", [ParserErrorCode.EXPECTED_STRING_LITERAL]); |
JUnitTestCase.assertTrue(expression.isSynthetic()); |
@@ -7446,13 +7504,24 @@ |
ParserTestCase.parse5("parseArgumentList", "(x, y z)", [ParserErrorCode.EXPECTED_TOKEN]); |
} |
void test_expectedToken_semicolonMissingAfterExpression() { |
- ParserTestCase.parse5("parseStatement", "x", [ParserErrorCode.EXPECTED_TOKEN]); |
+ ParserTestCase.parseStatement("x", [ParserErrorCode.EXPECTED_TOKEN]); |
} |
void test_expectedToken_whileMissingInDoStatement() { |
- ParserTestCase.parse5("parseStatement", "do {} (x);", [ParserErrorCode.EXPECTED_TOKEN]); |
+ ParserTestCase.parseStatement("do {} (x);", [ParserErrorCode.EXPECTED_TOKEN]); |
} |
+ void test_expectedTwoMapTypeArguments_one() { |
+ Expression expression = ParserTestCase.parse5("parsePrimaryExpression", "<int>{}", [ParserErrorCode.EXPECTED_TWO_MAP_TYPE_ARGUMENTS]); |
+ EngineTestCase.assertInstanceOf(MapLiteral, expression); |
+ } |
+ void test_expectedTwoMapTypeArguments_three() { |
+ Expression expression = ParserTestCase.parse5("parsePrimaryExpression", "<int, int, int>{}", [ParserErrorCode.EXPECTED_TWO_MAP_TYPE_ARGUMENTS]); |
+ EngineTestCase.assertInstanceOf(MapLiteral, expression); |
+ } |
+ void test_expectedTypeName_is() { |
+ ParserTestCase.parseExpression("x is", [ParserErrorCode.EXPECTED_TYPE_NAME]); |
+ } |
void test_exportDirectiveAfterPartDirective() { |
- ParserTestCase.parse5("parseCompilationUnit", "part 'a.dart'; export 'b.dart';", [ParserErrorCode.EXPORT_DIRECTIVE_AFTER_PART_DIRECTIVE]); |
+ ParserTestCase.parseCompilationUnit("part 'a.dart'; export 'b.dart';", [ParserErrorCode.EXPORT_DIRECTIVE_AFTER_PART_DIRECTIVE]); |
} |
void test_externalAfterConst() { |
ParserTestCase.parse4("parseClassMember", <Object> ["C"], "const external C();", [ParserErrorCode.EXTERNAL_AFTER_CONST]); |
@@ -7464,7 +7533,7 @@ |
ParserTestCase.parse4("parseClassMember", <Object> ["C"], "static external int m();", [ParserErrorCode.EXTERNAL_AFTER_STATIC]); |
} |
void test_externalClass() { |
- ParserTestCase.parse5("parseCompilationUnit", "external class C {}", [ParserErrorCode.EXTERNAL_CLASS]); |
+ ParserTestCase.parseCompilationUnit("external class C {}", [ParserErrorCode.EXTERNAL_CLASS]); |
} |
void test_externalConstructorWithBody_factory() { |
ParserTestCase.parse4("parseClassMember", <Object> ["C"], "external factory C() {}", [ParserErrorCode.EXTERNAL_CONSTRUCTOR_WITH_BODY]); |
@@ -7500,14 +7569,17 @@ |
ParserTestCase.parse4("parseClassMember", <Object> ["C"], "external set x(int value) {}", [ParserErrorCode.EXTERNAL_SETTER_WITH_BODY]); |
} |
void test_externalTypedef() { |
- ParserTestCase.parse5("parseCompilationUnit", "external typedef F();", [ParserErrorCode.EXTERNAL_TYPEDEF]); |
+ ParserTestCase.parseCompilationUnit("external typedef F();", [ParserErrorCode.EXTERNAL_TYPEDEF]); |
} |
void test_factoryTopLevelDeclaration_class() { |
- ParserTestCase.parse5("parseCompilationUnit", "factory class C {}", [ParserErrorCode.FACTORY_TOP_LEVEL_DECLARATION]); |
+ ParserTestCase.parseCompilationUnit("factory class C {}", [ParserErrorCode.FACTORY_TOP_LEVEL_DECLARATION]); |
} |
void test_factoryTopLevelDeclaration_typedef() { |
- ParserTestCase.parse5("parseCompilationUnit", "factory typedef F();", [ParserErrorCode.FACTORY_TOP_LEVEL_DECLARATION]); |
+ ParserTestCase.parseCompilationUnit("factory typedef F();", [ParserErrorCode.FACTORY_TOP_LEVEL_DECLARATION]); |
} |
+ void test_factoryWithoutBody() { |
+ ParserTestCase.parse4("parseClassMember", <Object> ["C"], "factory C();", [ParserErrorCode.FACTORY_WITHOUT_BODY]); |
+ } |
void test_fieldInitializerOutsideConstructor() { |
ParserTestCase.parse4("parseClassMember", <Object> ["C"], "void m(this.x);", [ParserErrorCode.FIELD_INITIALIZER_OUTSIDE_CONSTRUCTOR]); |
} |
@@ -7515,7 +7587,7 @@ |
ParserTestCase.parse4("parseClassMember", <Object> ["C"], "final var x;", [ParserErrorCode.FINAL_AND_VAR]); |
} |
void test_finalClass() { |
- ParserTestCase.parse5("parseCompilationUnit", "final class C {}", [ParserErrorCode.FINAL_CLASS]); |
+ ParserTestCase.parseCompilationUnit("final class C {}", [ParserErrorCode.FINAL_CLASS]); |
} |
void test_finalConstructor() { |
ParserTestCase.parse4("parseClassMember", <Object> ["C"], "final C() {}", [ParserErrorCode.FINAL_CONSTRUCTOR]); |
@@ -7524,22 +7596,22 @@ |
ParserTestCase.parse4("parseClassMember", <Object> ["C"], "final int m() {}", [ParserErrorCode.FINAL_METHOD]); |
} |
void test_finalTypedef() { |
- ParserTestCase.parse5("parseCompilationUnit", "final typedef F();", [ParserErrorCode.FINAL_TYPEDEF]); |
+ ParserTestCase.parseCompilationUnit("final typedef F();", [ParserErrorCode.FINAL_TYPEDEF]); |
} |
void test_getterWithParameters() { |
ParserTestCase.parse4("parseClassMember", <Object> ["C"], "int get x() {}", [ParserErrorCode.GETTER_WITH_PARAMETERS]); |
} |
void test_illegalAssignmentToNonAssignable_superAssigned() { |
- ParserTestCase.parse5("parseExpression", "super = x;", [ParserErrorCode.MISSING_ASSIGNABLE_SELECTOR, ParserErrorCode.ILLEGAL_ASSIGNMENT_TO_NON_ASSIGNABLE]); |
+ ParserTestCase.parseExpression("super = x;", [ParserErrorCode.MISSING_ASSIGNABLE_SELECTOR, ParserErrorCode.ILLEGAL_ASSIGNMENT_TO_NON_ASSIGNABLE]); |
} |
void test_implementsBeforeExtends() { |
- ParserTestCase.parse5("parseCompilationUnit", "class A implements B extends C {}", [ParserErrorCode.IMPLEMENTS_BEFORE_EXTENDS]); |
+ ParserTestCase.parseCompilationUnit("class A implements B extends C {}", [ParserErrorCode.IMPLEMENTS_BEFORE_EXTENDS]); |
} |
void test_implementsBeforeWith() { |
- ParserTestCase.parse5("parseCompilationUnit", "class A extends B implements C with D {}", [ParserErrorCode.IMPLEMENTS_BEFORE_WITH]); |
+ ParserTestCase.parseCompilationUnit("class A extends B implements C with D {}", [ParserErrorCode.IMPLEMENTS_BEFORE_WITH]); |
} |
void test_importDirectiveAfterPartDirective() { |
- ParserTestCase.parse5("parseCompilationUnit", "part 'a.dart'; import 'b.dart';", [ParserErrorCode.IMPORT_DIRECTIVE_AFTER_PART_DIRECTIVE]); |
+ ParserTestCase.parseCompilationUnit("part 'a.dart'; import 'b.dart';", [ParserErrorCode.IMPORT_DIRECTIVE_AFTER_PART_DIRECTIVE]); |
} |
void test_initializedVariableInForEach() { |
ParserTestCase.parse5("parseForStatement", "for (int a = 0 in foo) {}", [ParserErrorCode.INITIALIZED_VARIABLE_IN_FOR_EACH]); |
@@ -7553,6 +7625,9 @@ |
void test_invalidHexEscape_tooFewDigits() { |
ParserTestCase.parse5("parseStringLiteral", "'\\x0'", [ParserErrorCode.INVALID_HEX_ESCAPE]); |
} |
+ void test_invalidInterpolationIdentifier_startWithDigit() { |
+ ParserTestCase.parse5("parseStringLiteral", "'\$1'", [ParserErrorCode.MISSING_IDENTIFIER]); |
+ } |
void test_invalidOperator() { |
ParserTestCase.parse4("parseClassMember", <Object> ["C"], "void operator ===(x) {}", [ParserErrorCode.INVALID_OPERATOR]); |
} |
@@ -7578,62 +7653,74 @@ |
ParserTestCase.parse5("parseStringLiteral", "'\\u{12345678}'", [ParserErrorCode.INVALID_UNICODE_ESCAPE, ParserErrorCode.INVALID_CODE_POINT]); |
} |
void test_libraryDirectiveNotFirst() { |
- ParserTestCase.parse5("parseCompilationUnit", "import 'x.dart'; library l;", [ParserErrorCode.LIBRARY_DIRECTIVE_NOT_FIRST]); |
+ ParserTestCase.parseCompilationUnit("import 'x.dart'; library l;", [ParserErrorCode.LIBRARY_DIRECTIVE_NOT_FIRST]); |
} |
void test_libraryDirectiveNotFirst_afterPart() { |
- CompilationUnit unit = ParserTestCase.parse5("parseCompilationUnit", "part 'a.dart';\nlibrary l;", [ParserErrorCode.LIBRARY_DIRECTIVE_NOT_FIRST]); |
+ CompilationUnit unit = ParserTestCase.parseCompilationUnit("part 'a.dart';\nlibrary l;", [ParserErrorCode.LIBRARY_DIRECTIVE_NOT_FIRST]); |
JUnitTestCase.assertNotNull(unit); |
} |
void test_missingAssignableSelector_identifiersAssigned() { |
- ParserTestCase.parse5("parseExpression", "x.y = y;", []); |
+ ParserTestCase.parseExpression("x.y = y;", []); |
} |
void test_missingAssignableSelector_primarySelectorPostfix() { |
- ParserTestCase.parse5("parseExpression", "x(y)(z)++", [ParserErrorCode.MISSING_ASSIGNABLE_SELECTOR]); |
+ ParserTestCase.parseExpression("x(y)(z)++", [ParserErrorCode.MISSING_ASSIGNABLE_SELECTOR]); |
} |
void test_missingAssignableSelector_selector() { |
- ParserTestCase.parse5("parseExpression", "x(y)(z).a++", []); |
+ ParserTestCase.parseExpression("x(y)(z).a++", []); |
} |
void test_missingAssignableSelector_superPrimaryExpression() { |
SuperExpression expression = ParserTestCase.parse5("parsePrimaryExpression", "super", [ParserErrorCode.MISSING_ASSIGNABLE_SELECTOR]); |
JUnitTestCase.assertNotNull(expression.keyword); |
} |
void test_missingAssignableSelector_superPropertyAccessAssigned() { |
- ParserTestCase.parse5("parseExpression", "super.x = x;", []); |
+ ParserTestCase.parseExpression("super.x = x;", []); |
} |
void test_missingCatchOrFinally() { |
TryStatement statement = ParserTestCase.parse5("parseTryStatement", "try {}", [ParserErrorCode.MISSING_CATCH_OR_FINALLY]); |
JUnitTestCase.assertNotNull(statement); |
} |
void test_missingClassBody() { |
- ParserTestCase.parse5("parseCompilationUnit", "class A class B {}", [ParserErrorCode.MISSING_CLASS_BODY]); |
+ ParserTestCase.parseCompilationUnit("class A class B {}", [ParserErrorCode.MISSING_CLASS_BODY]); |
} |
- void test_missingConstFinalVarOrType() { |
+ void test_missingConstFinalVarOrType_static() { |
+ ParserTestCase.parseCompilationUnit("class A { static f; }", [ParserErrorCode.MISSING_CONST_FINAL_VAR_OR_TYPE]); |
+ } |
+ void test_missingConstFinalVarOrType_topLevel() { |
ParserTestCase.parse4("parseFinalConstVarOrType", <Object> [false], "a;", [ParserErrorCode.MISSING_CONST_FINAL_VAR_OR_TYPE]); |
} |
+ void test_missingExpressionInThrow_withCascade() { |
+ ParserTestCase.parse5("parseThrowExpression", "throw;", [ParserErrorCode.MISSING_EXPRESSION_IN_THROW]); |
+ } |
+ void test_missingExpressionInThrow_withoutCascade() { |
+ ParserTestCase.parse5("parseThrowExpressionWithoutCascade", "throw;", [ParserErrorCode.MISSING_EXPRESSION_IN_THROW]); |
+ } |
void test_missingFunctionBody_emptyNotAllowed() { |
- ParserTestCase.parse4("parseFunctionBody", <Object> [false, false], ";", [ParserErrorCode.MISSING_FUNCTION_BODY]); |
+ ParserTestCase.parse4("parseFunctionBody", <Object> [false, ParserErrorCode.MISSING_FUNCTION_BODY, false], ";", [ParserErrorCode.MISSING_FUNCTION_BODY]); |
} |
void test_missingFunctionBody_invalid() { |
- ParserTestCase.parse4("parseFunctionBody", <Object> [false, false], "return 0;", [ParserErrorCode.MISSING_FUNCTION_BODY]); |
+ ParserTestCase.parse4("parseFunctionBody", <Object> [false, ParserErrorCode.MISSING_FUNCTION_BODY, false], "return 0;", [ParserErrorCode.MISSING_FUNCTION_BODY]); |
} |
void test_missingFunctionParameters_local_void_block() { |
- ParserTestCase.parse5("parseStatement", "void f { return x;}", [ParserErrorCode.MISSING_FUNCTION_PARAMETERS]); |
+ ParserTestCase.parseStatement("void f { return x;}", [ParserErrorCode.MISSING_FUNCTION_PARAMETERS]); |
} |
void test_missingFunctionParameters_local_void_expression() { |
- ParserTestCase.parse5("parseStatement", "void f => x;", [ParserErrorCode.MISSING_FUNCTION_PARAMETERS]); |
+ ParserTestCase.parseStatement("void f => x;", [ParserErrorCode.MISSING_FUNCTION_PARAMETERS]); |
} |
void test_missingFunctionParameters_topLevel_nonVoid_block() { |
- ParserTestCase.parse5("parseCompilationUnit", "int f { return x;}", [ParserErrorCode.MISSING_FUNCTION_PARAMETERS]); |
+ ParserTestCase.parseCompilationUnit("int f { return x;}", [ParserErrorCode.MISSING_FUNCTION_PARAMETERS]); |
} |
void test_missingFunctionParameters_topLevel_nonVoid_expression() { |
- ParserTestCase.parse5("parseCompilationUnit", "int f => x;", [ParserErrorCode.MISSING_FUNCTION_PARAMETERS]); |
+ ParserTestCase.parseCompilationUnit("int f => x;", [ParserErrorCode.MISSING_FUNCTION_PARAMETERS]); |
} |
void test_missingFunctionParameters_topLevel_void_block() { |
- ParserTestCase.parse5("parseCompilationUnit", "void f { return x;}", [ParserErrorCode.MISSING_FUNCTION_PARAMETERS]); |
+ ParserTestCase.parseCompilationUnit("void f { return x;}", [ParserErrorCode.MISSING_FUNCTION_PARAMETERS]); |
} |
void test_missingFunctionParameters_topLevel_void_expression() { |
- ParserTestCase.parse5("parseCompilationUnit", "void f => x;", [ParserErrorCode.MISSING_FUNCTION_PARAMETERS]); |
+ ParserTestCase.parseCompilationUnit("void f => x;", [ParserErrorCode.MISSING_FUNCTION_PARAMETERS]); |
} |
+ void test_missingIdentifier_afterOperator() { |
+ ParserTestCase.parse5("parseMultiplicativeExpression", "1 *", [ParserErrorCode.MISSING_IDENTIFIER]); |
+ } |
void test_missingIdentifier_functionDeclaration_returnTypeWithoutName() { |
ParserTestCase.parse5("parseFunctionDeclarationStatement", "A<T> () {}", [ParserErrorCode.MISSING_IDENTIFIER]); |
} |
@@ -7645,11 +7732,11 @@ |
ParserTestCase.parse4("parseOperator", <Object> [emptyCommentAndMetadata(), null, null], "+(x) {}", [ParserErrorCode.MISSING_KEYWORD_OPERATOR]); |
} |
void test_missingNameInLibraryDirective() { |
- CompilationUnit unit = ParserTestCase.parse5("parseCompilationUnit", "library;", [ParserErrorCode.MISSING_NAME_IN_LIBRARY_DIRECTIVE]); |
+ CompilationUnit unit = ParserTestCase.parseCompilationUnit("library;", [ParserErrorCode.MISSING_NAME_IN_LIBRARY_DIRECTIVE]); |
JUnitTestCase.assertNotNull(unit); |
} |
void test_missingNameInPartOfDirective() { |
- CompilationUnit unit = ParserTestCase.parse5("parseCompilationUnit", "part of;", [ParserErrorCode.MISSING_NAME_IN_PART_OF_DIRECTIVE]); |
+ CompilationUnit unit = ParserTestCase.parseCompilationUnit("part of;", [ParserErrorCode.MISSING_NAME_IN_PART_OF_DIRECTIVE]); |
JUnitTestCase.assertNotNull(unit); |
} |
void test_missingTerminatorForParameterGroup_named() { |
@@ -7659,13 +7746,13 @@ |
ParserTestCase.parse5("parseFormalParameterList", "(a, [b = 0)", [ParserErrorCode.MISSING_TERMINATOR_FOR_PARAMETER_GROUP]); |
} |
void test_missingTypedefParameters_nonVoid() { |
- ParserTestCase.parse5("parseCompilationUnit", "typedef int F;", [ParserErrorCode.MISSING_TYPEDEF_PARAMETERS]); |
+ ParserTestCase.parseCompilationUnit("typedef int F;", [ParserErrorCode.MISSING_TYPEDEF_PARAMETERS]); |
} |
void test_missingTypedefParameters_typeParameters() { |
- ParserTestCase.parse5("parseCompilationUnit", "typedef F<E>;", [ParserErrorCode.MISSING_TYPEDEF_PARAMETERS]); |
+ ParserTestCase.parseCompilationUnit("typedef F<E>;", [ParserErrorCode.MISSING_TYPEDEF_PARAMETERS]); |
} |
void test_missingTypedefParameters_void() { |
- ParserTestCase.parse5("parseCompilationUnit", "typedef void F;", [ParserErrorCode.MISSING_TYPEDEF_PARAMETERS]); |
+ ParserTestCase.parseCompilationUnit("typedef void F;", [ParserErrorCode.MISSING_TYPEDEF_PARAMETERS]); |
} |
void test_missingVariableInForEach() { |
ParserTestCase.parse5("parseForStatement", "for (a < b in foo) {}", [ParserErrorCode.MISSING_VARIABLE_IN_FOR_EACH]); |
@@ -7677,13 +7764,13 @@ |
ParserTestCase.parse5("parseFormalParameterList", "(a, [b], {c})", [ParserErrorCode.MIXED_PARAMETER_GROUPS]); |
} |
void test_multipleLibraryDirectives() { |
- ParserTestCase.parse5("parseCompilationUnit", "library l; library m;", [ParserErrorCode.MULTIPLE_LIBRARY_DIRECTIVES]); |
+ ParserTestCase.parseCompilationUnit("library l; library m;", [ParserErrorCode.MULTIPLE_LIBRARY_DIRECTIVES]); |
} |
void test_multipleNamedParameterGroups() { |
ParserTestCase.parse5("parseFormalParameterList", "(a, {b}, {c})", [ParserErrorCode.MULTIPLE_NAMED_PARAMETER_GROUPS]); |
} |
void test_multiplePartOfDirectives() { |
- ParserTestCase.parse5("parseCompilationUnit", "part of l; part of m;", [ParserErrorCode.MULTIPLE_PART_OF_DIRECTIVES]); |
+ ParserTestCase.parseCompilationUnit("part of l; part of m;", [ParserErrorCode.MULTIPLE_PART_OF_DIRECTIVES]); |
} |
void test_multiplePositionalParameterGroups() { |
ParserTestCase.parse5("parseFormalParameterList", "(a, [b], [c])", [ParserErrorCode.MULTIPLE_POSITIONAL_PARAMETER_GROUPS]); |
@@ -7701,18 +7788,18 @@ |
ParserTestCase.parse4("parseClassMember", <Object> ["C"], "factory int m() {}", [ParserErrorCode.NON_CONSTRUCTOR_FACTORY]); |
} |
void test_nonIdentifierLibraryName_library() { |
- CompilationUnit unit = ParserTestCase.parse5("parseCompilationUnit", "library 'lib';", [ParserErrorCode.NON_IDENTIFIER_LIBRARY_NAME]); |
+ CompilationUnit unit = ParserTestCase.parseCompilationUnit("library 'lib';", [ParserErrorCode.NON_IDENTIFIER_LIBRARY_NAME]); |
JUnitTestCase.assertNotNull(unit); |
} |
void test_nonIdentifierLibraryName_partOf() { |
- CompilationUnit unit = ParserTestCase.parse5("parseCompilationUnit", "part of 'lib';", [ParserErrorCode.NON_IDENTIFIER_LIBRARY_NAME]); |
+ CompilationUnit unit = ParserTestCase.parseCompilationUnit("part of 'lib';", [ParserErrorCode.NON_IDENTIFIER_LIBRARY_NAME]); |
JUnitTestCase.assertNotNull(unit); |
} |
void test_nonPartOfDirectiveInPart_after() { |
- ParserTestCase.parse5("parseCompilationUnit", "part of l; part 'f.dart';", [ParserErrorCode.NON_PART_OF_DIRECTIVE_IN_PART]); |
+ ParserTestCase.parseCompilationUnit("part of l; part 'f.dart';", [ParserErrorCode.NON_PART_OF_DIRECTIVE_IN_PART]); |
} |
void test_nonPartOfDirectiveInPart_before() { |
- ParserTestCase.parse5("parseCompilationUnit", "part 'f.dart'; part of m;", [ParserErrorCode.NON_PART_OF_DIRECTIVE_IN_PART]); |
+ ParserTestCase.parseCompilationUnit("part 'f.dart'; part of m;", [ParserErrorCode.NON_PART_OF_DIRECTIVE_IN_PART]); |
} |
void test_nonUserDefinableOperator() { |
ParserTestCase.parse4("parseClassMember", <Object> ["C"], "operator +=(int x) => x + 1;", [ParserErrorCode.NON_USER_DEFINABLE_OPERATOR]); |
@@ -7735,20 +7822,26 @@ |
void test_staticConstructor() { |
ParserTestCase.parse4("parseClassMember", <Object> ["C"], "static C.m() {}", [ParserErrorCode.STATIC_CONSTRUCTOR]); |
} |
+ void test_staticGetterWithoutBody() { |
+ ParserTestCase.parse4("parseClassMember", <Object> ["C"], "static get m;", [ParserErrorCode.STATIC_GETTER_WITHOUT_BODY]); |
+ } |
void test_staticOperator_noReturnType() { |
ParserTestCase.parse4("parseClassMember", <Object> ["C"], "static operator +(int x) => x + 1;", [ParserErrorCode.STATIC_OPERATOR]); |
} |
void test_staticOperator_returnType() { |
ParserTestCase.parse4("parseClassMember", <Object> ["C"], "static int operator +(int x) => x + 1;", [ParserErrorCode.STATIC_OPERATOR]); |
} |
+ void test_staticSetterWithoutBody() { |
+ ParserTestCase.parse4("parseClassMember", <Object> ["C"], "static set m(x);", [ParserErrorCode.STATIC_SETTER_WITHOUT_BODY]); |
+ } |
void test_staticTopLevelDeclaration_class() { |
- ParserTestCase.parse5("parseCompilationUnit", "static class C {}", [ParserErrorCode.STATIC_TOP_LEVEL_DECLARATION]); |
+ ParserTestCase.parseCompilationUnit("static class C {}", [ParserErrorCode.STATIC_TOP_LEVEL_DECLARATION]); |
} |
void test_staticTopLevelDeclaration_typedef() { |
- ParserTestCase.parse5("parseCompilationUnit", "static typedef F();", [ParserErrorCode.STATIC_TOP_LEVEL_DECLARATION]); |
+ ParserTestCase.parseCompilationUnit("static typedef F();", [ParserErrorCode.STATIC_TOP_LEVEL_DECLARATION]); |
} |
void test_staticTopLevelDeclaration_variable() { |
- ParserTestCase.parse5("parseCompilationUnit", "static var x;", [ParserErrorCode.STATIC_TOP_LEVEL_DECLARATION]); |
+ ParserTestCase.parseCompilationUnit("static var x;", [ParserErrorCode.STATIC_TOP_LEVEL_DECLARATION]); |
} |
void test_switchHasCaseAfterDefaultCase() { |
ParserTestCase.parse5("parseSwitchStatement", "switch (a) {default: return 0; case 1: return 1;}", [ParserErrorCode.SWITCH_HAS_CASE_AFTER_DEFAULT_CASE]); |
@@ -7781,22 +7874,24 @@ |
ParserTestCase.parse4("parseClassDeclaration", <Object> [emptyCommentAndMetadata(), null], "class C { int x; ; int y;}", [ParserErrorCode.UNEXPECTED_TOKEN]); |
} |
void test_unexpectedToken_semicolonBetweenCompilationUnitMembers() { |
- ParserTestCase.parse5("parseCompilationUnit", "int x; ; int y;", [ParserErrorCode.UNEXPECTED_TOKEN]); |
+ ParserTestCase.parseCompilationUnit("int x; ; int y;", [ParserErrorCode.UNEXPECTED_TOKEN]); |
} |
void test_useOfUnaryPlusOperator() { |
- ParserTestCase.parse5("parseUnaryExpression", "+x", [ParserErrorCode.USE_OF_UNARY_PLUS_OPERATOR]); |
+ SimpleIdentifier expression = ParserTestCase.parse5("parseUnaryExpression", "+x", [ParserErrorCode.MISSING_IDENTIFIER]); |
+ EngineTestCase.assertInstanceOf(SimpleIdentifier, expression); |
+ JUnitTestCase.assertTrue(expression.isSynthetic()); |
} |
+ void test_varAsTypeName_as() { |
+ ParserTestCase.parseExpression("x as var", [ParserErrorCode.VAR_AS_TYPE_NAME]); |
+ } |
void test_varClass() { |
- ParserTestCase.parse5("parseCompilationUnit", "var class C {}", [ParserErrorCode.VAR_CLASS]); |
+ ParserTestCase.parseCompilationUnit("var class C {}", [ParserErrorCode.VAR_CLASS]); |
} |
- void test_varConstructor() { |
- ParserTestCase.parse4("parseClassMember", <Object> ["C"], "var C() {}", [ParserErrorCode.CONSTRUCTOR_WITH_RETURN_TYPE]); |
- } |
void test_varReturnType() { |
ParserTestCase.parse4("parseClassMember", <Object> ["C"], "var m() {}", [ParserErrorCode.VAR_RETURN_TYPE]); |
} |
void test_varTypedef() { |
- ParserTestCase.parse5("parseCompilationUnit", "var typedef F();", [ParserErrorCode.VAR_TYPEDEF]); |
+ ParserTestCase.parseCompilationUnit("var typedef F();", [ParserErrorCode.VAR_TYPEDEF]); |
} |
void test_voidField_initializer() { |
ParserTestCase.parse4("parseClassMember", <Object> ["C"], "void x = 0;", [ParserErrorCode.VOID_VARIABLE]); |
@@ -7808,7 +7903,7 @@ |
ParserTestCase.parse5("parseNormalFormalParameter", "void a)", [ParserErrorCode.VOID_PARAMETER]); |
} |
void test_withBeforeExtends() { |
- ParserTestCase.parse5("parseCompilationUnit", "class A with B extends C {}", [ParserErrorCode.WITH_BEFORE_EXTENDS]); |
+ ParserTestCase.parseCompilationUnit("class A with B extends C {}", [ParserErrorCode.WITH_BEFORE_EXTENDS]); |
} |
void test_withWithoutExtends() { |
ParserTestCase.parse4("parseClassDeclaration", <Object> [emptyCommentAndMetadata(), null], "class A with B, C {}", [ParserErrorCode.WITH_WITHOUT_EXTENDS]); |
@@ -7907,6 +8002,14 @@ |
final __test = new ErrorParserTest(); |
runJUnitTest(__test, __test.test_constClass); |
}); |
+ _ut.test('test_constConstructorWithBody', () { |
+ final __test = new ErrorParserTest(); |
+ runJUnitTest(__test, __test.test_constConstructorWithBody); |
+ }); |
+ _ut.test('test_constFactory', () { |
+ final __test = new ErrorParserTest(); |
+ runJUnitTest(__test, __test.test_constFactory); |
+ }); |
_ut.test('test_constMethod', () { |
final __test = new ErrorParserTest(); |
runJUnitTest(__test, __test.test_constMethod); |
@@ -7915,6 +8018,14 @@ |
final __test = new ErrorParserTest(); |
runJUnitTest(__test, __test.test_constTypedef); |
}); |
+ _ut.test('test_constructorWithReturnType', () { |
+ final __test = new ErrorParserTest(); |
+ runJUnitTest(__test, __test.test_constructorWithReturnType); |
+ }); |
+ _ut.test('test_constructorWithReturnType_var', () { |
+ final __test = new ErrorParserTest(); |
+ runJUnitTest(__test, __test.test_constructorWithReturnType_var); |
+ }); |
_ut.test('test_continueOutsideOfLoop_continueInDoStatement', () { |
final __test = new ErrorParserTest(); |
runJUnitTest(__test, __test.test_continueOutsideOfLoop_continueInDoStatement); |
@@ -8019,6 +8130,10 @@ |
final __test = new ErrorParserTest(); |
runJUnitTest(__test, __test.test_expectedExecutable_topLevel_beforeType); |
}); |
+ _ut.test('test_expectedInterpolationIdentifier', () { |
+ final __test = new ErrorParserTest(); |
+ runJUnitTest(__test, __test.test_expectedInterpolationIdentifier); |
+ }); |
_ut.test('test_expectedStringLiteral', () { |
final __test = new ErrorParserTest(); |
runJUnitTest(__test, __test.test_expectedStringLiteral); |
@@ -8035,6 +8150,18 @@ |
final __test = new ErrorParserTest(); |
runJUnitTest(__test, __test.test_expectedToken_whileMissingInDoStatement); |
}); |
+ _ut.test('test_expectedTwoMapTypeArguments_one', () { |
+ final __test = new ErrorParserTest(); |
+ runJUnitTest(__test, __test.test_expectedTwoMapTypeArguments_one); |
+ }); |
+ _ut.test('test_expectedTwoMapTypeArguments_three', () { |
+ final __test = new ErrorParserTest(); |
+ runJUnitTest(__test, __test.test_expectedTwoMapTypeArguments_three); |
+ }); |
+ _ut.test('test_expectedTypeName_is', () { |
+ final __test = new ErrorParserTest(); |
+ runJUnitTest(__test, __test.test_expectedTypeName_is); |
+ }); |
_ut.test('test_exportDirectiveAfterPartDirective', () { |
final __test = new ErrorParserTest(); |
runJUnitTest(__test, __test.test_exportDirectiveAfterPartDirective); |
@@ -8111,6 +8238,10 @@ |
final __test = new ErrorParserTest(); |
runJUnitTest(__test, __test.test_factoryTopLevelDeclaration_typedef); |
}); |
+ _ut.test('test_factoryWithoutBody', () { |
+ final __test = new ErrorParserTest(); |
+ runJUnitTest(__test, __test.test_factoryWithoutBody); |
+ }); |
_ut.test('test_fieldInitializerOutsideConstructor', () { |
final __test = new ErrorParserTest(); |
runJUnitTest(__test, __test.test_fieldInitializerOutsideConstructor); |
@@ -8171,6 +8302,10 @@ |
final __test = new ErrorParserTest(); |
runJUnitTest(__test, __test.test_invalidHexEscape_tooFewDigits); |
}); |
+ _ut.test('test_invalidInterpolationIdentifier_startWithDigit', () { |
+ final __test = new ErrorParserTest(); |
+ runJUnitTest(__test, __test.test_invalidInterpolationIdentifier_startWithDigit); |
+ }); |
_ut.test('test_invalidOperator', () { |
final __test = new ErrorParserTest(); |
runJUnitTest(__test, __test.test_invalidOperator); |
@@ -8239,10 +8374,22 @@ |
final __test = new ErrorParserTest(); |
runJUnitTest(__test, __test.test_missingClassBody); |
}); |
- _ut.test('test_missingConstFinalVarOrType', () { |
+ _ut.test('test_missingConstFinalVarOrType_static', () { |
final __test = new ErrorParserTest(); |
- runJUnitTest(__test, __test.test_missingConstFinalVarOrType); |
+ runJUnitTest(__test, __test.test_missingConstFinalVarOrType_static); |
}); |
+ _ut.test('test_missingConstFinalVarOrType_topLevel', () { |
+ final __test = new ErrorParserTest(); |
+ runJUnitTest(__test, __test.test_missingConstFinalVarOrType_topLevel); |
+ }); |
+ _ut.test('test_missingExpressionInThrow_withCascade', () { |
+ final __test = new ErrorParserTest(); |
+ runJUnitTest(__test, __test.test_missingExpressionInThrow_withCascade); |
+ }); |
+ _ut.test('test_missingExpressionInThrow_withoutCascade', () { |
+ final __test = new ErrorParserTest(); |
+ runJUnitTest(__test, __test.test_missingExpressionInThrow_withoutCascade); |
+ }); |
_ut.test('test_missingFunctionBody_emptyNotAllowed', () { |
final __test = new ErrorParserTest(); |
runJUnitTest(__test, __test.test_missingFunctionBody_emptyNotAllowed); |
@@ -8275,6 +8422,10 @@ |
final __test = new ErrorParserTest(); |
runJUnitTest(__test, __test.test_missingFunctionParameters_topLevel_void_expression); |
}); |
+ _ut.test('test_missingIdentifier_afterOperator', () { |
+ final __test = new ErrorParserTest(); |
+ runJUnitTest(__test, __test.test_missingIdentifier_afterOperator); |
+ }); |
_ut.test('test_missingIdentifier_functionDeclaration_returnTypeWithoutName', () { |
final __test = new ErrorParserTest(); |
runJUnitTest(__test, __test.test_missingIdentifier_functionDeclaration_returnTypeWithoutName); |
@@ -8403,6 +8554,10 @@ |
final __test = new ErrorParserTest(); |
runJUnitTest(__test, __test.test_staticConstructor); |
}); |
+ _ut.test('test_staticGetterWithoutBody', () { |
+ final __test = new ErrorParserTest(); |
+ runJUnitTest(__test, __test.test_staticGetterWithoutBody); |
+ }); |
_ut.test('test_staticOperator_noReturnType', () { |
final __test = new ErrorParserTest(); |
runJUnitTest(__test, __test.test_staticOperator_noReturnType); |
@@ -8411,6 +8566,10 @@ |
final __test = new ErrorParserTest(); |
runJUnitTest(__test, __test.test_staticOperator_returnType); |
}); |
+ _ut.test('test_staticSetterWithoutBody', () { |
+ final __test = new ErrorParserTest(); |
+ runJUnitTest(__test, __test.test_staticSetterWithoutBody); |
+ }); |
_ut.test('test_staticTopLevelDeclaration_class', () { |
final __test = new ErrorParserTest(); |
runJUnitTest(__test, __test.test_staticTopLevelDeclaration_class); |
@@ -8471,14 +8630,14 @@ |
final __test = new ErrorParserTest(); |
runJUnitTest(__test, __test.test_useOfUnaryPlusOperator); |
}); |
+ _ut.test('test_varAsTypeName_as', () { |
+ final __test = new ErrorParserTest(); |
+ runJUnitTest(__test, __test.test_varAsTypeName_as); |
+ }); |
_ut.test('test_varClass', () { |
final __test = new ErrorParserTest(); |
runJUnitTest(__test, __test.test_varClass); |
}); |
- _ut.test('test_varConstructor', () { |
- final __test = new ErrorParserTest(); |
- runJUnitTest(__test, __test.test_varConstructor); |
- }); |
_ut.test('test_varReturnType', () { |
final __test = new ErrorParserTest(); |
runJUnitTest(__test, __test.test_varReturnType); |
@@ -8540,6 +8699,8 @@ |
'advance_0': new MethodTrampoline(0, (Parser target) => target.advance()), |
'appendScalarValue_5': new MethodTrampoline(5, (Parser target, arg0, arg1, arg2, arg3, arg4) => target.appendScalarValue(arg0, arg1, arg2, arg3, arg4)), |
'computeStringValue_1': new MethodTrampoline(1, (Parser target, arg0) => target.computeStringValue(arg0)), |
+ 'convertToFunctionDeclaration_1': new MethodTrampoline(1, (Parser target, arg0) => target.convertToFunctionDeclaration(arg0)), |
+ 'couldBeStartOfCompilationUnitMember_0': new MethodTrampoline(0, (Parser target) => target.couldBeStartOfCompilationUnitMember()), |
'createSyntheticIdentifier_0': new MethodTrampoline(0, (Parser target) => target.createSyntheticIdentifier()), |
'createSyntheticStringLiteral_0': new MethodTrampoline(0, (Parser target) => target.createSyntheticStringLiteral()), |
'createSyntheticToken_1': new MethodTrampoline(1, (Parser target, arg0) => target.createSyntheticToken(arg0)), |
@@ -8547,6 +8708,7 @@ |
'expect_1': new MethodTrampoline(1, (Parser target, arg0) => target.expect(arg0)), |
'findRange_2': new MethodTrampoline(2, (Parser target, arg0, arg1) => target.findRange(arg0, arg1)), |
'getCodeBlockRanges_1': new MethodTrampoline(1, (Parser target, arg0) => target.getCodeBlockRanges(arg0)), |
+ 'getEndToken_1': new MethodTrampoline(1, (Parser target, arg0) => target.getEndToken(arg0)), |
'hasReturnTypeInTypeAlias_0': new MethodTrampoline(0, (Parser target) => target.hasReturnTypeInTypeAlias()), |
'isFunctionDeclaration_0': new MethodTrampoline(0, (Parser target) => target.isFunctionDeclaration()), |
'isFunctionExpression_1': new MethodTrampoline(1, (Parser target, arg0) => target.isFunctionExpression(arg0)), |
@@ -8606,7 +8768,7 @@ |
'parseFormalParameter_1': new MethodTrampoline(1, (Parser target, arg0) => target.parseFormalParameter(arg0)), |
'parseFormalParameterList_0': new MethodTrampoline(0, (Parser target) => target.parseFormalParameterList()), |
'parseForStatement_0': new MethodTrampoline(0, (Parser target) => target.parseForStatement()), |
- 'parseFunctionBody_2': new MethodTrampoline(2, (Parser target, arg0, arg1) => target.parseFunctionBody(arg0, arg1)), |
+ 'parseFunctionBody_3': new MethodTrampoline(3, (Parser target, arg0, arg1, arg2) => target.parseFunctionBody(arg0, arg1, arg2)), |
'parseFunctionDeclaration_3': new MethodTrampoline(3, (Parser target, arg0, arg1, arg2) => target.parseFunctionDeclaration(arg0, arg1, arg2)), |
'parseFunctionDeclarationStatement_0': new MethodTrampoline(0, (Parser target) => target.parseFunctionDeclarationStatement()), |
'parseFunctionDeclarationStatement_2': new MethodTrampoline(2, (Parser target, arg0, arg1) => target.parseFunctionDeclarationStatement2(arg0, arg1)), |
@@ -8674,7 +8836,7 @@ |
'peek_0': new MethodTrampoline(0, (Parser target) => target.peek()), |
'peek_1': new MethodTrampoline(1, (Parser target, arg0) => target.peek2(arg0)), |
'reportError_3': new MethodTrampoline(3, (Parser target, arg0, arg1, arg2) => target.reportError(arg0, arg1, arg2)), |
- 'reportError_2': new MethodTrampoline(2, (Parser target, arg0, arg1) => target.reportError4(arg0, arg1)), |
+ 'reportError_2': new MethodTrampoline(2, (Parser target, arg0, arg1) => target.reportError7(arg0, arg1)), |
'skipFinalConstVarOrType_1': new MethodTrampoline(1, (Parser target, arg0) => target.skipFinalConstVarOrType(arg0)), |
'skipFormalParameterList_1': new MethodTrampoline(1, (Parser target, arg0) => target.skipFormalParameterList(arg0)), |
'skipPastMatchingToken_1': new MethodTrampoline(1, (Parser target, arg0) => target.skipPastMatchingToken(arg0)), |