Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(764)

Side by Side Diff: pkg/analyzer/test/generated/parser_test.dart

Issue 2488043002: Enable generic method support by default (Closed)
Patch Set: clean up Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 analyzer.test.generated.parser_test; 5 library analyzer.test.generated.parser_test;
6 6
7 import 'package:analyzer/dart/ast/ast.dart'; 7 import 'package:analyzer/dart/ast/ast.dart';
8 import 'package:analyzer/dart/ast/token.dart'; 8 import 'package:analyzer/dart/ast/token.dart';
9 import 'package:analyzer/dart/ast/visitor.dart'; 9 import 'package:analyzer/dart/ast/visitor.dart';
10 import 'package:analyzer/error/error.dart'; 10 import 'package:analyzer/error/error.dart';
(...skipping 183 matching lines...) Expand 10 before | Expand all | Expand 10 after
194 expect(argumentList4.arguments, hasLength(1)); 194 expect(argumentList4.arguments, hasLength(1));
195 } 195 }
196 196
197 void test_assignableExpression_arguments_normal_chain_typeArgumentComments() { 197 void test_assignableExpression_arguments_normal_chain_typeArgumentComments() {
198 enableGenericMethodComments = true; 198 enableGenericMethodComments = true;
199 _validate_assignableExpression_arguments_normal_chain_typeArguments( 199 _validate_assignableExpression_arguments_normal_chain_typeArguments(
200 "a/*<E>*/(b)/*<F>*/(c).d/*<G>*/(e).f"); 200 "a/*<E>*/(b)/*<F>*/(c).d/*<G>*/(e).f");
201 } 201 }
202 202
203 void test_assignableExpression_arguments_normal_chain_typeArguments() { 203 void test_assignableExpression_arguments_normal_chain_typeArguments() {
204 enableGenericMethods = true;
205 _validate_assignableExpression_arguments_normal_chain_typeArguments( 204 _validate_assignableExpression_arguments_normal_chain_typeArguments(
206 "a<E>(b)<F>(c).d<G>(e).f"); 205 "a<E>(b)<F>(c).d<G>(e).f");
207 } 206 }
208 207
209 void test_assignmentExpression_compound() { 208 void test_assignmentExpression_compound() {
210 AssignmentExpression expression = parseExpression("x = y = 0"); 209 AssignmentExpression expression = parseExpression("x = y = 0");
211 EngineTestCase.assertInstanceOf((obj) => obj is SimpleIdentifier, 210 EngineTestCase.assertInstanceOf((obj) => obj is SimpleIdentifier,
212 SimpleIdentifier, expression.leftHandSide); 211 SimpleIdentifier, expression.leftHandSide);
213 EngineTestCase.assertInstanceOf((obj) => obj is AssignmentExpression, 212 EngineTestCase.assertInstanceOf((obj) => obj is AssignmentExpression,
214 AssignmentExpression, expression.rightHandSide); 213 AssignmentExpression, expression.rightHandSide);
(...skipping 310 matching lines...) Expand 10 before | Expand all | Expand 10 after
525 BinaryExpression, expression.rightOperand); 524 BinaryExpression, expression.rightOperand);
526 } 525 }
527 526
528 void test_shiftExpression_super() { 527 void test_shiftExpression_super() {
529 BinaryExpression expression = parseExpression("super >> 4 << 3"); 528 BinaryExpression expression = parseExpression("super >> 4 << 3");
530 EngineTestCase.assertInstanceOf((obj) => obj is BinaryExpression, 529 EngineTestCase.assertInstanceOf((obj) => obj is BinaryExpression,
531 BinaryExpression, expression.leftOperand); 530 BinaryExpression, expression.leftOperand);
532 } 531 }
533 532
534 void test_topLevelFunction_nestedGenericFunction() { 533 void test_topLevelFunction_nestedGenericFunction() {
535 enableGenericMethods = true;
536 parseCompilationUnitWithOptions(''' 534 parseCompilationUnitWithOptions('''
537 void f() { 535 void f() {
538 void g<T>() { 536 void g<T>() {
539 } 537 }
540 } 538 }
541 '''); 539 ''');
542 } 540 }
543 541
544 void _validate_assignableExpression_arguments_normal_chain_typeArguments( 542 void _validate_assignableExpression_arguments_normal_chain_typeArguments(
545 String code) { 543 String code) {
(...skipping 1130 matching lines...) Expand 10 before | Expand all | Expand 10 after
1676 expect(member, new isInstanceOf<MethodDeclaration>()); 1674 expect(member, new isInstanceOf<MethodDeclaration>());
1677 MethodDeclaration method = member; 1675 MethodDeclaration method = member;
1678 expect(method.typeParameters.toString(), '<E, hello>', 1676 expect(method.typeParameters.toString(), '<E, hello>',
1679 reason: 'parser recovers what it can'); 1677 reason: 'parser recovers what it can');
1680 } 1678 }
1681 1679
1682 void test_method_invalidTypeParameterExtends() { 1680 void test_method_invalidTypeParameterExtends() {
1683 // Regression test for https://github.com/dart-lang/sdk/issues/25739. 1681 // Regression test for https://github.com/dart-lang/sdk/issues/25739.
1684 1682
1685 // TODO(jmesserly): ideally we'd be better at parser recovery here. 1683 // TODO(jmesserly): ideally we'd be better at parser recovery here.
1686 enableGenericMethods = true;
1687 createParser('f<E>(E extends num p);'); 1684 createParser('f<E>(E extends num p);');
1688 ClassMember member = parser.parseClassMember('C'); 1685 ClassMember member = parser.parseClassMember('C');
1689 expectNotNullIfNoErrors(member); 1686 expectNotNullIfNoErrors(member);
1690 listener.assertErrorsWithCodes([ 1687 listener.assertErrorsWithCodes([
1691 ParserErrorCode.MISSING_IDENTIFIER, // `extends` is a keyword 1688 ParserErrorCode.MISSING_IDENTIFIER, // `extends` is a keyword
1692 ParserErrorCode.EXPECTED_TOKEN, // comma 1689 ParserErrorCode.EXPECTED_TOKEN, // comma
1693 ParserErrorCode.EXPECTED_TOKEN, // close paren 1690 ParserErrorCode.EXPECTED_TOKEN, // close paren
1694 ParserErrorCode.MISSING_FUNCTION_BODY 1691 ParserErrorCode.MISSING_FUNCTION_BODY
1695 ]); 1692 ]);
1696 expect(member, new isInstanceOf<MethodDeclaration>()); 1693 expect(member, new isInstanceOf<MethodDeclaration>());
(...skipping 25 matching lines...) Expand all
1722 MethodDeclaration method = member; 1719 MethodDeclaration method = member;
1723 expect(method.parameters.toString(), '(E extends, extends)', 1720 expect(method.parameters.toString(), '(E extends, extends)',
1724 reason: 'parser recovers what it can'); 1721 reason: 'parser recovers what it can');
1725 } 1722 }
1726 1723
1727 void test_method_invalidTypeParameters() { 1724 void test_method_invalidTypeParameters() {
1728 // TODO(jmesserly): ideally we'd be better at parser recovery here. 1725 // TODO(jmesserly): ideally we'd be better at parser recovery here.
1729 // It doesn't try to advance past the invalid token `!` to find the 1726 // It doesn't try to advance past the invalid token `!` to find the
1730 // valid `>`. If it did we'd get less cascading errors, at least for this 1727 // valid `>`. If it did we'd get less cascading errors, at least for this
1731 // particular example. 1728 // particular example.
1732 enableGenericMethods = true;
1733 createParser('void m<E, hello!>() {}'); 1729 createParser('void m<E, hello!>() {}');
1734 ClassMember member = parser.parseClassMember('C'); 1730 ClassMember member = parser.parseClassMember('C');
1735 expectNotNullIfNoErrors(member); 1731 expectNotNullIfNoErrors(member);
1736 listener.assertErrorsWithCodes([ 1732 listener.assertErrorsWithCodes([
1737 ParserErrorCode.EXPECTED_TOKEN /*>*/, 1733 ParserErrorCode.EXPECTED_TOKEN /*>*/,
1738 ParserErrorCode.MISSING_IDENTIFIER, 1734 ParserErrorCode.MISSING_IDENTIFIER,
1739 ParserErrorCode.EXPECTED_TOKEN /*(*/, 1735 ParserErrorCode.EXPECTED_TOKEN /*(*/,
1740 ParserErrorCode.EXPECTED_TOKEN /*)*/, 1736 ParserErrorCode.EXPECTED_TOKEN /*)*/,
1741 ParserErrorCode.MISSING_FUNCTION_BODY 1737 ParserErrorCode.MISSING_FUNCTION_BODY
1742 ]); 1738 ]);
(...skipping 519 matching lines...) Expand 10 before | Expand all | Expand 10 after
2262 MethodInvocation methodInvocation = parser.parseCascadeSection(); 2258 MethodInvocation methodInvocation = parser.parseCascadeSection();
2263 expectNotNullIfNoErrors(methodInvocation); 2259 expectNotNullIfNoErrors(methodInvocation);
2264 listener.assertErrorsWithCodes([ParserErrorCode.MISSING_IDENTIFIER]); 2260 listener.assertErrorsWithCodes([ParserErrorCode.MISSING_IDENTIFIER]);
2265 expect(methodInvocation.target, isNull); 2261 expect(methodInvocation.target, isNull);
2266 expect(methodInvocation.methodName.name, ""); 2262 expect(methodInvocation.methodName.name, "");
2267 expect(methodInvocation.typeArguments, isNull); 2263 expect(methodInvocation.typeArguments, isNull);
2268 expect(methodInvocation.argumentList.arguments, hasLength(0)); 2264 expect(methodInvocation.argumentList.arguments, hasLength(0));
2269 } 2265 }
2270 2266
2271 void test_parseCascadeSection_missingIdentifier_typeArguments() { 2267 void test_parseCascadeSection_missingIdentifier_typeArguments() {
2272 enableGenericMethods = true;
2273 createParser('..<E>()'); 2268 createParser('..<E>()');
2274 MethodInvocation methodInvocation = parser.parseCascadeSection(); 2269 MethodInvocation methodInvocation = parser.parseCascadeSection();
2275 expectNotNullIfNoErrors(methodInvocation); 2270 expectNotNullIfNoErrors(methodInvocation);
2276 listener.assertErrorsWithCodes([ParserErrorCode.MISSING_IDENTIFIER]); 2271 listener.assertErrorsWithCodes([ParserErrorCode.MISSING_IDENTIFIER]);
2277 expect(methodInvocation.target, isNull); 2272 expect(methodInvocation.target, isNull);
2278 expect(methodInvocation.methodName.name, ""); 2273 expect(methodInvocation.methodName.name, "");
2279 expect(methodInvocation.typeArguments, isNotNull); 2274 expect(methodInvocation.typeArguments, isNotNull);
2280 expect(methodInvocation.argumentList.arguments, hasLength(0)); 2275 expect(methodInvocation.argumentList.arguments, hasLength(0));
2281 } 2276 }
2282 2277
(...skipping 551 matching lines...) Expand 10 before | Expand all | Expand 10 after
2834 * list of a constructor. 2829 * list of a constructor.
2835 */ 2830 */
2836 bool enableAssertInitializer = false; 2831 bool enableAssertInitializer = false;
2837 2832
2838 /** 2833 /**
2839 * A flag indicating whether parser is to parse async. 2834 * A flag indicating whether parser is to parse async.
2840 */ 2835 */
2841 bool parseAsync = true; 2836 bool parseAsync = true;
2842 2837
2843 /** 2838 /**
2844 * A flag indicating whether generic method support should be enabled for a
2845 * specific test.
2846 */
2847 bool enableGenericMethods = false;
2848
2849 /**
2850 * Whether generic method comments should be enabled for the test. 2839 * Whether generic method comments should be enabled for the test.
2851 */ 2840 */
2852 bool enableGenericMethodComments = false; 2841 bool enableGenericMethodComments = false;
2853 2842
2854 /** 2843 /**
2855 * A flag indicating whether lazy assignment operators should be enabled for 2844 * A flag indicating whether lazy assignment operators should be enabled for
2856 * the test. 2845 * the test.
2857 */ 2846 */
2858 bool enableLazyAssignmentOperators = false; 2847 bool enableLazyAssignmentOperators = false;
2859 2848
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
2903 Scanner scanner = new Scanner(source, reader, listener); 2892 Scanner scanner = new Scanner(source, reader, listener);
2904 scanner.scanGenericMethodComments = enableGenericMethodComments; 2893 scanner.scanGenericMethodComments = enableGenericMethodComments;
2905 scanner.scanLazyAssignmentOperators = enableLazyAssignmentOperators; 2894 scanner.scanLazyAssignmentOperators = enableLazyAssignmentOperators;
2906 Token tokenStream = scanner.tokenize(); 2895 Token tokenStream = scanner.tokenize();
2907 listener.setLineInfo(source, scanner.lineStarts); 2896 listener.setLineInfo(source, scanner.lineStarts);
2908 // 2897 //
2909 // Create and initialize the parser. 2898 // Create and initialize the parser.
2910 // 2899 //
2911 parser = new Parser(source, listener); 2900 parser = new Parser(source, listener);
2912 parser.enableAssertInitializer = enableAssertInitializer; 2901 parser.enableAssertInitializer = enableAssertInitializer;
2913 parser.parseGenericMethods = enableGenericMethods;
2914 parser.parseGenericMethodComments = enableGenericMethodComments; 2902 parser.parseGenericMethodComments = enableGenericMethodComments;
2915 parser.parseFunctionBodies = parseFunctionBodies; 2903 parser.parseFunctionBodies = parseFunctionBodies;
2916 parser.enableNnbd = enableNnbd; 2904 parser.enableNnbd = enableNnbd;
2917 parser.currentToken = tokenStream; 2905 parser.currentToken = tokenStream;
2918 } 2906 }
2919 2907
2920 /** 2908 /**
2921 * Return an empty CommentAndMetadata object that can be used for testing. 2909 * Return an empty CommentAndMetadata object that can be used for testing.
2922 * 2910 *
2923 * @return an empty CommentAndMetadata object that can be used for testing 2911 * @return an empty CommentAndMetadata object that can be used for testing
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
2989 CompilationUnit unit = parser.parseCompilationUnit(token); 2977 CompilationUnit unit = parser.parseCompilationUnit(token);
2990 expect(unit, isNotNull); 2978 expect(unit, isNotNull);
2991 listener.assertErrorsWithCodes(errorCodes); 2979 listener.assertErrorsWithCodes(errorCodes);
2992 return unit; 2980 return unit;
2993 } 2981 }
2994 2982
2995 /** 2983 /**
2996 * Parse the given [code] as a compilation unit. 2984 * Parse the given [code] as a compilation unit.
2997 */ 2985 */
2998 static CompilationUnit parseCompilationUnit2(String code, 2986 static CompilationUnit parseCompilationUnit2(String code,
2999 {AnalysisErrorListener listener, bool parseGenericMethods: false}) { 2987 {AnalysisErrorListener listener}) {
3000 listener ??= AnalysisErrorListener.NULL_LISTENER; 2988 listener ??= AnalysisErrorListener.NULL_LISTENER;
3001 Scanner scanner = new Scanner(null, new CharSequenceReader(code), listener); 2989 Scanner scanner = new Scanner(null, new CharSequenceReader(code), listener);
3002 Token token = scanner.tokenize(); 2990 Token token = scanner.tokenize();
3003 Parser parser = new Parser(null, listener); 2991 Parser parser = new Parser(null, listener);
3004 parser.parseGenericMethods = parseGenericMethods;
3005 CompilationUnit unit = parser.parseCompilationUnit(token); 2992 CompilationUnit unit = parser.parseCompilationUnit(token);
3006 unit.lineInfo = new LineInfo(scanner.lineStarts); 2993 unit.lineInfo = new LineInfo(scanner.lineStarts);
3007 return unit; 2994 return unit;
3008 } 2995 }
3009 2996
3010 /** 2997 /**
3011 * Parse the given [source] as a statement. The [errorCodes] are the error 2998 * Parse the given [source] as a statement. The [errorCodes] are the error
3012 * codes of the errors that are expected to be found. If 2999 * codes of the errors that are expected to be found. If
3013 * [enableLazyAssignmentOperators] is `true`, then lazy assignment operators 3000 * [enableLazyAssignmentOperators] is `true`, then lazy assignment operators
3014 * should be enabled. 3001 * should be enabled.
(...skipping 1405 matching lines...) Expand 10 before | Expand all | Expand 10 after
4420 4407
4421 void test_isFunctionDeclaration_nameButNoReturn_block() { 4408 void test_isFunctionDeclaration_nameButNoReturn_block() {
4422 expect(_isFunctionDeclaration("f() {}"), isTrue); 4409 expect(_isFunctionDeclaration("f() {}"), isTrue);
4423 } 4410 }
4424 4411
4425 void test_isFunctionDeclaration_nameButNoReturn_expression() { 4412 void test_isFunctionDeclaration_nameButNoReturn_expression() {
4426 expect(_isFunctionDeclaration("f() => e"), isTrue); 4413 expect(_isFunctionDeclaration("f() => e"), isTrue);
4427 } 4414 }
4428 4415
4429 void test_isFunctionDeclaration_nameButNoReturn_typeParameters_block() { 4416 void test_isFunctionDeclaration_nameButNoReturn_typeParameters_block() {
4430 enableGenericMethods = true;
4431 expect(_isFunctionDeclaration("f<E>() {}"), isTrue); 4417 expect(_isFunctionDeclaration("f<E>() {}"), isTrue);
4432 } 4418 }
4433 4419
4434 void test_isFunctionDeclaration_nameButNoReturn_typeParameters_expression() { 4420 void test_isFunctionDeclaration_nameButNoReturn_typeParameters_expression() {
4435 enableGenericMethods = true;
4436 expect(_isFunctionDeclaration("f<E>() => e"), isTrue); 4421 expect(_isFunctionDeclaration("f<E>() => e"), isTrue);
4437 } 4422 }
4438 4423
4439 void test_isFunctionDeclaration_normalReturn_block() { 4424 void test_isFunctionDeclaration_normalReturn_block() {
4440 expect(_isFunctionDeclaration("C f() {}"), isTrue); 4425 expect(_isFunctionDeclaration("C f() {}"), isTrue);
4441 } 4426 }
4442 4427
4443 void test_isFunctionDeclaration_normalReturn_expression() { 4428 void test_isFunctionDeclaration_normalReturn_expression() {
4444 expect(_isFunctionDeclaration("C f() => e"), isTrue); 4429 expect(_isFunctionDeclaration("C f() => e"), isTrue);
4445 } 4430 }
4446 4431
4447 void test_isFunctionDeclaration_normalReturn_typeParameters_block() { 4432 void test_isFunctionDeclaration_normalReturn_typeParameters_block() {
4448 enableGenericMethods = true;
4449 expect(_isFunctionDeclaration("C f<E>() {}"), isTrue); 4433 expect(_isFunctionDeclaration("C f<E>() {}"), isTrue);
4450 } 4434 }
4451 4435
4452 void test_isFunctionDeclaration_normalReturn_typeParameters_expression() { 4436 void test_isFunctionDeclaration_normalReturn_typeParameters_expression() {
4453 enableGenericMethods = true;
4454 expect(_isFunctionDeclaration("C f<E>() => e"), isTrue); 4437 expect(_isFunctionDeclaration("C f<E>() => e"), isTrue);
4455 } 4438 }
4456 4439
4457 void test_isFunctionDeclaration_voidReturn_block() { 4440 void test_isFunctionDeclaration_voidReturn_block() {
4458 expect(_isFunctionDeclaration("void f() {}"), isTrue); 4441 expect(_isFunctionDeclaration("void f() {}"), isTrue);
4459 } 4442 }
4460 4443
4461 void test_isFunctionDeclaration_voidReturn_expression() { 4444 void test_isFunctionDeclaration_voidReturn_expression() {
4462 expect(_isFunctionDeclaration("void f() => e"), isTrue); 4445 expect(_isFunctionDeclaration("void f() => e"), isTrue);
4463 } 4446 }
4464 4447
4465 void test_isFunctionDeclaration_voidReturn_typeParameters_block() { 4448 void test_isFunctionDeclaration_voidReturn_typeParameters_block() {
4466 enableGenericMethods = true;
4467 expect(_isFunctionDeclaration("void f<E>() {}"), isTrue); 4449 expect(_isFunctionDeclaration("void f<E>() {}"), isTrue);
4468 } 4450 }
4469 4451
4470 void test_isFunctionDeclaration_voidReturn_typeParameters_expression() { 4452 void test_isFunctionDeclaration_voidReturn_typeParameters_expression() {
4471 enableGenericMethods = true;
4472 expect(_isFunctionDeclaration("void f<E>() => e"), isTrue); 4453 expect(_isFunctionDeclaration("void f<E>() => e"), isTrue);
4473 } 4454 }
4474 4455
4475 void test_isFunctionExpression_false_noBody() { 4456 void test_isFunctionExpression_false_noBody() {
4476 expect(_isFunctionExpression("f();"), isFalse); 4457 expect(_isFunctionExpression("f();"), isFalse);
4477 } 4458 }
4478 4459
4479 void test_isFunctionExpression_false_notParameters() { 4460 void test_isFunctionExpression_false_notParameters() {
4480 expect(_isFunctionExpression("(a + b) {"), isFalse); 4461 expect(_isFunctionExpression("(a + b) {"), isFalse);
4481 } 4462 }
4482 4463
4483 void test_isFunctionExpression_noParameters_block() { 4464 void test_isFunctionExpression_noParameters_block() {
4484 expect(_isFunctionExpression("() {}"), isTrue); 4465 expect(_isFunctionExpression("() {}"), isTrue);
4485 } 4466 }
4486 4467
4487 void test_isFunctionExpression_noParameters_expression() { 4468 void test_isFunctionExpression_noParameters_expression() {
4488 expect(_isFunctionExpression("() => e"), isTrue); 4469 expect(_isFunctionExpression("() => e"), isTrue);
4489 } 4470 }
4490 4471
4491 void test_isFunctionExpression_noParameters_typeParameters_block() { 4472 void test_isFunctionExpression_noParameters_typeParameters_block() {
4492 enableGenericMethods = true;
4493 expect(_isFunctionExpression("<E>() {}"), isTrue); 4473 expect(_isFunctionExpression("<E>() {}"), isTrue);
4494 } 4474 }
4495 4475
4496 void test_isFunctionExpression_noParameters_typeParameters_expression() { 4476 void test_isFunctionExpression_noParameters_typeParameters_expression() {
4497 enableGenericMethods = true;
4498 expect(_isFunctionExpression("<E>() => e"), isTrue); 4477 expect(_isFunctionExpression("<E>() => e"), isTrue);
4499 } 4478 }
4500 4479
4501 void test_isFunctionExpression_parameter_final() { 4480 void test_isFunctionExpression_parameter_final() {
4502 expect(_isFunctionExpression("(final a) {}"), isTrue); 4481 expect(_isFunctionExpression("(final a) {}"), isTrue);
4503 expect(_isFunctionExpression("(final a, b) {}"), isTrue); 4482 expect(_isFunctionExpression("(final a, b) {}"), isTrue);
4504 expect(_isFunctionExpression("(final a, final b) {}"), isTrue); 4483 expect(_isFunctionExpression("(final a, final b) {}"), isTrue);
4505 } 4484 }
4506 4485
4507 void test_isFunctionExpression_parameter_final_typed() { 4486 void test_isFunctionExpression_parameter_final_typed() {
(...skipping 358 matching lines...) Expand 10 before | Expand all | Expand 10 after
4866 expect(invocation.function, isNotNull); 4845 expect(invocation.function, isNotNull);
4867 expect(invocation.typeArguments, isNotNull); 4846 expect(invocation.typeArguments, isNotNull);
4868 ArgumentList argumentList = invocation.argumentList; 4847 ArgumentList argumentList = invocation.argumentList;
4869 expect(argumentList, isNotNull); 4848 expect(argumentList, isNotNull);
4870 expect(argumentList.arguments, hasLength(1)); 4849 expect(argumentList.arguments, hasLength(1));
4871 expect(propertyAccess.operator, isNotNull); 4850 expect(propertyAccess.operator, isNotNull);
4872 expect(propertyAccess.propertyName, isNotNull); 4851 expect(propertyAccess.propertyName, isNotNull);
4873 } 4852 }
4874 4853
4875 void test_parseAssignableExpression_expression_args_dot_typeParameters() { 4854 void test_parseAssignableExpression_expression_args_dot_typeParameters() {
4876 enableGenericMethods = true;
4877 createParser('(x)<F>(y).z'); 4855 createParser('(x)<F>(y).z');
4878 Expression expression = parser.parseAssignableExpression(false); 4856 Expression expression = parser.parseAssignableExpression(false);
4879 expectNotNullIfNoErrors(expression); 4857 expectNotNullIfNoErrors(expression);
4880 listener.assertNoErrors(); 4858 listener.assertNoErrors();
4881 expect(expression, new isInstanceOf<PropertyAccess>()); 4859 expect(expression, new isInstanceOf<PropertyAccess>());
4882 PropertyAccess propertyAccess = expression; 4860 PropertyAccess propertyAccess = expression;
4883 FunctionExpressionInvocation invocation = 4861 FunctionExpressionInvocation invocation =
4884 propertyAccess.target as FunctionExpressionInvocation; 4862 propertyAccess.target as FunctionExpressionInvocation;
4885 expect(invocation.function, isNotNull); 4863 expect(invocation.function, isNotNull);
4886 expect(invocation.typeArguments, isNotNull); 4864 expect(invocation.typeArguments, isNotNull);
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
4968 expect(invocation.methodName.name, "x"); 4946 expect(invocation.methodName.name, "x");
4969 expect(invocation.typeArguments, isNotNull); 4947 expect(invocation.typeArguments, isNotNull);
4970 ArgumentList argumentList = invocation.argumentList; 4948 ArgumentList argumentList = invocation.argumentList;
4971 expect(argumentList, isNotNull); 4949 expect(argumentList, isNotNull);
4972 expect(argumentList.arguments, hasLength(1)); 4950 expect(argumentList.arguments, hasLength(1));
4973 expect(propertyAccess.operator, isNotNull); 4951 expect(propertyAccess.operator, isNotNull);
4974 expect(propertyAccess.propertyName, isNotNull); 4952 expect(propertyAccess.propertyName, isNotNull);
4975 } 4953 }
4976 4954
4977 void test_parseAssignableExpression_identifier_args_dot_typeParameters() { 4955 void test_parseAssignableExpression_identifier_args_dot_typeParameters() {
4978 enableGenericMethods = true;
4979 createParser('x<E>(y).z'); 4956 createParser('x<E>(y).z');
4980 Expression expression = parser.parseAssignableExpression(false); 4957 Expression expression = parser.parseAssignableExpression(false);
4981 expectNotNullIfNoErrors(expression); 4958 expectNotNullIfNoErrors(expression);
4982 listener.assertNoErrors(); 4959 listener.assertNoErrors();
4983 expect(expression, new isInstanceOf<PropertyAccess>()); 4960 expect(expression, new isInstanceOf<PropertyAccess>());
4984 PropertyAccess propertyAccess = expression; 4961 PropertyAccess propertyAccess = expression;
4985 MethodInvocation invocation = propertyAccess.target as MethodInvocation; 4962 MethodInvocation invocation = propertyAccess.target as MethodInvocation;
4986 expect(invocation.methodName.name, "x"); 4963 expect(invocation.methodName.name, "x");
4987 expect(invocation.typeArguments, isNotNull); 4964 expect(invocation.typeArguments, isNotNull);
4988 ArgumentList argumentList = invocation.argumentList; 4965 ArgumentList argumentList = invocation.argumentList;
(...skipping 332 matching lines...) Expand 10 before | Expand all | Expand 10 after
5321 expectNotNullIfNoErrors(expression); 5298 expectNotNullIfNoErrors(expression);
5322 listener.assertNoErrors(); 5299 listener.assertNoErrors();
5323 expect(expression, new isInstanceOf<FunctionExpressionInvocation>()); 5300 expect(expression, new isInstanceOf<FunctionExpressionInvocation>());
5324 FunctionExpressionInvocation section = expression; 5301 FunctionExpressionInvocation section = expression;
5325 expect(section.function, new isInstanceOf<IndexExpression>()); 5302 expect(section.function, new isInstanceOf<IndexExpression>());
5326 expect(section.typeArguments, isNotNull); 5303 expect(section.typeArguments, isNotNull);
5327 expect(section.argumentList, isNotNull); 5304 expect(section.argumentList, isNotNull);
5328 } 5305 }
5329 5306
5330 void test_parseCascadeSection_ia_typeArguments() { 5307 void test_parseCascadeSection_ia_typeArguments() {
5331 enableGenericMethods = true;
5332 createParser('..[i]<E>(b)'); 5308 createParser('..[i]<E>(b)');
5333 Expression expression = parser.parseCascadeSection(); 5309 Expression expression = parser.parseCascadeSection();
5334 expectNotNullIfNoErrors(expression); 5310 expectNotNullIfNoErrors(expression);
5335 listener.assertNoErrors(); 5311 listener.assertNoErrors();
5336 expect(expression, new isInstanceOf<FunctionExpressionInvocation>()); 5312 expect(expression, new isInstanceOf<FunctionExpressionInvocation>());
5337 FunctionExpressionInvocation section = expression; 5313 FunctionExpressionInvocation section = expression;
5338 expect(section.function, new isInstanceOf<IndexExpression>()); 5314 expect(section.function, new isInstanceOf<IndexExpression>());
5339 expect(section.typeArguments, isNotNull); 5315 expect(section.typeArguments, isNotNull);
5340 expect(section.argumentList, isNotNull); 5316 expect(section.argumentList, isNotNull);
5341 } 5317 }
(...skipping 23 matching lines...) Expand all
5365 MethodInvocation section = expression; 5341 MethodInvocation section = expression;
5366 expect(section.target, new isInstanceOf<MethodInvocation>()); 5342 expect(section.target, new isInstanceOf<MethodInvocation>());
5367 expect(section.operator, isNotNull); 5343 expect(section.operator, isNotNull);
5368 expect(section.methodName, isNotNull); 5344 expect(section.methodName, isNotNull);
5369 expect(section.typeArguments, isNotNull); 5345 expect(section.typeArguments, isNotNull);
5370 expect(section.argumentList, isNotNull); 5346 expect(section.argumentList, isNotNull);
5371 expect(section.argumentList.arguments, hasLength(1)); 5347 expect(section.argumentList.arguments, hasLength(1));
5372 } 5348 }
5373 5349
5374 void test_parseCascadeSection_ii_typeArguments() { 5350 void test_parseCascadeSection_ii_typeArguments() {
5375 enableGenericMethods = true;
5376 createParser('..a<E>(b).c<F>(d)'); 5351 createParser('..a<E>(b).c<F>(d)');
5377 Expression expression = parser.parseCascadeSection(); 5352 Expression expression = parser.parseCascadeSection();
5378 expectNotNullIfNoErrors(expression); 5353 expectNotNullIfNoErrors(expression);
5379 listener.assertNoErrors(); 5354 listener.assertNoErrors();
5380 expect(expression, new isInstanceOf<MethodInvocation>()); 5355 expect(expression, new isInstanceOf<MethodInvocation>());
5381 MethodInvocation section = expression; 5356 MethodInvocation section = expression;
5382 expect(section.target, new isInstanceOf<MethodInvocation>()); 5357 expect(section.target, new isInstanceOf<MethodInvocation>());
5383 expect(section.operator, isNotNull); 5358 expect(section.operator, isNotNull);
5384 expect(section.methodName, isNotNull); 5359 expect(section.methodName, isNotNull);
5385 expect(section.typeArguments, isNotNull); 5360 expect(section.typeArguments, isNotNull);
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
5435 expect(expression, new isInstanceOf<AssignmentExpression>()); 5410 expect(expression, new isInstanceOf<AssignmentExpression>());
5436 AssignmentExpression section = expression; 5411 AssignmentExpression section = expression;
5437 expect(section.leftHandSide, isNotNull); 5412 expect(section.leftHandSide, isNotNull);
5438 expect(section.operator, isNotNull); 5413 expect(section.operator, isNotNull);
5439 Expression rhs = section.rightHandSide; 5414 Expression rhs = section.rightHandSide;
5440 EngineTestCase.assertInstanceOf( 5415 EngineTestCase.assertInstanceOf(
5441 (obj) => obj is IntegerLiteral, IntegerLiteral, rhs); 5416 (obj) => obj is IntegerLiteral, IntegerLiteral, rhs);
5442 } 5417 }
5443 5418
5444 void test_parseCascadeSection_p_assign_withCascade_typeArguments() { 5419 void test_parseCascadeSection_p_assign_withCascade_typeArguments() {
5445 enableGenericMethods = true;
5446 createParser('..a = 3..m<E>()'); 5420 createParser('..a = 3..m<E>()');
5447 Expression expression = parser.parseCascadeSection(); 5421 Expression expression = parser.parseCascadeSection();
5448 expectNotNullIfNoErrors(expression); 5422 expectNotNullIfNoErrors(expression);
5449 listener.assertNoErrors(); 5423 listener.assertNoErrors();
5450 expect(expression, new isInstanceOf<AssignmentExpression>()); 5424 expect(expression, new isInstanceOf<AssignmentExpression>());
5451 AssignmentExpression section = expression; 5425 AssignmentExpression section = expression;
5452 expect(section.leftHandSide, isNotNull); 5426 expect(section.leftHandSide, isNotNull);
5453 expect(section.operator, isNotNull); 5427 expect(section.operator, isNotNull);
5454 Expression rhs = section.rightHandSide; 5428 Expression rhs = section.rightHandSide;
5455 EngineTestCase.assertInstanceOf( 5429 EngineTestCase.assertInstanceOf(
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
5493 MethodInvocation section = expression; 5467 MethodInvocation section = expression;
5494 expect(section.target, isNull); 5468 expect(section.target, isNull);
5495 expect(section.operator, isNotNull); 5469 expect(section.operator, isNotNull);
5496 expect(section.methodName, isNotNull); 5470 expect(section.methodName, isNotNull);
5497 expect(section.typeArguments, isNotNull); 5471 expect(section.typeArguments, isNotNull);
5498 expect(section.argumentList, isNotNull); 5472 expect(section.argumentList, isNotNull);
5499 expect(section.argumentList.arguments, hasLength(1)); 5473 expect(section.argumentList.arguments, hasLength(1));
5500 } 5474 }
5501 5475
5502 void test_parseCascadeSection_pa_typeArguments() { 5476 void test_parseCascadeSection_pa_typeArguments() {
5503 enableGenericMethods = true;
5504 createParser('..a<E>(b)'); 5477 createParser('..a<E>(b)');
5505 Expression expression = parser.parseCascadeSection(); 5478 Expression expression = parser.parseCascadeSection();
5506 expectNotNullIfNoErrors(expression); 5479 expectNotNullIfNoErrors(expression);
5507 listener.assertNoErrors(); 5480 listener.assertNoErrors();
5508 expect(expression, new isInstanceOf<MethodInvocation>()); 5481 expect(expression, new isInstanceOf<MethodInvocation>());
5509 MethodInvocation section = expression; 5482 MethodInvocation section = expression;
5510 expect(section.target, isNull); 5483 expect(section.target, isNull);
5511 expect(section.operator, isNotNull); 5484 expect(section.operator, isNotNull);
5512 expect(section.methodName, isNotNull); 5485 expect(section.methodName, isNotNull);
5513 expect(section.typeArguments, isNotNull); 5486 expect(section.typeArguments, isNotNull);
(...skipping 22 matching lines...) Expand all
5536 listener.assertNoErrors(); 5509 listener.assertNoErrors();
5537 expect(expression, new isInstanceOf<FunctionExpressionInvocation>()); 5510 expect(expression, new isInstanceOf<FunctionExpressionInvocation>());
5538 FunctionExpressionInvocation section = expression; 5511 FunctionExpressionInvocation section = expression;
5539 expect(section.function, new isInstanceOf<MethodInvocation>()); 5512 expect(section.function, new isInstanceOf<MethodInvocation>());
5540 expect(section.typeArguments, isNotNull); 5513 expect(section.typeArguments, isNotNull);
5541 expect(section.argumentList, isNotNull); 5514 expect(section.argumentList, isNotNull);
5542 expect(section.argumentList.arguments, hasLength(1)); 5515 expect(section.argumentList.arguments, hasLength(1));
5543 } 5516 }
5544 5517
5545 void test_parseCascadeSection_paa_typeArguments() { 5518 void test_parseCascadeSection_paa_typeArguments() {
5546 enableGenericMethods = true;
5547 createParser('..a<E>(b)<F>(c)'); 5519 createParser('..a<E>(b)<F>(c)');
5548 Expression expression = parser.parseCascadeSection(); 5520 Expression expression = parser.parseCascadeSection();
5549 expectNotNullIfNoErrors(expression); 5521 expectNotNullIfNoErrors(expression);
5550 listener.assertNoErrors(); 5522 listener.assertNoErrors();
5551 expect(expression, new isInstanceOf<FunctionExpressionInvocation>()); 5523 expect(expression, new isInstanceOf<FunctionExpressionInvocation>());
5552 FunctionExpressionInvocation section = expression; 5524 FunctionExpressionInvocation section = expression;
5553 expect(section.function, new isInstanceOf<MethodInvocation>()); 5525 expect(section.function, new isInstanceOf<MethodInvocation>());
5554 expect(section.typeArguments, isNotNull); 5526 expect(section.typeArguments, isNotNull);
5555 expect(section.argumentList, isNotNull); 5527 expect(section.argumentList, isNotNull);
5556 expect(section.argumentList.arguments, hasLength(1)); 5528 expect(section.argumentList.arguments, hasLength(1));
(...skipping 20 matching lines...) Expand all
5577 listener.assertNoErrors(); 5549 listener.assertNoErrors();
5578 expect(expression, new isInstanceOf<FunctionExpressionInvocation>()); 5550 expect(expression, new isInstanceOf<FunctionExpressionInvocation>());
5579 FunctionExpressionInvocation section = expression; 5551 FunctionExpressionInvocation section = expression;
5580 expect(section.function, new isInstanceOf<MethodInvocation>()); 5552 expect(section.function, new isInstanceOf<MethodInvocation>());
5581 expect(section.typeArguments, isNotNull); 5553 expect(section.typeArguments, isNotNull);
5582 expect(section.argumentList, isNotNull); 5554 expect(section.argumentList, isNotNull);
5583 expect(section.argumentList.arguments, hasLength(1)); 5555 expect(section.argumentList.arguments, hasLength(1));
5584 } 5556 }
5585 5557
5586 void test_parseCascadeSection_paapaa_typeArguments() { 5558 void test_parseCascadeSection_paapaa_typeArguments() {
5587 enableGenericMethods = true;
5588 createParser('..a<E>(b)<F>(c).d<G>(e)<H>(f)'); 5559 createParser('..a<E>(b)<F>(c).d<G>(e)<H>(f)');
5589 Expression expression = parser.parseCascadeSection(); 5560 Expression expression = parser.parseCascadeSection();
5590 expectNotNullIfNoErrors(expression); 5561 expectNotNullIfNoErrors(expression);
5591 listener.assertNoErrors(); 5562 listener.assertNoErrors();
5592 expect(expression, new isInstanceOf<FunctionExpressionInvocation>()); 5563 expect(expression, new isInstanceOf<FunctionExpressionInvocation>());
5593 FunctionExpressionInvocation section = expression; 5564 FunctionExpressionInvocation section = expression;
5594 expect(section.function, new isInstanceOf<MethodInvocation>()); 5565 expect(section.function, new isInstanceOf<MethodInvocation>());
5595 expect(section.typeArguments, isNotNull); 5566 expect(section.typeArguments, isNotNull);
5596 expect(section.argumentList, isNotNull); 5567 expect(section.argumentList, isNotNull);
5597 expect(section.argumentList.arguments, hasLength(1)); 5568 expect(section.argumentList.arguments, hasLength(1));
(...skipping 18 matching lines...) Expand all
5616 expectNotNullIfNoErrors(expression); 5587 expectNotNullIfNoErrors(expression);
5617 listener.assertNoErrors(); 5588 listener.assertNoErrors();
5618 expect(expression, new isInstanceOf<PropertyAccess>()); 5589 expect(expression, new isInstanceOf<PropertyAccess>());
5619 PropertyAccess section = expression; 5590 PropertyAccess section = expression;
5620 expect(section.target, isNotNull); 5591 expect(section.target, isNotNull);
5621 expect(section.operator, isNotNull); 5592 expect(section.operator, isNotNull);
5622 expect(section.propertyName, isNotNull); 5593 expect(section.propertyName, isNotNull);
5623 } 5594 }
5624 5595
5625 void test_parseCascadeSection_pap_typeArguments() { 5596 void test_parseCascadeSection_pap_typeArguments() {
5626 enableGenericMethods = true;
5627 createParser('..a<E>(b).c'); 5597 createParser('..a<E>(b).c');
5628 Expression expression = parser.parseCascadeSection(); 5598 Expression expression = parser.parseCascadeSection();
5629 expectNotNullIfNoErrors(expression); 5599 expectNotNullIfNoErrors(expression);
5630 listener.assertNoErrors(); 5600 listener.assertNoErrors();
5631 expect(expression, new isInstanceOf<PropertyAccess>()); 5601 expect(expression, new isInstanceOf<PropertyAccess>());
5632 PropertyAccess section = expression; 5602 PropertyAccess section = expression;
5633 expect(section.target, isNotNull); 5603 expect(section.target, isNotNull);
5634 expect(section.operator, isNotNull); 5604 expect(section.operator, isNotNull);
5635 expect(section.propertyName, isNotNull); 5605 expect(section.propertyName, isNotNull);
5636 } 5606 }
(...skipping 480 matching lines...) Expand 10 before | Expand all | Expand 10 after
6117 expect(method.propertyKeyword, isNull); 6087 expect(method.propertyKeyword, isNull);
6118 expect(method.returnType, isNotNull); 6088 expect(method.returnType, isNotNull);
6119 expect(method.name, isNotNull); 6089 expect(method.name, isNotNull);
6120 expect(method.operatorKeyword, isNull); 6090 expect(method.operatorKeyword, isNull);
6121 expect(method.typeParameters, isNotNull); 6091 expect(method.typeParameters, isNotNull);
6122 expect(method.parameters, isNotNull); 6092 expect(method.parameters, isNotNull);
6123 expect(method.body, isNotNull); 6093 expect(method.body, isNotNull);
6124 } 6094 }
6125 6095
6126 void test_parseClassMember_method_generic_noReturnType() { 6096 void test_parseClassMember_method_generic_noReturnType() {
6127 enableGenericMethods = true;
6128 createParser('m<T>() {}'); 6097 createParser('m<T>() {}');
6129 ClassMember member = parser.parseClassMember('C'); 6098 ClassMember member = parser.parseClassMember('C');
6130 expectNotNullIfNoErrors(member); 6099 expectNotNullIfNoErrors(member);
6131 listener.assertNoErrors(); 6100 listener.assertNoErrors();
6132 expect(member, new isInstanceOf<MethodDeclaration>()); 6101 expect(member, new isInstanceOf<MethodDeclaration>());
6133 MethodDeclaration method = member; 6102 MethodDeclaration method = member;
6134 expect(method.documentationComment, isNull); 6103 expect(method.documentationComment, isNull);
6135 expect(method.externalKeyword, isNull); 6104 expect(method.externalKeyword, isNull);
6136 expect(method.modifierKeyword, isNull); 6105 expect(method.modifierKeyword, isNull);
6137 expect(method.propertyKeyword, isNull); 6106 expect(method.propertyKeyword, isNull);
6138 expect(method.returnType, isNull); 6107 expect(method.returnType, isNull);
6139 expect(method.name, isNotNull); 6108 expect(method.name, isNotNull);
6140 expect(method.operatorKeyword, isNull); 6109 expect(method.operatorKeyword, isNull);
6141 expect(method.typeParameters, isNotNull); 6110 expect(method.typeParameters, isNotNull);
6142 expect(method.parameters, isNotNull); 6111 expect(method.parameters, isNotNull);
6143 expect(method.body, isNotNull); 6112 expect(method.body, isNotNull);
6144 } 6113 }
6145 6114
6146 void test_parseClassMember_method_generic_returnType() { 6115 void test_parseClassMember_method_generic_returnType() {
6147 enableGenericMethods = true;
6148 createParser('T m<T>() {}'); 6116 createParser('T m<T>() {}');
6149 ClassMember member = parser.parseClassMember('C'); 6117 ClassMember member = parser.parseClassMember('C');
6150 expectNotNullIfNoErrors(member); 6118 expectNotNullIfNoErrors(member);
6151 listener.assertNoErrors(); 6119 listener.assertNoErrors();
6152 expect(member, new isInstanceOf<MethodDeclaration>()); 6120 expect(member, new isInstanceOf<MethodDeclaration>());
6153 MethodDeclaration method = member; 6121 MethodDeclaration method = member;
6154 expect(method.documentationComment, isNull); 6122 expect(method.documentationComment, isNull);
6155 expect(method.externalKeyword, isNull); 6123 expect(method.externalKeyword, isNull);
6156 expect(method.modifierKeyword, isNull); 6124 expect(method.modifierKeyword, isNull);
6157 expect(method.propertyKeyword, isNull); 6125 expect(method.propertyKeyword, isNull);
6158 expect(method.returnType, isNotNull); 6126 expect(method.returnType, isNotNull);
6159 expect(method.name, isNotNull); 6127 expect(method.name, isNotNull);
6160 expect(method.operatorKeyword, isNull); 6128 expect(method.operatorKeyword, isNull);
6161 expect(method.typeParameters, isNotNull); 6129 expect(method.typeParameters, isNotNull);
6162 expect(method.parameters, isNotNull); 6130 expect(method.parameters, isNotNull);
6163 expect(method.body, isNotNull); 6131 expect(method.body, isNotNull);
6164 } 6132 }
6165 6133
6166 void test_parseClassMember_method_generic_void() { 6134 void test_parseClassMember_method_generic_void() {
6167 enableGenericMethods = true;
6168 createParser('void m<T>() {}'); 6135 createParser('void m<T>() {}');
6169 ClassMember member = parser.parseClassMember('C'); 6136 ClassMember member = parser.parseClassMember('C');
6170 expectNotNullIfNoErrors(member); 6137 expectNotNullIfNoErrors(member);
6171 listener.assertNoErrors(); 6138 listener.assertNoErrors();
6172 expect(member, new isInstanceOf<MethodDeclaration>()); 6139 expect(member, new isInstanceOf<MethodDeclaration>());
6173 MethodDeclaration method = member; 6140 MethodDeclaration method = member;
6174 expect(method.documentationComment, isNull); 6141 expect(method.documentationComment, isNull);
6175 expect(method.externalKeyword, isNull); 6142 expect(method.externalKeyword, isNull);
6176 expect(method.modifierKeyword, isNull); 6143 expect(method.modifierKeyword, isNull);
6177 expect(method.propertyKeyword, isNull); 6144 expect(method.propertyKeyword, isNull);
(...skipping 1169 matching lines...) Expand 10 before | Expand all | Expand 10 after
7347 expectNotNullIfNoErrors(member); 7314 expectNotNullIfNoErrors(member);
7348 listener.assertNoErrors(); 7315 listener.assertNoErrors();
7349 expect(member, new isInstanceOf<FunctionDeclaration>()); 7316 expect(member, new isInstanceOf<FunctionDeclaration>());
7350 FunctionDeclaration declaration = member; 7317 FunctionDeclaration declaration = member;
7351 expect(declaration.externalKeyword, isNotNull); 7318 expect(declaration.externalKeyword, isNotNull);
7352 expect(declaration.functionExpression, isNotNull); 7319 expect(declaration.functionExpression, isNotNull);
7353 expect(declaration.propertyKeyword, isNull); 7320 expect(declaration.propertyKeyword, isNull);
7354 } 7321 }
7355 7322
7356 void test_parseCompilationUnitMember_function_generic_noReturnType() { 7323 void test_parseCompilationUnitMember_function_generic_noReturnType() {
7357 enableGenericMethods = true;
7358 createParser('f<E>() {}'); 7324 createParser('f<E>() {}');
7359 CompilationUnitMember member = 7325 CompilationUnitMember member =
7360 parser.parseCompilationUnitMember(emptyCommentAndMetadata()); 7326 parser.parseCompilationUnitMember(emptyCommentAndMetadata());
7361 expectNotNullIfNoErrors(member); 7327 expectNotNullIfNoErrors(member);
7362 listener.assertNoErrors(); 7328 listener.assertNoErrors();
7363 expect(member, new isInstanceOf<FunctionDeclaration>()); 7329 expect(member, new isInstanceOf<FunctionDeclaration>());
7364 FunctionDeclaration declaration = member; 7330 FunctionDeclaration declaration = member;
7365 expect(declaration.returnType, isNull); 7331 expect(declaration.returnType, isNull);
7366 expect(declaration.functionExpression.typeParameters, isNotNull); 7332 expect(declaration.functionExpression.typeParameters, isNotNull);
7367 } 7333 }
7368 7334
7369 void 7335 void
7370 test_parseCompilationUnitMember_function_generic_noReturnType_annotated() { 7336 test_parseCompilationUnitMember_function_generic_noReturnType_annotated() {
7371 enableGenericMethods = true;
7372 createParser('f<@a E>() {}'); 7337 createParser('f<@a E>() {}');
7373 CompilationUnitMember member = 7338 CompilationUnitMember member =
7374 parser.parseCompilationUnitMember(emptyCommentAndMetadata()); 7339 parser.parseCompilationUnitMember(emptyCommentAndMetadata());
7375 expectNotNullIfNoErrors(member); 7340 expectNotNullIfNoErrors(member);
7376 listener.assertNoErrors(); 7341 listener.assertNoErrors();
7377 expect(member, new isInstanceOf<FunctionDeclaration>()); 7342 expect(member, new isInstanceOf<FunctionDeclaration>());
7378 FunctionDeclaration declaration = member; 7343 FunctionDeclaration declaration = member;
7379 expect(declaration.returnType, isNull); 7344 expect(declaration.returnType, isNull);
7380 expect(declaration.functionExpression.typeParameters, isNotNull); 7345 expect(declaration.functionExpression.typeParameters, isNotNull);
7381 } 7346 }
7382 7347
7383 void test_parseCompilationUnitMember_function_generic_returnType() { 7348 void test_parseCompilationUnitMember_function_generic_returnType() {
7384 enableGenericMethods = true;
7385 createParser('E f<E>() {}'); 7349 createParser('E f<E>() {}');
7386 CompilationUnitMember member = 7350 CompilationUnitMember member =
7387 parser.parseCompilationUnitMember(emptyCommentAndMetadata()); 7351 parser.parseCompilationUnitMember(emptyCommentAndMetadata());
7388 expectNotNullIfNoErrors(member); 7352 expectNotNullIfNoErrors(member);
7389 listener.assertNoErrors(); 7353 listener.assertNoErrors();
7390 expect(member, new isInstanceOf<FunctionDeclaration>()); 7354 expect(member, new isInstanceOf<FunctionDeclaration>());
7391 FunctionDeclaration declaration = member; 7355 FunctionDeclaration declaration = member;
7392 expect(declaration.returnType, isNotNull); 7356 expect(declaration.returnType, isNotNull);
7393 expect(declaration.functionExpression.typeParameters, isNotNull); 7357 expect(declaration.functionExpression.typeParameters, isNotNull);
7394 } 7358 }
7395 7359
7396 void test_parseCompilationUnitMember_function_generic_void() { 7360 void test_parseCompilationUnitMember_function_generic_void() {
7397 enableGenericMethods = true;
7398 createParser('void f<T>(T t) {}'); 7361 createParser('void f<T>(T t) {}');
7399 CompilationUnitMember member = 7362 CompilationUnitMember member =
7400 parser.parseCompilationUnitMember(emptyCommentAndMetadata()); 7363 parser.parseCompilationUnitMember(emptyCommentAndMetadata());
7401 expectNotNullIfNoErrors(member); 7364 expectNotNullIfNoErrors(member);
7402 listener.assertNoErrors(); 7365 listener.assertNoErrors();
7403 expect(member, new isInstanceOf<FunctionDeclaration>()); 7366 expect(member, new isInstanceOf<FunctionDeclaration>());
7404 FunctionDeclaration declaration = member; 7367 FunctionDeclaration declaration = member;
7405 expect(declaration.functionExpression, isNotNull); 7368 expect(declaration.functionExpression, isNotNull);
7406 expect(declaration.propertyKeyword, isNull); 7369 expect(declaration.propertyKeyword, isNull);
7407 } 7370 }
(...skipping 998 matching lines...) Expand 10 before | Expand all | Expand 10 after
8406 Expression expression = parseExpression('super.m/*<E>*/()'); 8369 Expression expression = parseExpression('super.m/*<E>*/()');
8407 expect(expression, new isInstanceOf<MethodInvocation>()); 8370 expect(expression, new isInstanceOf<MethodInvocation>());
8408 MethodInvocation invocation = expression; 8371 MethodInvocation invocation = expression;
8409 expect(invocation.target, isNotNull); 8372 expect(invocation.target, isNotNull);
8410 expect(invocation.methodName, isNotNull); 8373 expect(invocation.methodName, isNotNull);
8411 expect(invocation.typeArguments, isNotNull); 8374 expect(invocation.typeArguments, isNotNull);
8412 expect(invocation.argumentList, isNotNull); 8375 expect(invocation.argumentList, isNotNull);
8413 } 8376 }
8414 8377
8415 void test_parseExpression_superMethodInvocation_typeArguments() { 8378 void test_parseExpression_superMethodInvocation_typeArguments() {
8416 enableGenericMethods = true;
8417 Expression expression = parseExpression('super.m<E>()'); 8379 Expression expression = parseExpression('super.m<E>()');
8418 expect(expression, new isInstanceOf<MethodInvocation>()); 8380 expect(expression, new isInstanceOf<MethodInvocation>());
8419 MethodInvocation invocation = expression; 8381 MethodInvocation invocation = expression;
8420 expect(invocation.target, isNotNull); 8382 expect(invocation.target, isNotNull);
8421 expect(invocation.methodName, isNotNull); 8383 expect(invocation.methodName, isNotNull);
8422 expect(invocation.typeArguments, isNotNull); 8384 expect(invocation.typeArguments, isNotNull);
8423 expect(invocation.argumentList, isNotNull); 8385 expect(invocation.argumentList, isNotNull);
8424 } 8386 }
8425 8387
8426 void test_parseExpressionList_multiple() { 8388 void test_parseExpressionList_multiple() {
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
8489 expect(expression, new isInstanceOf<MethodInvocation>()); 8451 expect(expression, new isInstanceOf<MethodInvocation>());
8490 MethodInvocation invocation = expression; 8452 MethodInvocation invocation = expression;
8491 expect(invocation.target, isNotNull); 8453 expect(invocation.target, isNotNull);
8492 expect(invocation.methodName, isNotNull); 8454 expect(invocation.methodName, isNotNull);
8493 expect(invocation.typeArguments, isNotNull); 8455 expect(invocation.typeArguments, isNotNull);
8494 expect(invocation.argumentList, isNotNull); 8456 expect(invocation.argumentList, isNotNull);
8495 } 8457 }
8496 8458
8497 void 8459 void
8498 test_parseExpressionWithoutCascade_superMethodInvocation_typeArguments() { 8460 test_parseExpressionWithoutCascade_superMethodInvocation_typeArguments() {
8499 enableGenericMethods = true;
8500 createParser('super.m<E>()'); 8461 createParser('super.m<E>()');
8501 Expression expression = parser.parseExpressionWithoutCascade(); 8462 Expression expression = parser.parseExpressionWithoutCascade();
8502 expectNotNullIfNoErrors(expression); 8463 expectNotNullIfNoErrors(expression);
8503 listener.assertNoErrors(); 8464 listener.assertNoErrors();
8504 expect(expression, new isInstanceOf<MethodInvocation>()); 8465 expect(expression, new isInstanceOf<MethodInvocation>());
8505 MethodInvocation invocation = expression; 8466 MethodInvocation invocation = expression;
8506 expect(invocation.target, isNotNull); 8467 expect(invocation.target, isNotNull);
8507 expect(invocation.methodName, isNotNull); 8468 expect(invocation.methodName, isNotNull);
8508 expect(invocation.typeArguments, isNotNull); 8469 expect(invocation.typeArguments, isNotNull);
8509 expect(invocation.argumentList, isNotNull); 8470 expect(invocation.argumentList, isNotNull);
(...skipping 952 matching lines...) Expand 10 before | Expand all | Expand 10 after
9462 expect(declaration.name, isNotNull); 9423 expect(declaration.name, isNotNull);
9463 FunctionExpression expression = declaration.functionExpression; 9424 FunctionExpression expression = declaration.functionExpression;
9464 expect(expression, isNotNull); 9425 expect(expression, isNotNull);
9465 expect(expression.body, isNotNull); 9426 expect(expression.body, isNotNull);
9466 expect(expression.typeParameters, isNull); 9427 expect(expression.typeParameters, isNull);
9467 expect(expression.parameters, isNotNull); 9428 expect(expression.parameters, isNotNull);
9468 expect(declaration.propertyKeyword, isNull); 9429 expect(declaration.propertyKeyword, isNull);
9469 } 9430 }
9470 9431
9471 void test_parseFunctionDeclaration_functionWithTypeParameters() { 9432 void test_parseFunctionDeclaration_functionWithTypeParameters() {
9472 enableGenericMethods = true;
9473 Comment comment = Comment.createDocumentationComment(new List<Token>(0)); 9433 Comment comment = Comment.createDocumentationComment(new List<Token>(0));
9474 TypeName returnType = new TypeName(new SimpleIdentifier(null), null); 9434 TypeName returnType = new TypeName(new SimpleIdentifier(null), null);
9475 createParser('f<E>() {}'); 9435 createParser('f<E>() {}');
9476 FunctionDeclaration declaration = parser.parseFunctionDeclaration( 9436 FunctionDeclaration declaration = parser.parseFunctionDeclaration(
9477 commentAndMetadata(comment), null, returnType); 9437 commentAndMetadata(comment), null, returnType);
9478 expectNotNullIfNoErrors(declaration); 9438 expectNotNullIfNoErrors(declaration);
9479 listener.assertNoErrors(); 9439 listener.assertNoErrors();
9480 expect(declaration.documentationComment, comment); 9440 expect(declaration.documentationComment, comment);
9481 expect(declaration.returnType, returnType); 9441 expect(declaration.returnType, returnType);
9482 expect(declaration.name, isNotNull); 9442 expect(declaration.name, isNotNull);
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
9564 listener.assertNoErrors(); 9524 listener.assertNoErrors();
9565 FunctionDeclaration f = statement.functionDeclaration; 9525 FunctionDeclaration f = statement.functionDeclaration;
9566 expect(f, isNotNull); 9526 expect(f, isNotNull);
9567 expect(f.functionExpression.typeParameters, isNotNull); 9527 expect(f.functionExpression.typeParameters, isNotNull);
9568 expect(f.returnType, isNotNull); 9528 expect(f.returnType, isNotNull);
9569 SimpleFormalParameter p = f.functionExpression.parameters.parameters[0]; 9529 SimpleFormalParameter p = f.functionExpression.parameters.parameters[0];
9570 expect(p.type, isNotNull); 9530 expect(p.type, isNotNull);
9571 } 9531 }
9572 9532
9573 void test_parseFunctionDeclarationStatement_typeParameters() { 9533 void test_parseFunctionDeclarationStatement_typeParameters() {
9574 enableGenericMethods = true;
9575 createParser('E f<E>(E p) => p * 2;'); 9534 createParser('E f<E>(E p) => p * 2;');
9576 FunctionDeclarationStatement statement = 9535 FunctionDeclarationStatement statement =
9577 parser.parseFunctionDeclarationStatement(); 9536 parser.parseFunctionDeclarationStatement();
9578 expectNotNullIfNoErrors(statement); 9537 expectNotNullIfNoErrors(statement);
9579 listener.assertNoErrors(); 9538 listener.assertNoErrors();
9580 expect(statement.functionDeclaration, isNotNull); 9539 expect(statement.functionDeclaration, isNotNull);
9581 expect(statement.functionDeclaration.functionExpression.typeParameters, 9540 expect(statement.functionDeclaration.functionExpression.typeParameters,
9582 isNotNull); 9541 isNotNull);
9583 } 9542 }
9584 9543
(...skipping 16 matching lines...) Expand all
9601 listener.assertNoErrors(); 9560 listener.assertNoErrors();
9602 expect(expression.body, isNotNull); 9561 expect(expression.body, isNotNull);
9603 expect(expression.typeParameters, isNotNull); 9562 expect(expression.typeParameters, isNotNull);
9604 expect(expression.parameters, isNotNull); 9563 expect(expression.parameters, isNotNull);
9605 expect((expression.body as ExpressionFunctionBody).semicolon, isNull); 9564 expect((expression.body as ExpressionFunctionBody).semicolon, isNull);
9606 SimpleFormalParameter p = expression.parameters.parameters[0]; 9565 SimpleFormalParameter p = expression.parameters.parameters[0];
9607 expect(p.type, isNotNull); 9566 expect(p.type, isNotNull);
9608 } 9567 }
9609 9568
9610 void test_parseFunctionExpression_typeParameters() { 9569 void test_parseFunctionExpression_typeParameters() {
9611 enableGenericMethods = true;
9612 createParser('<E>(E i) => i++'); 9570 createParser('<E>(E i) => i++');
9613 FunctionExpression expression = parser.parseFunctionExpression(); 9571 FunctionExpression expression = parser.parseFunctionExpression();
9614 expectNotNullIfNoErrors(expression); 9572 expectNotNullIfNoErrors(expression);
9615 listener.assertNoErrors(); 9573 listener.assertNoErrors();
9616 expect(expression.body, isNotNull); 9574 expect(expression.body, isNotNull);
9617 expect(expression.typeParameters, isNotNull); 9575 expect(expression.typeParameters, isNotNull);
9618 expect(expression.parameters, isNotNull); 9576 expect(expression.parameters, isNotNull);
9619 expect((expression.body as ExpressionFunctionBody).semicolon, isNull); 9577 expect((expression.body as ExpressionFunctionBody).semicolon, isNull);
9620 } 9578 }
9621 9579
(...skipping 1223 matching lines...) Expand 10 before | Expand all | Expand 10 after
10845 listener.assertNoErrors(); 10803 listener.assertNoErrors();
10846 expect(parameter, new isInstanceOf<FunctionTypedFormalParameter>()); 10804 expect(parameter, new isInstanceOf<FunctionTypedFormalParameter>());
10847 FunctionTypedFormalParameter functionParameter = parameter; 10805 FunctionTypedFormalParameter functionParameter = parameter;
10848 expect(functionParameter.returnType, isNull); 10806 expect(functionParameter.returnType, isNull);
10849 expect(functionParameter.identifier, isNotNull); 10807 expect(functionParameter.identifier, isNotNull);
10850 expect(functionParameter.typeParameters, isNotNull); 10808 expect(functionParameter.typeParameters, isNotNull);
10851 expect(functionParameter.parameters, isNotNull); 10809 expect(functionParameter.parameters, isNotNull);
10852 } 10810 }
10853 10811
10854 void test_parseNormalFormalParameter_function_noType_typeParameters() { 10812 void test_parseNormalFormalParameter_function_noType_typeParameters() {
10855 enableGenericMethods = true;
10856 createParser('a<E>())'); 10813 createParser('a<E>())');
10857 NormalFormalParameter parameter = parser.parseNormalFormalParameter(); 10814 NormalFormalParameter parameter = parser.parseNormalFormalParameter();
10858 expectNotNullIfNoErrors(parameter); 10815 expectNotNullIfNoErrors(parameter);
10859 listener.assertNoErrors(); 10816 listener.assertNoErrors();
10860 expect(parameter, new isInstanceOf<FunctionTypedFormalParameter>()); 10817 expect(parameter, new isInstanceOf<FunctionTypedFormalParameter>());
10861 FunctionTypedFormalParameter functionParameter = parameter; 10818 FunctionTypedFormalParameter functionParameter = parameter;
10862 expect(functionParameter.returnType, isNull); 10819 expect(functionParameter.returnType, isNull);
10863 expect(functionParameter.identifier, isNotNull); 10820 expect(functionParameter.identifier, isNotNull);
10864 expect(functionParameter.typeParameters, isNotNull); 10821 expect(functionParameter.typeParameters, isNotNull);
10865 expect(functionParameter.parameters, isNotNull); 10822 expect(functionParameter.parameters, isNotNull);
10866 expect(functionParameter.question, isNull); 10823 expect(functionParameter.question, isNull);
10867 expect(functionParameter.question, isNull); 10824 expect(functionParameter.question, isNull);
10868 } 10825 }
10869 10826
10870 void 10827 void
10871 test_parseNormalFormalParameter_function_noType_typeParameters_nullable() { 10828 test_parseNormalFormalParameter_function_noType_typeParameters_nullable() {
10872 enableGenericMethods = true;
10873 enableNnbd = true; 10829 enableNnbd = true;
10874 createParser('a<E>()?)'); 10830 createParser('a<E>()?)');
10875 NormalFormalParameter parameter = parser.parseNormalFormalParameter(); 10831 NormalFormalParameter parameter = parser.parseNormalFormalParameter();
10876 expectNotNullIfNoErrors(parameter); 10832 expectNotNullIfNoErrors(parameter);
10877 listener.assertNoErrors(); 10833 listener.assertNoErrors();
10878 expect(parameter, new isInstanceOf<FunctionTypedFormalParameter>()); 10834 expect(parameter, new isInstanceOf<FunctionTypedFormalParameter>());
10879 FunctionTypedFormalParameter functionParameter = parameter; 10835 FunctionTypedFormalParameter functionParameter = parameter;
10880 expect(functionParameter.returnType, isNull); 10836 expect(functionParameter.returnType, isNull);
10881 expect(functionParameter.identifier, isNotNull); 10837 expect(functionParameter.identifier, isNotNull);
10882 expect(functionParameter.typeParameters, isNotNull); 10838 expect(functionParameter.typeParameters, isNotNull);
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
10922 expect(parameter, new isInstanceOf<FunctionTypedFormalParameter>()); 10878 expect(parameter, new isInstanceOf<FunctionTypedFormalParameter>());
10923 FunctionTypedFormalParameter functionParameter = parameter; 10879 FunctionTypedFormalParameter functionParameter = parameter;
10924 expect(functionParameter.returnType, isNotNull); 10880 expect(functionParameter.returnType, isNotNull);
10925 expect(functionParameter.identifier, isNotNull); 10881 expect(functionParameter.identifier, isNotNull);
10926 expect(functionParameter.typeParameters, isNotNull); 10882 expect(functionParameter.typeParameters, isNotNull);
10927 expect(functionParameter.parameters, isNotNull); 10883 expect(functionParameter.parameters, isNotNull);
10928 expect(functionParameter.question, isNull); 10884 expect(functionParameter.question, isNull);
10929 } 10885 }
10930 10886
10931 void test_parseNormalFormalParameter_function_type_typeParameters() { 10887 void test_parseNormalFormalParameter_function_type_typeParameters() {
10932 enableGenericMethods = true;
10933 createParser('A a<E>())'); 10888 createParser('A a<E>())');
10934 NormalFormalParameter parameter = parser.parseNormalFormalParameter(); 10889 NormalFormalParameter parameter = parser.parseNormalFormalParameter();
10935 expectNotNullIfNoErrors(parameter); 10890 expectNotNullIfNoErrors(parameter);
10936 listener.assertNoErrors(); 10891 listener.assertNoErrors();
10937 expect(parameter, new isInstanceOf<FunctionTypedFormalParameter>()); 10892 expect(parameter, new isInstanceOf<FunctionTypedFormalParameter>());
10938 FunctionTypedFormalParameter functionParameter = parameter; 10893 FunctionTypedFormalParameter functionParameter = parameter;
10939 expect(functionParameter.returnType, isNotNull); 10894 expect(functionParameter.returnType, isNotNull);
10940 expect(functionParameter.identifier, isNotNull); 10895 expect(functionParameter.identifier, isNotNull);
10941 expect(functionParameter.typeParameters, isNotNull); 10896 expect(functionParameter.typeParameters, isNotNull);
10942 expect(functionParameter.parameters, isNotNull); 10897 expect(functionParameter.parameters, isNotNull);
10943 expect(functionParameter.question, isNull); 10898 expect(functionParameter.question, isNull);
10944 } 10899 }
10945 10900
10946 void test_parseNormalFormalParameter_function_type_typeParameters_nullable() { 10901 void test_parseNormalFormalParameter_function_type_typeParameters_nullable() {
10947 enableGenericMethods = true;
10948 enableNnbd = true; 10902 enableNnbd = true;
10949 createParser('A a<E>()?)'); 10903 createParser('A a<E>()?)');
10950 NormalFormalParameter parameter = parser.parseNormalFormalParameter(); 10904 NormalFormalParameter parameter = parser.parseNormalFormalParameter();
10951 expectNotNullIfNoErrors(parameter); 10905 expectNotNullIfNoErrors(parameter);
10952 listener.assertNoErrors(); 10906 listener.assertNoErrors();
10953 expect(parameter, new isInstanceOf<FunctionTypedFormalParameter>()); 10907 expect(parameter, new isInstanceOf<FunctionTypedFormalParameter>());
10954 FunctionTypedFormalParameter functionParameter = parameter; 10908 FunctionTypedFormalParameter functionParameter = parameter;
10955 expect(functionParameter.returnType, isNotNull); 10909 expect(functionParameter.returnType, isNotNull);
10956 expect(functionParameter.identifier, isNotNull); 10910 expect(functionParameter.identifier, isNotNull);
10957 expect(functionParameter.typeParameters, isNotNull); 10911 expect(functionParameter.typeParameters, isNotNull);
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
10997 expect(parameter, new isInstanceOf<FunctionTypedFormalParameter>()); 10951 expect(parameter, new isInstanceOf<FunctionTypedFormalParameter>());
10998 FunctionTypedFormalParameter functionParameter = parameter; 10952 FunctionTypedFormalParameter functionParameter = parameter;
10999 expect(functionParameter.returnType, isNotNull); 10953 expect(functionParameter.returnType, isNotNull);
11000 expect(functionParameter.identifier, isNotNull); 10954 expect(functionParameter.identifier, isNotNull);
11001 expect(functionParameter.typeParameters, isNotNull); 10955 expect(functionParameter.typeParameters, isNotNull);
11002 expect(functionParameter.parameters, isNotNull); 10956 expect(functionParameter.parameters, isNotNull);
11003 expect(functionParameter.question, isNull); 10957 expect(functionParameter.question, isNull);
11004 } 10958 }
11005 10959
11006 void test_parseNormalFormalParameter_function_void_typeParameters() { 10960 void test_parseNormalFormalParameter_function_void_typeParameters() {
11007 enableGenericMethods = true;
11008 createParser('void a<E>())'); 10961 createParser('void a<E>())');
11009 NormalFormalParameter parameter = parser.parseNormalFormalParameter(); 10962 NormalFormalParameter parameter = parser.parseNormalFormalParameter();
11010 expectNotNullIfNoErrors(parameter); 10963 expectNotNullIfNoErrors(parameter);
11011 listener.assertNoErrors(); 10964 listener.assertNoErrors();
11012 expect(parameter, new isInstanceOf<FunctionTypedFormalParameter>()); 10965 expect(parameter, new isInstanceOf<FunctionTypedFormalParameter>());
11013 FunctionTypedFormalParameter functionParameter = parameter; 10966 FunctionTypedFormalParameter functionParameter = parameter;
11014 expect(functionParameter.returnType, isNotNull); 10967 expect(functionParameter.returnType, isNotNull);
11015 expect(functionParameter.identifier, isNotNull); 10968 expect(functionParameter.identifier, isNotNull);
11016 expect(functionParameter.typeParameters, isNotNull); 10969 expect(functionParameter.typeParameters, isNotNull);
11017 expect(functionParameter.parameters, isNotNull); 10970 expect(functionParameter.parameters, isNotNull);
11018 expect(functionParameter.question, isNull); 10971 expect(functionParameter.question, isNull);
11019 } 10972 }
11020 10973
11021 void test_parseNormalFormalParameter_function_void_typeParameters_nullable() { 10974 void test_parseNormalFormalParameter_function_void_typeParameters_nullable() {
11022 enableGenericMethods = true;
11023 enableNnbd = true; 10975 enableNnbd = true;
11024 createParser('void a<E>()?)'); 10976 createParser('void a<E>()?)');
11025 NormalFormalParameter parameter = parser.parseNormalFormalParameter(); 10977 NormalFormalParameter parameter = parser.parseNormalFormalParameter();
11026 expectNotNullIfNoErrors(parameter); 10978 expectNotNullIfNoErrors(parameter);
11027 listener.assertNoErrors(); 10979 listener.assertNoErrors();
11028 expect(parameter, new isInstanceOf<FunctionTypedFormalParameter>()); 10980 expect(parameter, new isInstanceOf<FunctionTypedFormalParameter>());
11029 FunctionTypedFormalParameter functionParameter = parameter; 10981 FunctionTypedFormalParameter functionParameter = parameter;
11030 expect(functionParameter.returnType, isNotNull); 10982 expect(functionParameter.returnType, isNotNull);
11031 expect(functionParameter.identifier, isNotNull); 10983 expect(functionParameter.identifier, isNotNull);
11032 expect(functionParameter.typeParameters, isNotNull); 10984 expect(functionParameter.typeParameters, isNotNull);
(...skipping 194 matching lines...) Expand 10 before | Expand all | Expand 10 after
11227 MethodInvocation methodInvocation = expression; 11179 MethodInvocation methodInvocation = expression;
11228 expect(methodInvocation.target, isNotNull); 11180 expect(methodInvocation.target, isNotNull);
11229 expect(methodInvocation.operator.type, TokenType.QUESTION_PERIOD); 11181 expect(methodInvocation.operator.type, TokenType.QUESTION_PERIOD);
11230 expect(methodInvocation.methodName, isNotNull); 11182 expect(methodInvocation.methodName, isNotNull);
11231 expect(methodInvocation.typeArguments, isNotNull); 11183 expect(methodInvocation.typeArguments, isNotNull);
11232 expect(methodInvocation.argumentList, isNotNull); 11184 expect(methodInvocation.argumentList, isNotNull);
11233 } 11185 }
11234 11186
11235 void 11187 void
11236 test_parsePostfixExpression_none_methodInvocation_question_dot_typeArgumen ts() { 11188 test_parsePostfixExpression_none_methodInvocation_question_dot_typeArgumen ts() {
11237 enableGenericMethods = true;
11238 createParser('a?.m<E>()'); 11189 createParser('a?.m<E>()');
11239 Expression expression = parser.parsePostfixExpression(); 11190 Expression expression = parser.parsePostfixExpression();
11240 expectNotNullIfNoErrors(expression); 11191 expectNotNullIfNoErrors(expression);
11241 listener.assertNoErrors(); 11192 listener.assertNoErrors();
11242 expect(expression, new isInstanceOf<MethodInvocation>()); 11193 expect(expression, new isInstanceOf<MethodInvocation>());
11243 MethodInvocation methodInvocation = expression; 11194 MethodInvocation methodInvocation = expression;
11244 expect(methodInvocation.target, isNotNull); 11195 expect(methodInvocation.target, isNotNull);
11245 expect(methodInvocation.operator.type, TokenType.QUESTION_PERIOD); 11196 expect(methodInvocation.operator.type, TokenType.QUESTION_PERIOD);
11246 expect(methodInvocation.methodName, isNotNull); 11197 expect(methodInvocation.methodName, isNotNull);
11247 expect(methodInvocation.typeArguments, isNotNull); 11198 expect(methodInvocation.typeArguments, isNotNull);
(...skipping 10 matching lines...) Expand all
11258 expect(expression, new isInstanceOf<MethodInvocation>()); 11209 expect(expression, new isInstanceOf<MethodInvocation>());
11259 MethodInvocation methodInvocation = expression; 11210 MethodInvocation methodInvocation = expression;
11260 expect(methodInvocation.target, isNotNull); 11211 expect(methodInvocation.target, isNotNull);
11261 expect(methodInvocation.operator.type, TokenType.PERIOD); 11212 expect(methodInvocation.operator.type, TokenType.PERIOD);
11262 expect(methodInvocation.methodName, isNotNull); 11213 expect(methodInvocation.methodName, isNotNull);
11263 expect(methodInvocation.typeArguments, isNotNull); 11214 expect(methodInvocation.typeArguments, isNotNull);
11264 expect(methodInvocation.argumentList, isNotNull); 11215 expect(methodInvocation.argumentList, isNotNull);
11265 } 11216 }
11266 11217
11267 void test_parsePostfixExpression_none_methodInvocation_typeArguments() { 11218 void test_parsePostfixExpression_none_methodInvocation_typeArguments() {
11268 enableGenericMethods = true;
11269 createParser('a.m<E>()'); 11219 createParser('a.m<E>()');
11270 Expression expression = parser.parsePostfixExpression(); 11220 Expression expression = parser.parsePostfixExpression();
11271 expectNotNullIfNoErrors(expression); 11221 expectNotNullIfNoErrors(expression);
11272 listener.assertNoErrors(); 11222 listener.assertNoErrors();
11273 expect(expression, new isInstanceOf<MethodInvocation>()); 11223 expect(expression, new isInstanceOf<MethodInvocation>());
11274 MethodInvocation methodInvocation = expression; 11224 MethodInvocation methodInvocation = expression;
11275 expect(methodInvocation.target, isNotNull); 11225 expect(methodInvocation.target, isNotNull);
11276 expect(methodInvocation.operator.type, TokenType.PERIOD); 11226 expect(methodInvocation.operator.type, TokenType.PERIOD);
11277 expect(methodInvocation.methodName, isNotNull); 11227 expect(methodInvocation.methodName, isNotNull);
11278 expect(methodInvocation.typeArguments, isNotNull); 11228 expect(methodInvocation.typeArguments, isNotNull);
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
11362 Expression expression = parser.parsePrimaryExpression(); 11312 Expression expression = parser.parsePrimaryExpression();
11363 expectNotNullIfNoErrors(expression); 11313 expectNotNullIfNoErrors(expression);
11364 listener.assertNoErrors(); 11314 listener.assertNoErrors();
11365 expect(expression, new isInstanceOf<FunctionExpression>()); 11315 expect(expression, new isInstanceOf<FunctionExpression>());
11366 FunctionExpression functionExpression = expression; 11316 FunctionExpression functionExpression = expression;
11367 expect(functionExpression.parameters, isNotNull); 11317 expect(functionExpression.parameters, isNotNull);
11368 expect(functionExpression.body, isNotNull); 11318 expect(functionExpression.body, isNotNull);
11369 } 11319 }
11370 11320
11371 void test_parsePrimaryExpression_genericFunctionExpression() { 11321 void test_parsePrimaryExpression_genericFunctionExpression() {
11372 enableGenericMethods = true;
11373 createParser('<X, Y>(Map<X, Y> m, X x) => m[x]'); 11322 createParser('<X, Y>(Map<X, Y> m, X x) => m[x]');
11374 Expression expression = parser.parsePrimaryExpression(); 11323 Expression expression = parser.parsePrimaryExpression();
11375 expectNotNullIfNoErrors(expression); 11324 expectNotNullIfNoErrors(expression);
11376 listener.assertNoErrors(); 11325 listener.assertNoErrors();
11377 expect(expression, new isInstanceOf<FunctionExpression>()); 11326 expect(expression, new isInstanceOf<FunctionExpression>());
11378 FunctionExpression function = expression; 11327 FunctionExpression function = expression;
11379 expect(function.typeParameters, isNotNull); 11328 expect(function.typeParameters, isNotNull);
11380 } 11329 }
11381 11330
11382 void test_parsePrimaryExpression_hex() { 11331 void test_parsePrimaryExpression_hex() {
(...skipping 494 matching lines...) Expand 10 before | Expand all | Expand 10 after
11877 listener.assertNoErrors(); 11826 listener.assertNoErrors();
11878 expect(statement, new isInstanceOf<FunctionDeclarationStatement>()); 11827 expect(statement, new isInstanceOf<FunctionDeclarationStatement>());
11879 FunctionDeclarationStatement declaration = statement; 11828 FunctionDeclarationStatement declaration = statement;
11880 expect(declaration.functionDeclaration, isNotNull); 11829 expect(declaration.functionDeclaration, isNotNull);
11881 expect(declaration.functionDeclaration.functionExpression.typeParameters, 11830 expect(declaration.functionDeclaration.functionExpression.typeParameters,
11882 isNotNull); 11831 isNotNull);
11883 } 11832 }
11884 11833
11885 @failingTest 11834 @failingTest
11886 void test_parseStatement_functionDeclaration_noReturnType_typeParameters() { 11835 void test_parseStatement_functionDeclaration_noReturnType_typeParameters() {
11887 enableGenericMethods = true;
11888 createParser('f<E>(a, b) {};'); 11836 createParser('f<E>(a, b) {};');
11889 Statement statement = parser.parseStatement2(); 11837 Statement statement = parser.parseStatement2();
11890 expectNotNullIfNoErrors(statement); 11838 expectNotNullIfNoErrors(statement);
11891 listener.assertNoErrors(); 11839 listener.assertNoErrors();
11892 expect(statement, new isInstanceOf<FunctionDeclarationStatement>()); 11840 expect(statement, new isInstanceOf<FunctionDeclarationStatement>());
11893 FunctionDeclarationStatement declaration = statement; 11841 FunctionDeclarationStatement declaration = statement;
11894 expect(declaration.functionDeclaration, isNotNull); 11842 expect(declaration.functionDeclaration, isNotNull);
11895 } 11843 }
11896 11844
11897 void test_parseStatement_functionDeclaration_returnType() { 11845 void test_parseStatement_functionDeclaration_returnType() {
11898 // TODO(brianwilkerson) Implement more tests for this method. 11846 // TODO(brianwilkerson) Implement more tests for this method.
11899 createParser('int f(a, b) {};'); 11847 createParser('int f(a, b) {};');
11900 Statement statement = parser.parseStatement2(); 11848 Statement statement = parser.parseStatement2();
11901 expectNotNullIfNoErrors(statement); 11849 expectNotNullIfNoErrors(statement);
11902 listener.assertNoErrors(); 11850 listener.assertNoErrors();
11903 expect(statement, new isInstanceOf<FunctionDeclarationStatement>()); 11851 expect(statement, new isInstanceOf<FunctionDeclarationStatement>());
11904 FunctionDeclarationStatement declaration = statement; 11852 FunctionDeclarationStatement declaration = statement;
11905 expect(declaration.functionDeclaration, isNotNull); 11853 expect(declaration.functionDeclaration, isNotNull);
11906 } 11854 }
11907 11855
11908 void test_parseStatement_functionDeclaration_returnType_typeParameters() { 11856 void test_parseStatement_functionDeclaration_returnType_typeParameters() {
11909 enableGenericMethods = true;
11910 createParser('int f<E>(a, b) {};'); 11857 createParser('int f<E>(a, b) {};');
11911 Statement statement = parser.parseStatement2(); 11858 Statement statement = parser.parseStatement2();
11912 expectNotNullIfNoErrors(statement); 11859 expectNotNullIfNoErrors(statement);
11913 listener.assertNoErrors(); 11860 listener.assertNoErrors();
11914 expect(statement, new isInstanceOf<FunctionDeclarationStatement>()); 11861 expect(statement, new isInstanceOf<FunctionDeclarationStatement>());
11915 FunctionDeclarationStatement declaration = statement; 11862 FunctionDeclarationStatement declaration = statement;
11916 expect(declaration.functionDeclaration, isNotNull); 11863 expect(declaration.functionDeclaration, isNotNull);
11917 } 11864 }
11918 11865
11919 void test_parseStatement_mulipleLabels() { 11866 void test_parseStatement_mulipleLabels() {
(...skipping 1554 matching lines...) Expand 10 before | Expand all | Expand 10 after
13474 CompilationUnit _parseDirectives(String source, 13421 CompilationUnit _parseDirectives(String source,
13475 [List<ErrorCode> errorCodes = const <ErrorCode>[]]) { 13422 [List<ErrorCode> errorCodes = const <ErrorCode>[]]) {
13476 createParser(source); 13423 createParser(source);
13477 CompilationUnit unit = parser.parseDirectives2(); 13424 CompilationUnit unit = parser.parseDirectives2();
13478 expect(unit, isNotNull); 13425 expect(unit, isNotNull);
13479 expect(unit.declarations, hasLength(0)); 13426 expect(unit.declarations, hasLength(0));
13480 listener.assertErrorsWithCodes(errorCodes); 13427 listener.assertErrorsWithCodes(errorCodes);
13481 return unit; 13428 return unit;
13482 } 13429 }
13483 } 13430 }
OLDNEW
« no previous file with comments | « pkg/analyzer/test/generated/package_test.dart ('k') | pkg/analyzer/test/generated/resolver_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698