OLD | NEW |
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 library engine.parser_test; | 5 library engine.parser_test; |
6 | 6 |
7 import 'package:analyzer/src/generated/ast.dart'; | 7 import 'package:analyzer/src/generated/ast.dart'; |
8 import 'package:analyzer/src/generated/element.dart'; | 8 import 'package:analyzer/src/generated/element.dart'; |
9 import 'package:analyzer/src/generated/error.dart'; | 9 import 'package:analyzer/src/generated/error.dart'; |
10 import 'package:analyzer/src/generated/incremental_scanner.dart'; | 10 import 'package:analyzer/src/generated/incremental_scanner.dart'; |
(...skipping 822 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
833 void test_breakOutsideOfLoop_functionExpression_inALoop() { | 833 void test_breakOutsideOfLoop_functionExpression_inALoop() { |
834 ParserTestCase.parseStatement( | 834 ParserTestCase.parseStatement( |
835 "for(; x;) {() {break;};}", | 835 "for(; x;) {() {break;};}", |
836 [ParserErrorCode.BREAK_OUTSIDE_OF_LOOP]); | 836 [ParserErrorCode.BREAK_OUTSIDE_OF_LOOP]); |
837 } | 837 } |
838 | 838 |
839 void test_breakOutsideOfLoop_functionExpression_withALoop() { | 839 void test_breakOutsideOfLoop_functionExpression_withALoop() { |
840 ParserTestCase.parseStatement("() {for (; x;) {break;}};"); | 840 ParserTestCase.parseStatement("() {for (; x;) {break;}};"); |
841 } | 841 } |
842 | 842 |
| 843 void test_classInClass_abstract() { |
| 844 ParserTestCase.parseCompilationUnit( |
| 845 "class C { abstract class B {} }", |
| 846 [ParserErrorCode.CLASS_IN_CLASS]); |
| 847 } |
| 848 |
| 849 void test_classInClass_nonAbstract() { |
| 850 ParserTestCase.parseCompilationUnit( |
| 851 "class C { class B {} }", |
| 852 [ParserErrorCode.CLASS_IN_CLASS]); |
| 853 } |
| 854 |
843 void test_classTypeAlias_abstractAfterEq() { | 855 void test_classTypeAlias_abstractAfterEq() { |
844 // This syntax has been removed from the language in favor of | 856 // This syntax has been removed from the language in favor of |
845 // "abstract class A = B with C;" (issue 18098). | 857 // "abstract class A = B with C;" (issue 18098). |
846 ParserTestCase.parse3( | 858 ParserTestCase.parse3( |
847 "parseCompilationUnitMember", | 859 "parseCompilationUnitMember", |
848 <Object>[emptyCommentAndMetadata()], | 860 <Object>[emptyCommentAndMetadata()], |
849 "class A = abstract B with C;", | 861 "class A = abstract B with C;", |
850 [ParserErrorCode.EXPECTED_TOKEN, ParserErrorCode.EXPECTED_TOKEN]); | 862 [ParserErrorCode.EXPECTED_TOKEN, ParserErrorCode.EXPECTED_TOKEN]); |
851 } | 863 } |
852 | 864 |
(...skipping 1480 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2333 } | 2345 } |
2334 | 2346 |
2335 void test_topLevelOperator_withVoid() { | 2347 void test_topLevelOperator_withVoid() { |
2336 ParserTestCase.parse3( | 2348 ParserTestCase.parse3( |
2337 "parseCompilationUnitMember", | 2349 "parseCompilationUnitMember", |
2338 <Object>[emptyCommentAndMetadata()], | 2350 <Object>[emptyCommentAndMetadata()], |
2339 "void operator +(bool x, bool y) => x | y;", | 2351 "void operator +(bool x, bool y) => x | y;", |
2340 [ParserErrorCode.TOP_LEVEL_OPERATOR]); | 2352 [ParserErrorCode.TOP_LEVEL_OPERATOR]); |
2341 } | 2353 } |
2342 | 2354 |
| 2355 void test_typedefInClass_withoutReturnType() { |
| 2356 ParserTestCase.parseCompilationUnit( |
| 2357 "class C { typedef F(x); }", |
| 2358 [ParserErrorCode.TYPEDEF_IN_CLASS]); |
| 2359 } |
| 2360 |
| 2361 void test_typedefInClass_withReturnType() { |
| 2362 ParserTestCase.parseCompilationUnit( |
| 2363 "class C { typedef int F(int x); }", |
| 2364 [ParserErrorCode.TYPEDEF_IN_CLASS]); |
| 2365 } |
| 2366 |
2343 void test_unexpectedTerminatorForParameterGroup_named() { | 2367 void test_unexpectedTerminatorForParameterGroup_named() { |
2344 ParserTestCase.parse4( | 2368 ParserTestCase.parse4( |
2345 "parseFormalParameterList", | 2369 "parseFormalParameterList", |
2346 "(a, b})", | 2370 "(a, b})", |
2347 [ParserErrorCode.UNEXPECTED_TERMINATOR_FOR_PARAMETER_GROUP]); | 2371 [ParserErrorCode.UNEXPECTED_TERMINATOR_FOR_PARAMETER_GROUP]); |
2348 } | 2372 } |
2349 | 2373 |
2350 void test_unexpectedTerminatorForParameterGroup_optional() { | 2374 void test_unexpectedTerminatorForParameterGroup_optional() { |
2351 ParserTestCase.parse4( | 2375 ParserTestCase.parse4( |
2352 "parseFormalParameterList", | 2376 "parseFormalParameterList", |
(...skipping 8597 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
10950 // Parse the source. | 10974 // Parse the source. |
10951 // | 10975 // |
10952 Parser parser = new Parser(null, listener); | 10976 Parser parser = new Parser(null, listener); |
10953 return invokeParserMethodImpl( | 10977 return invokeParserMethodImpl( |
10954 parser, | 10978 parser, |
10955 methodName, | 10979 methodName, |
10956 <Object>[tokenStream], | 10980 <Object>[tokenStream], |
10957 tokenStream) as Token; | 10981 tokenStream) as Token; |
10958 } | 10982 } |
10959 } | 10983 } |
OLD | NEW |