| Index: pkg/analyzer/test/generated/parser_test.dart
|
| diff --git a/pkg/analyzer/test/generated/parser_test.dart b/pkg/analyzer/test/generated/parser_test.dart
|
| index 38a08d5b105a40df819acf897c0e0f5d7cc45dfc..337212a273b91db155145a04213c0064d8cb744d 100644
|
| --- a/pkg/analyzer/test/generated/parser_test.dart
|
| +++ b/pkg/analyzer/test/generated/parser_test.dart
|
| @@ -1494,6 +1494,13 @@ class SimpleParserTest extends ParserTestCase {
|
| EngineTestCase.assertSize(0, unit.declarations);
|
| }
|
|
|
| + void test_parseCompilationUnit_skipFunctionBody_withInterpolation() {
|
| + ParserTestCase._parseFunctionBodies = false;
|
| + CompilationUnit unit = ParserTestCase.parse5("parseCompilationUnit", "f() { '\${n}'; }", []);
|
| + JUnitTestCase.assertNull(unit.scriptTag);
|
| + EngineTestCase.assertSize(1, unit.declarations);
|
| + }
|
| +
|
| void test_parseCompilationUnit_topLevelDeclaration() {
|
| CompilationUnit unit = ParserTestCase.parse5("parseCompilationUnit", "class A {}", []);
|
| JUnitTestCase.assertNull(unit.scriptTag);
|
| @@ -2511,6 +2518,24 @@ class SimpleParserTest extends ParserTestCase {
|
| JUnitTestCase.assertNotNull(functionBody.semicolon);
|
| }
|
|
|
| + void test_parseFunctionBody_skip_block() {
|
| + ParserTestCase._parseFunctionBodies = false;
|
| + FunctionBody functionBody = ParserTestCase.parse("parseFunctionBody", <Object> [false, null, false], "{}");
|
| + EngineTestCase.assertInstanceOf(EmptyFunctionBody, functionBody);
|
| + }
|
| +
|
| + void test_parseFunctionBody_skip_blocks() {
|
| + ParserTestCase._parseFunctionBodies = false;
|
| + FunctionBody functionBody = ParserTestCase.parse("parseFunctionBody", <Object> [false, null, false], "{ {} }");
|
| + EngineTestCase.assertInstanceOf(EmptyFunctionBody, functionBody);
|
| + }
|
| +
|
| + void test_parseFunctionBody_skip_expression() {
|
| + ParserTestCase._parseFunctionBodies = false;
|
| + FunctionBody functionBody = ParserTestCase.parse("parseFunctionBody", <Object> [false, null, false], "=> y;");
|
| + EngineTestCase.assertInstanceOf(EmptyFunctionBody, functionBody);
|
| + }
|
| +
|
| void test_parseFunctionDeclaration_function() {
|
| Comment comment = Comment.createDocumentationComment(new List<Token>(0));
|
| TypeName returnType = new TypeName.full(new SimpleIdentifier.full(null), null);
|
| @@ -5329,6 +5354,10 @@ class SimpleParserTest extends ParserTestCase {
|
| final __test = new SimpleParserTest();
|
| runJUnitTest(__test, __test.test_parseCompilationUnit_script);
|
| });
|
| + _ut.test('test_parseCompilationUnit_skipFunctionBody_withInterpolation', () {
|
| + final __test = new SimpleParserTest();
|
| + runJUnitTest(__test, __test.test_parseCompilationUnit_skipFunctionBody_withInterpolation);
|
| + });
|
| _ut.test('test_parseCompilationUnit_topLevelDeclaration', () {
|
| final __test = new SimpleParserTest();
|
| runJUnitTest(__test, __test.test_parseCompilationUnit_topLevelDeclaration);
|
| @@ -5689,6 +5718,18 @@ class SimpleParserTest extends ParserTestCase {
|
| final __test = new SimpleParserTest();
|
| runJUnitTest(__test, __test.test_parseFunctionBody_nativeFunctionBody);
|
| });
|
| + _ut.test('test_parseFunctionBody_skip_block', () {
|
| + final __test = new SimpleParserTest();
|
| + runJUnitTest(__test, __test.test_parseFunctionBody_skip_block);
|
| + });
|
| + _ut.test('test_parseFunctionBody_skip_blocks', () {
|
| + final __test = new SimpleParserTest();
|
| + runJUnitTest(__test, __test.test_parseFunctionBody_skip_blocks);
|
| + });
|
| + _ut.test('test_parseFunctionBody_skip_expression', () {
|
| + final __test = new SimpleParserTest();
|
| + runJUnitTest(__test, __test.test_parseFunctionBody_skip_expression);
|
| + });
|
| _ut.test('test_parseFunctionDeclarationStatement', () {
|
| final __test = new SimpleParserTest();
|
| runJUnitTest(__test, __test.test_parseFunctionDeclarationStatement);
|
| @@ -7203,6 +7244,11 @@ class ParserTestCase extends EngineTestCase {
|
| static List<Object> _EMPTY_ARGUMENTS = new List<Object>(0);
|
|
|
| /**
|
| + * A flag indicating whether parser is to parse function bodies.
|
| + */
|
| + static bool _parseFunctionBodies = true;
|
| +
|
| + /**
|
| * Invoke a parse method in [Parser]. The method is assumed to have the given number and
|
| * type of parameters and will be invoked with the given arguments.
|
| *
|
| @@ -7387,6 +7433,7 @@ class ParserTestCase extends EngineTestCase {
|
| Token tokenStream = scanner.tokenize();
|
| listener.setLineInfo(new TestSource(), scanner.lineStarts);
|
| Parser parser = new Parser(null, listener);
|
| + parser.parseFunctionBodies = _parseFunctionBodies;
|
| Object result = invokeParserMethodImpl(parser, methodName, objects, tokenStream);
|
| if (!listener.hasErrors()) {
|
| JUnitTestCase.assertNotNull(result);
|
| @@ -7432,6 +7479,11 @@ class ParserTestCase extends EngineTestCase {
|
| */
|
| CommentAndMetadata emptyCommentAndMetadata() => new CommentAndMetadata(null, new List<Annotation>());
|
|
|
| + void setUp() {
|
| + super.setUp();
|
| + _parseFunctionBodies = true;
|
| + }
|
| +
|
| static dartSuite() {
|
| _ut.group('ParserTestCase', () {
|
| });
|
| @@ -11433,6 +11485,7 @@ Map<String, MethodTrampoline> _methodTable_Parser = <String, MethodTrampoline> {
|
| 'isSwitchMember_0': new MethodTrampoline(0, (Parser target) => target.isSwitchMember()),
|
| 'isTypedIdentifier_1': new MethodTrampoline(1, (Parser target, arg0) => target.isTypedIdentifier(arg0)),
|
| 'lexicallyFirst_1': new MethodTrampoline(1, (Parser target, arg0) => target.lexicallyFirst(arg0)),
|
| + 'lockErrorListener_0': new MethodTrampoline(0, (Parser target) => target.lockErrorListener()),
|
| 'matches_1': new MethodTrampoline(1, (Parser target, arg0) => target.matches(arg0)),
|
| 'matches_2': new MethodTrampoline(2, (Parser target, arg0, arg1) => target.matches3(arg0, arg1)),
|
| 'matchesAny_2': new MethodTrampoline(2, (Parser target, arg0, arg1) => target.matchesAny(arg0, arg1)),
|
| @@ -11523,8 +11576,10 @@ Map<String, MethodTrampoline> _methodTable_Parser = <String, MethodTrampoline> {
|
| 'parseWhileStatement_0': new MethodTrampoline(0, (Parser target) => target.parseWhileStatement()),
|
| '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.reportError9(arg0, arg1)),
|
| + 'reportError_1': new MethodTrampoline(1, (Parser target, arg0) => target.reportError(arg0)),
|
| + 'reportError_3': new MethodTrampoline(3, (Parser target, arg0, arg1, arg2) => target.reportError9(arg0, arg1, arg2)),
|
| + 'reportError_2': new MethodTrampoline(2, (Parser target, arg0, arg1) => target.reportError10(arg0, arg1)),
|
| + 'skipBlock_0': new MethodTrampoline(0, (Parser target) => target.skipBlock()),
|
| '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)),
|
| @@ -11537,6 +11592,7 @@ Map<String, MethodTrampoline> _methodTable_Parser = <String, MethodTrampoline> {
|
| 'skipTypeName_1': new MethodTrampoline(1, (Parser target, arg0) => target.skipTypeName(arg0)),
|
| 'skipTypeParameterList_1': new MethodTrampoline(1, (Parser target, arg0) => target.skipTypeParameterList(arg0)),
|
| 'translateCharacter_3': new MethodTrampoline(3, (Parser target, arg0, arg1, arg2) => target.translateCharacter(arg0, arg1, arg2)),
|
| + 'unlockErrorListener_0': new MethodTrampoline(0, (Parser target) => target.unlockErrorListener()),
|
| 'validateFormalParameterList_1': new MethodTrampoline(1, (Parser target, arg0) => target.validateFormalParameterList(arg0)),
|
| 'validateModifiersForClass_1': new MethodTrampoline(1, (Parser target, arg0) => target.validateModifiersForClass(arg0)),
|
| 'validateModifiersForConstructor_1': new MethodTrampoline(1, (Parser target, arg0) => target.validateModifiersForConstructor(arg0)),
|
|
|