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

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

Issue 2638463002: Remaining parser changes for generic function types (Closed)
Patch Set: Created 3 years, 11 months 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
« no previous file with comments | « pkg/analyzer/lib/src/generated/parser.dart ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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/standard_ast_factory.dart'; 8 import 'package:analyzer/dart/ast/standard_ast_factory.dart';
9 import 'package:analyzer/dart/ast/token.dart'; 9 import 'package:analyzer/dart/ast/token.dart';
10 import 'package:analyzer/dart/ast/visitor.dart'; 10 import 'package:analyzer/dart/ast/visitor.dart';
(...skipping 1116 matching lines...) Expand 10 before | Expand all | Expand 10 after
1127 Token semicolon = directive.semicolon; 1127 Token semicolon = directive.semicolon;
1128 expect(semicolon, isNotNull); 1128 expect(semicolon, isNotNull);
1129 expect(semicolon.isSynthetic, isTrue); 1129 expect(semicolon.isSynthetic, isTrue);
1130 } 1130 }
1131 1131
1132 void test_expectedToken_whileMissingInDoStatement() { 1132 void test_expectedToken_whileMissingInDoStatement() {
1133 ParserTestCase 1133 ParserTestCase
1134 .parseStatement("do {} (x);", [ParserErrorCode.EXPECTED_TOKEN]); 1134 .parseStatement("do {} (x);", [ParserErrorCode.EXPECTED_TOKEN]);
1135 } 1135 }
1136 1136
1137 void test_expectedTypeName_as() {
1138 parseExpression("x as", [ParserErrorCode.EXPECTED_TYPE_NAME]);
1139 }
1140
1141 void test_expectedTypeName_as_void() {
1142 parseExpression("x as void)", [ParserErrorCode.EXPECTED_TYPE_NAME]);
1143 }
1144
1137 void test_expectedTypeName_is() { 1145 void test_expectedTypeName_is() {
1138 parseExpression("x is", [ParserErrorCode.EXPECTED_TYPE_NAME]); 1146 parseExpression("x is", [ParserErrorCode.EXPECTED_TYPE_NAME]);
1139 } 1147 }
1140 1148
1149 void test_expectedTypeName_is_void() {
1150 parseExpression("x is void)", [ParserErrorCode.EXPECTED_TYPE_NAME]);
1151 }
1152
1141 void test_exportDirectiveAfterPartDirective() { 1153 void test_exportDirectiveAfterPartDirective() {
1142 ParserTestCase.parseCompilationUnit("part 'a.dart'; export 'b.dart';", 1154 ParserTestCase.parseCompilationUnit("part 'a.dart'; export 'b.dart';",
1143 [ParserErrorCode.EXPORT_DIRECTIVE_AFTER_PART_DIRECTIVE]); 1155 [ParserErrorCode.EXPORT_DIRECTIVE_AFTER_PART_DIRECTIVE]);
1144 } 1156 }
1145 1157
1146 void test_externalAfterConst() { 1158 void test_externalAfterConst() {
1147 createParser('const external C();'); 1159 createParser('const external C();');
1148 ClassMember member = parser.parseClassMember('C'); 1160 ClassMember member = parser.parseClassMember('C');
1149 expectNotNullIfNoErrors(member); 1161 expectNotNullIfNoErrors(member);
1150 listener.assertErrorsWithCodes([ParserErrorCode.EXTERNAL_AFTER_CONST]); 1162 listener.assertErrorsWithCodes([ParserErrorCode.EXTERNAL_AFTER_CONST]);
(...skipping 4835 matching lines...) Expand 10 before | Expand all | Expand 10 after
5986 expect(field.metadata, hasLength(0)); 5998 expect(field.metadata, hasLength(0));
5987 expect(field.staticKeyword, isNull); 5999 expect(field.staticKeyword, isNull);
5988 VariableDeclarationList list = field.fields; 6000 VariableDeclarationList list = field.fields;
5989 expect(list, isNotNull); 6001 expect(list, isNotNull);
5990 NodeList<VariableDeclaration> variables = list.variables; 6002 NodeList<VariableDeclaration> variables = list.variables;
5991 expect(variables, hasLength(1)); 6003 expect(variables, hasLength(1));
5992 VariableDeclaration variable = variables[0]; 6004 VariableDeclaration variable = variables[0];
5993 expect(variable.name, isNotNull); 6005 expect(variable.name, isNotNull);
5994 } 6006 }
5995 6007
6008 void test_parseClassMember_getter_functionType() {
6009 createParser('int Function(int) get g {}');
6010 ClassMember member = parser.parseClassMember('C');
6011 expectNotNullIfNoErrors(member);
6012 listener.assertNoErrors();
6013 expect(member, new isInstanceOf<MethodDeclaration>());
6014 MethodDeclaration method = member;
6015 expect(method.documentationComment, isNull);
6016 expect(method.externalKeyword, isNull);
6017 expect(method.modifierKeyword, isNull);
6018 expect(method.propertyKeyword, isNotNull);
6019 expect(method.returnType, isNotNull);
6020 expect(method.name, isNotNull);
6021 expect(method.operatorKeyword, isNull);
6022 expect(method.body, isNotNull);
6023 expect(method.parameters, isNull);
6024 }
6025
5996 void test_parseClassMember_getter_void() { 6026 void test_parseClassMember_getter_void() {
5997 createParser('void get g {}'); 6027 createParser('void get g {}');
5998 ClassMember member = parser.parseClassMember('C'); 6028 ClassMember member = parser.parseClassMember('C');
5999 expectNotNullIfNoErrors(member); 6029 expectNotNullIfNoErrors(member);
6000 listener.assertNoErrors(); 6030 listener.assertNoErrors();
6001 expect(member, new isInstanceOf<MethodDeclaration>()); 6031 expect(member, new isInstanceOf<MethodDeclaration>());
6002 MethodDeclaration method = member; 6032 MethodDeclaration method = member;
6003 expect(method.documentationComment, isNull); 6033 expect(method.documentationComment, isNull);
6004 expect(method.externalKeyword, isNull); 6034 expect(method.externalKeyword, isNull);
6005 expect(method.modifierKeyword, isNull); 6035 expect(method.modifierKeyword, isNull);
(...skipping 291 matching lines...) Expand 10 before | Expand all | Expand 10 after
6297 expect(method.modifierKeyword, isNull); 6327 expect(method.modifierKeyword, isNull);
6298 expect(method.propertyKeyword, isNull); 6328 expect(method.propertyKeyword, isNull);
6299 expect(method.returnType, isNotNull); 6329 expect(method.returnType, isNotNull);
6300 expect(method.name, isNotNull); 6330 expect(method.name, isNotNull);
6301 expect(method.operatorKeyword, isNull); 6331 expect(method.operatorKeyword, isNull);
6302 expect(method.typeParameters, isNull); 6332 expect(method.typeParameters, isNull);
6303 expect(method.parameters, isNotNull); 6333 expect(method.parameters, isNotNull);
6304 expect(method.body, isNotNull); 6334 expect(method.body, isNotNull);
6305 } 6335 }
6306 6336
6337 void test_parseClassMember_method_returnType_functionType() {
6338 createParser('int Function(String) m() {}');
6339 ClassMember member = parser.parseClassMember('C');
6340 expectNotNullIfNoErrors(member);
6341 listener.assertNoErrors();
6342 expect(member, new isInstanceOf<MethodDeclaration>());
6343 MethodDeclaration method = member;
6344 expect(method.documentationComment, isNull);
6345 expect(method.externalKeyword, isNull);
6346 expect(method.modifierKeyword, isNull);
6347 expect(method.propertyKeyword, isNull);
6348 expect(method.returnType, isNotNull);
6349 expect(method.name, isNotNull);
6350 expect(method.name.name, 'm');
6351 expect(method.operatorKeyword, isNull);
6352 expect(method.typeParameters, isNull);
6353 expect(method.parameters, isNotNull);
6354 expect(method.body, isNotNull);
6355 }
6356
6307 void test_parseClassMember_method_returnType_parameterized() { 6357 void test_parseClassMember_method_returnType_parameterized() {
6308 createParser('p.A m() {}'); 6358 createParser('p.A m() {}');
6309 ClassMember member = parser.parseClassMember('C'); 6359 ClassMember member = parser.parseClassMember('C');
6310 expectNotNullIfNoErrors(member); 6360 expectNotNullIfNoErrors(member);
6311 listener.assertNoErrors(); 6361 listener.assertNoErrors();
6312 expect(member, new isInstanceOf<MethodDeclaration>()); 6362 expect(member, new isInstanceOf<MethodDeclaration>());
6313 MethodDeclaration method = member; 6363 MethodDeclaration method = member;
6314 expect(method.documentationComment, isNull); 6364 expect(method.documentationComment, isNull);
6315 expect(method.externalKeyword, isNull); 6365 expect(method.externalKeyword, isNull);
6316 expect(method.modifierKeyword, isNull); 6366 expect(method.modifierKeyword, isNull);
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
6392 expect(method.modifierKeyword, isNull); 6442 expect(method.modifierKeyword, isNull);
6393 expect(method.propertyKeyword, isNull); 6443 expect(method.propertyKeyword, isNull);
6394 expect(method.returnType, isNotNull); 6444 expect(method.returnType, isNotNull);
6395 expect(method.name, isNotNull); 6445 expect(method.name, isNotNull);
6396 expect(method.operatorKeyword, isNull); 6446 expect(method.operatorKeyword, isNull);
6397 expect(method.typeParameters, isNull); 6447 expect(method.typeParameters, isNull);
6398 expect(method.parameters, isNotNull); 6448 expect(method.parameters, isNotNull);
6399 expect(method.body, isNotNull); 6449 expect(method.body, isNotNull);
6400 } 6450 }
6401 6451
6452 void test_parseClassMember_operator_functionType() {
6453 createParser('int Function() operator +(int Function() f) {}');
6454 ClassMember member = parser.parseClassMember('C');
6455 expectNotNullIfNoErrors(member);
6456 listener.assertNoErrors();
6457 expect(member, new isInstanceOf<MethodDeclaration>());
6458 MethodDeclaration method = member;
6459 expect(method.documentationComment, isNull);
6460 expect(method.externalKeyword, isNull);
6461 expect(method.modifierKeyword, isNull);
6462 expect(method.propertyKeyword, isNull);
6463 expect(method.returnType, new isInstanceOf<GenericFunctionType>());
6464 expect(method.name, isNotNull);
6465 expect(method.operatorKeyword, isNotNull);
6466 expect(method.typeParameters, isNull);
6467 expect(method.parameters, isNotNull);
6468 NodeList<FormalParameter> parameters = method.parameters.parameters;
6469 expect(parameters, hasLength(1));
6470 expect((parameters[0] as SimpleFormalParameter).type,
6471 new isInstanceOf<GenericFunctionType>());
6472 expect(method.body, isNotNull);
6473 }
6474
6402 void test_parseClassMember_operator_index() { 6475 void test_parseClassMember_operator_index() {
6403 createParser('int operator [](int i) {}'); 6476 createParser('int operator [](int i) {}');
6404 ClassMember member = parser.parseClassMember('C'); 6477 ClassMember member = parser.parseClassMember('C');
6405 expectNotNullIfNoErrors(member); 6478 expectNotNullIfNoErrors(member);
6406 listener.assertNoErrors(); 6479 listener.assertNoErrors();
6407 expect(member, new isInstanceOf<MethodDeclaration>()); 6480 expect(member, new isInstanceOf<MethodDeclaration>());
6408 MethodDeclaration method = member; 6481 MethodDeclaration method = member;
6409 expect(method.documentationComment, isNull); 6482 expect(method.documentationComment, isNull);
6410 expect(method.externalKeyword, isNull); 6483 expect(method.externalKeyword, isNull);
6411 expect(method.modifierKeyword, isNull); 6484 expect(method.modifierKeyword, isNull);
(...skipping 2267 matching lines...) Expand 10 before | Expand all | Expand 10 after
8679 defaultParameter.parameter as SimpleFormalParameter; 8752 defaultParameter.parameter as SimpleFormalParameter;
8680 expect(simpleParameter.identifier, isNotNull); 8753 expect(simpleParameter.identifier, isNotNull);
8681 expect(simpleParameter.keyword, isNotNull); 8754 expect(simpleParameter.keyword, isNotNull);
8682 expect(simpleParameter.type, isNotNull); 8755 expect(simpleParameter.type, isNotNull);
8683 expect(simpleParameter.kind, kind); 8756 expect(simpleParameter.kind, kind);
8684 expect(defaultParameter.separator, isNotNull); 8757 expect(defaultParameter.separator, isNotNull);
8685 expect(defaultParameter.defaultValue, isNotNull); 8758 expect(defaultParameter.defaultValue, isNotNull);
8686 expect(defaultParameter.kind, kind); 8759 expect(defaultParameter.kind, kind);
8687 } 8760 }
8688 8761
8762 void test_parseFormalParameter_nonFinal_withType_function() {
8763 ParameterKind kind = ParameterKind.REQUIRED;
8764 createParser('String Function(int) a');
8765 FormalParameter parameter = parser.parseFormalParameter(kind);
8766 expectNotNullIfNoErrors(parameter);
8767 listener.assertNoErrors();
8768 expect(parameter, new isInstanceOf<SimpleFormalParameter>());
8769 SimpleFormalParameter simpleParameter = parameter;
8770 expect(simpleParameter.identifier, isNotNull);
8771 expect(simpleParameter.keyword, isNull);
8772 expect(simpleParameter.type, new isInstanceOf<GenericFunctionType>());
8773 expect(simpleParameter.kind, kind);
8774 }
8775
8689 void test_parseFormalParameter_nonFinal_withType_named() { 8776 void test_parseFormalParameter_nonFinal_withType_named() {
8690 ParameterKind kind = ParameterKind.NAMED; 8777 ParameterKind kind = ParameterKind.NAMED;
8691 createParser('A a : null'); 8778 createParser('A a : null');
8692 FormalParameter parameter = parser.parseFormalParameter(kind); 8779 FormalParameter parameter = parser.parseFormalParameter(kind);
8693 expectNotNullIfNoErrors(parameter); 8780 expectNotNullIfNoErrors(parameter);
8694 listener.assertNoErrors(); 8781 listener.assertNoErrors();
8695 expect(parameter, new isInstanceOf<DefaultFormalParameter>()); 8782 expect(parameter, new isInstanceOf<DefaultFormalParameter>());
8696 DefaultFormalParameter defaultParameter = parameter; 8783 DefaultFormalParameter defaultParameter = parameter;
8697 SimpleFormalParameter simpleParameter = 8784 SimpleFormalParameter simpleParameter =
8698 defaultParameter.parameter as SimpleFormalParameter; 8785 defaultParameter.parameter as SimpleFormalParameter;
(...skipping 208 matching lines...) Expand 10 before | Expand all | Expand 10 after
8907 FormalParameterList list = parser.parseFormalParameterList(); 8994 FormalParameterList list = parser.parseFormalParameterList();
8908 expectNotNullIfNoErrors(list); 8995 expectNotNullIfNoErrors(list);
8909 listener.assertNoErrors(); 8996 listener.assertNoErrors();
8910 expect(list.leftParenthesis, isNotNull); 8997 expect(list.leftParenthesis, isNotNull);
8911 expect(list.leftDelimiter, isNull); 8998 expect(list.leftDelimiter, isNull);
8912 expect(list.parameters, hasLength(1)); 8999 expect(list.parameters, hasLength(1));
8913 expect(list.rightDelimiter, isNull); 9000 expect(list.rightDelimiter, isNull);
8914 expect(list.rightParenthesis, isNotNull); 9001 expect(list.rightParenthesis, isNotNull);
8915 } 9002 }
8916 9003
9004 void test_parseFormalParameterList_normal_single_Function() {
9005 createParser('(Function f)');
9006 FormalParameterList list = parser.parseFormalParameterList();
9007 expectNotNullIfNoErrors(list);
9008 listener.assertNoErrors();
9009 expect(list.leftParenthesis, isNotNull);
9010 expect(list.leftDelimiter, isNull);
9011 expect(list.parameters, hasLength(1));
9012 expect(list.rightDelimiter, isNull);
9013 expect(list.rightParenthesis, isNotNull);
9014 }
9015
8917 void test_parseFormalParameterList_normal_single_trailing_comma() { 9016 void test_parseFormalParameterList_normal_single_trailing_comma() {
8918 createParser('(A a,)'); 9017 createParser('(A a,)');
8919 FormalParameterList list = parser.parseFormalParameterList(); 9018 FormalParameterList list = parser.parseFormalParameterList();
8920 expectNotNullIfNoErrors(list); 9019 expectNotNullIfNoErrors(list);
8921 listener.assertNoErrors(); 9020 listener.assertNoErrors();
8922 expect(list.leftParenthesis, isNotNull); 9021 expect(list.leftParenthesis, isNotNull);
8923 expect(list.leftDelimiter, isNull); 9022 expect(list.leftDelimiter, isNull);
8924 expect(list.parameters, hasLength(1)); 9023 expect(list.parameters, hasLength(1));
8925 expect(list.rightDelimiter, isNull); 9024 expect(list.rightDelimiter, isNull);
8926 expect(list.rightParenthesis, isNotNull); 9025 expect(list.rightParenthesis, isNotNull);
(...skipping 2753 matching lines...) Expand 10 before | Expand all | Expand 10 after
11680 RedirectingConstructorInvocation invocation = 11779 RedirectingConstructorInvocation invocation =
11681 parser.parseRedirectingConstructorInvocation(false); 11780 parser.parseRedirectingConstructorInvocation(false);
11682 expectNotNullIfNoErrors(invocation); 11781 expectNotNullIfNoErrors(invocation);
11683 listener.assertNoErrors(); 11782 listener.assertNoErrors();
11684 expect(invocation.argumentList, isNotNull); 11783 expect(invocation.argumentList, isNotNull);
11685 expect(invocation.constructorName, isNull); 11784 expect(invocation.constructorName, isNull);
11686 expect(invocation.thisKeyword, isNotNull); 11785 expect(invocation.thisKeyword, isNotNull);
11687 expect(invocation.period, isNull); 11786 expect(invocation.period, isNull);
11688 } 11787 }
11689 11788
11690 void test_parseRelationalExpression_as() { 11789 void test_parseRelationalExpression_as_functionType_noReturnType() {
11691 createParser('x as Y'); 11790 createParser('x as Function(int)');
11692 Expression expression = parser.parseRelationalExpression(); 11791 Expression expression = parser.parseRelationalExpression();
11693 expectNotNullIfNoErrors(expression); 11792 expectNotNullIfNoErrors(expression);
11694 listener.assertNoErrors(); 11793 listener.assertNoErrors();
11794 expect(expression, new isInstanceOf<AsExpression>());
11795 AsExpression asExpression = expression;
11796 expect(asExpression.expression, isNotNull);
11797 expect(asExpression.asOperator, isNotNull);
11798 expect(asExpression.type, new isInstanceOf<GenericFunctionType>());
11799 }
11800
11801 void test_parseRelationalExpression_as_functionType_returnType() {
11802 createParser('x as String Function(int)');
11803 Expression expression = parser.parseRelationalExpression();
11804 expectNotNullIfNoErrors(expression);
11805 listener.assertNoErrors();
11806 expect(expression, new isInstanceOf<AsExpression>());
11807 AsExpression asExpression = expression;
11808 expect(asExpression.expression, isNotNull);
11809 expect(asExpression.asOperator, isNotNull);
11810 expect(asExpression.type, new isInstanceOf<GenericFunctionType>());
11811 }
11812
11813 void test_parseRelationalExpression_as_generic() {
11814 createParser('x as C<D>');
11815 Expression expression = parser.parseRelationalExpression();
11816 expectNotNullIfNoErrors(expression);
11817 listener.assertNoErrors();
11695 expect(expression, new isInstanceOf<AsExpression>()); 11818 expect(expression, new isInstanceOf<AsExpression>());
11696 AsExpression asExpression = expression; 11819 AsExpression asExpression = expression;
11697 expect(asExpression.expression, isNotNull); 11820 expect(asExpression.expression, isNotNull);
11698 expect(asExpression.asOperator, isNotNull); 11821 expect(asExpression.asOperator, isNotNull);
11699 expect(asExpression.type, isNotNull); 11822 expect(asExpression.type, new isInstanceOf<TypeName>());
11700 } 11823 }
11701 11824
11702 void test_parseRelationalExpression_as_nullable() { 11825 void test_parseRelationalExpression_as_nullable() {
11703 enableNnbd = true; 11826 enableNnbd = true;
11704 createParser('x as Y?)'); 11827 createParser('x as Y?)');
11705 Expression expression = parser.parseRelationalExpression(); 11828 Expression expression = parser.parseRelationalExpression();
11706 expectNotNullIfNoErrors(expression); 11829 expectNotNullIfNoErrors(expression);
11707 listener.assertNoErrors(); 11830 listener.assertNoErrors();
11708 expect(expression, new isInstanceOf<AsExpression>()); 11831 expect(expression, new isInstanceOf<AsExpression>());
11709 AsExpression asExpression = expression; 11832 AsExpression asExpression = expression;
11710 expect(asExpression.expression, isNotNull); 11833 expect(asExpression.expression, isNotNull);
11711 expect(asExpression.asOperator, isNotNull); 11834 expect(asExpression.asOperator, isNotNull);
11712 expect(asExpression.type, isNotNull); 11835 expect(asExpression.type, new isInstanceOf<TypeName>());
11836 }
11837
11838 void test_parseRelationalExpression_as_simple() {
11839 createParser('x as Y');
11840 Expression expression = parser.parseRelationalExpression();
11841 expectNotNullIfNoErrors(expression);
11842 listener.assertNoErrors();
11843 expect(expression, new isInstanceOf<AsExpression>());
11844 AsExpression asExpression = expression;
11845 expect(asExpression.expression, isNotNull);
11846 expect(asExpression.asOperator, isNotNull);
11847 expect(asExpression.type, new isInstanceOf<TypeName>());
11848 }
11849
11850 void test_parseRelationalExpression_as_simple_function() {
11851 createParser('x as Function');
11852 Expression expression = parser.parseRelationalExpression();
11853 expectNotNullIfNoErrors(expression);
11854 listener.assertNoErrors();
11855 expect(expression, new isInstanceOf<AsExpression>());
11856 AsExpression asExpression = expression;
11857 expect(asExpression.expression, isNotNull);
11858 expect(asExpression.asOperator, isNotNull);
11859 expect(asExpression.type, new isInstanceOf<TypeName>());
11713 } 11860 }
11714 11861
11715 void test_parseRelationalExpression_is() { 11862 void test_parseRelationalExpression_is() {
11716 createParser('x is y'); 11863 createParser('x is y');
11717 Expression expression = parser.parseRelationalExpression(); 11864 Expression expression = parser.parseRelationalExpression();
11718 expectNotNullIfNoErrors(expression); 11865 expectNotNullIfNoErrors(expression);
11719 listener.assertNoErrors(); 11866 listener.assertNoErrors();
11720 expect(expression, new isInstanceOf<IsExpression>()); 11867 expect(expression, new isInstanceOf<IsExpression>());
11721 IsExpression isExpression = expression; 11868 IsExpression isExpression = expression;
11722 expect(isExpression.expression, isNotNull); 11869 expect(isExpression.expression, isNotNull);
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
11799 void test_parseReturnStatement_value() { 11946 void test_parseReturnStatement_value() {
11800 createParser('return x;'); 11947 createParser('return x;');
11801 ReturnStatement statement = parser.parseReturnStatement(); 11948 ReturnStatement statement = parser.parseReturnStatement();
11802 expectNotNullIfNoErrors(statement); 11949 expectNotNullIfNoErrors(statement);
11803 listener.assertNoErrors(); 11950 listener.assertNoErrors();
11804 expect(statement.returnKeyword, isNotNull); 11951 expect(statement.returnKeyword, isNotNull);
11805 expect(statement.expression, isNotNull); 11952 expect(statement.expression, isNotNull);
11806 expect(statement.semicolon, isNotNull); 11953 expect(statement.semicolon, isNotNull);
11807 } 11954 }
11808 11955
11809 void test_parseReturnType_nonVoid() { 11956 void test_parseReturnType_function() {
11957 createParser('A<B> Function<B>(B)');
11958 GenericFunctionType type = parser.parseReturnType(false);
11959 expectNotNullIfNoErrors(type);
11960 listener.assertNoErrors();
11961 expect(type.returnType, isNotNull);
11962 expect(type.typeParameters, isNotNull);
11963 expect(type.parameters, isNotNull);
11964 }
11965
11966 void test_parseReturnType_named() {
11810 createParser('A<B>'); 11967 createParser('A<B>');
11811 TypeName typeName = parser.parseReturnType(); 11968 TypeName typeName = parser.parseReturnType(false);
11812 expectNotNullIfNoErrors(typeName); 11969 expectNotNullIfNoErrors(typeName);
11813 listener.assertNoErrors(); 11970 listener.assertNoErrors();
11814 expect(typeName.name, isNotNull); 11971 expect(typeName.name, isNotNull);
11815 expect(typeName.typeArguments, isNotNull); 11972 expect(typeName.typeArguments, isNotNull);
11816 } 11973 }
11817 11974
11818 void test_parseReturnType_void() { 11975 void test_parseReturnType_void() {
11819 createParser('void'); 11976 createParser('void');
11820 TypeName typeName = parser.parseReturnType(); 11977 TypeName typeName = parser.parseReturnType(false);
11821 expectNotNullIfNoErrors(typeName); 11978 expectNotNullIfNoErrors(typeName);
11822 listener.assertNoErrors(); 11979 listener.assertNoErrors();
11823 expect(typeName.name, isNotNull); 11980 expect(typeName.name, isNotNull);
11824 expect(typeName.typeArguments, isNull); 11981 expect(typeName.typeArguments, isNull);
11825 } 11982 }
11826 11983
11827 void test_parseSetter_nonStatic() { 11984 void test_parseSetter_nonStatic() {
11828 Comment comment = astFactory.documentationComment(new List<Token>(0)); 11985 Comment comment = astFactory.documentationComment(new List<Token>(0));
11829 TypeName returnType = 11986 TypeName returnType =
11830 astFactory.typeName(astFactory.simpleIdentifier(null), null); 11987 astFactory.typeName(astFactory.simpleIdentifier(null), null);
(...skipping 1091 matching lines...) Expand 10 before | Expand all | Expand 10 after
12922 expect(typeAlias.semicolon, isNotNull); 13079 expect(typeAlias.semicolon, isNotNull);
12923 GenericFunctionType functionType = typeAlias.functionType; 13080 GenericFunctionType functionType = typeAlias.functionType;
12924 expect(functionType, isNotNull); 13081 expect(functionType, isNotNull);
12925 expect(functionType.parameters, isNotNull); 13082 expect(functionType.parameters, isNotNull);
12926 expect(functionType.returnType, isNotNull); 13083 expect(functionType.returnType, isNotNull);
12927 expect(functionType.typeParameters, isNull); 13084 expect(functionType.typeParameters, isNull);
12928 } 13085 }
12929 13086
12930 void test_parseTypeAnnotation_function_noReturnType_noParameters() { 13087 void test_parseTypeAnnotation_function_noReturnType_noParameters() {
12931 createParser('Function() v'); 13088 createParser('Function() v');
12932 GenericFunctionType functionType = parser.parseTypeAnnotation(); 13089 GenericFunctionType functionType = parser.parseTypeAnnotation(false);
12933 expectNotNullIfNoErrors(functionType); 13090 expectNotNullIfNoErrors(functionType);
12934 listener.assertNoErrors(); 13091 listener.assertNoErrors();
12935 expect(functionType.returnType, isNull); 13092 expect(functionType.returnType, isNull);
12936 expect(functionType.functionKeyword, isNotNull); 13093 expect(functionType.functionKeyword, isNotNull);
12937 expect(functionType.typeParameters, isNull); 13094 expect(functionType.typeParameters, isNull);
12938 FormalParameterList parameterList = functionType.parameters; 13095 FormalParameterList parameterList = functionType.parameters;
12939 expect(parameterList, isNotNull); 13096 expect(parameterList, isNotNull);
12940 expect(parameterList.parameters, hasLength(0)); 13097 expect(parameterList.parameters, hasLength(0));
12941 } 13098 }
12942 13099
12943 void test_parseTypeAnnotation_function_noReturnType_parameters() { 13100 void test_parseTypeAnnotation_function_noReturnType_parameters() {
12944 createParser('Function(int, int) v'); 13101 createParser('Function(int, int) v');
12945 GenericFunctionType functionType = parser.parseTypeAnnotation(); 13102 GenericFunctionType functionType = parser.parseTypeAnnotation(false);
12946 expectNotNullIfNoErrors(functionType); 13103 expectNotNullIfNoErrors(functionType);
12947 listener.assertNoErrors(); 13104 listener.assertNoErrors();
12948 expect(functionType.returnType, isNull); 13105 expect(functionType.returnType, isNull);
12949 expect(functionType.functionKeyword, isNotNull); 13106 expect(functionType.functionKeyword, isNotNull);
12950 expect(functionType.typeParameters, isNull); 13107 expect(functionType.typeParameters, isNull);
12951 FormalParameterList parameterList = functionType.parameters; 13108 FormalParameterList parameterList = functionType.parameters;
12952 expect(parameterList, isNotNull); 13109 expect(parameterList, isNotNull);
12953 NodeList<FormalParameter> parameters = parameterList.parameters; 13110 NodeList<FormalParameter> parameters = parameterList.parameters;
12954 expect(parameters, hasLength(2)); 13111 expect(parameters, hasLength(2));
12955 13112
12956 expect(parameters[0], new isInstanceOf<SimpleFormalParameter>()); 13113 expect(parameters[0], new isInstanceOf<SimpleFormalParameter>());
12957 SimpleFormalParameter parameter = parameters[0]; 13114 SimpleFormalParameter parameter = parameters[0];
12958 expect(parameter.identifier, isNull); 13115 expect(parameter.identifier, isNull);
12959 expect(parameter.type, new isInstanceOf<TypeName>()); 13116 expect(parameter.type, new isInstanceOf<TypeName>());
12960 expect((parameter.type as TypeName).name.name, 'int'); 13117 expect((parameter.type as TypeName).name.name, 'int');
12961 13118
12962 expect(parameters[1], new isInstanceOf<SimpleFormalParameter>()); 13119 expect(parameters[1], new isInstanceOf<SimpleFormalParameter>());
12963 parameter = parameters[1]; 13120 parameter = parameters[1];
12964 expect(parameter.identifier, isNull); 13121 expect(parameter.identifier, isNull);
12965 expect(parameter.type, new isInstanceOf<TypeName>()); 13122 expect(parameter.type, new isInstanceOf<TypeName>());
12966 expect((parameter.type as TypeName).name.name, 'int'); 13123 expect((parameter.type as TypeName).name.name, 'int');
12967 } 13124 }
12968 13125
12969 void test_parseTypeAnnotation_function_noReturnType_typeParameters() { 13126 void test_parseTypeAnnotation_function_noReturnType_typeParameters() {
12970 createParser('Function<S, T>()'); 13127 createParser('Function<S, T>()');
12971 GenericFunctionType functionType = parser.parseTypeAnnotation(); 13128 GenericFunctionType functionType = parser.parseTypeAnnotation(false);
12972 expectNotNullIfNoErrors(functionType); 13129 expectNotNullIfNoErrors(functionType);
12973 listener.assertNoErrors(); 13130 listener.assertNoErrors();
12974 expect(functionType.returnType, isNull); 13131 expect(functionType.returnType, isNull);
12975 expect(functionType.functionKeyword, isNotNull); 13132 expect(functionType.functionKeyword, isNotNull);
12976 TypeParameterList typeParameters = functionType.typeParameters; 13133 TypeParameterList typeParameters = functionType.typeParameters;
12977 expect(typeParameters, isNotNull); 13134 expect(typeParameters, isNotNull);
12978 expect(typeParameters.typeParameters, hasLength(2)); 13135 expect(typeParameters.typeParameters, hasLength(2));
12979 FormalParameterList parameterList = functionType.parameters; 13136 FormalParameterList parameterList = functionType.parameters;
12980 expect(parameterList, isNotNull); 13137 expect(parameterList, isNotNull);
12981 expect(parameterList.parameters, hasLength(0)); 13138 expect(parameterList.parameters, hasLength(0));
12982 } 13139 }
12983 13140
12984 void 13141 void
12985 test_parseTypeAnnotation_function_noReturnType_typeParameters_parameters() { 13142 test_parseTypeAnnotation_function_noReturnType_typeParameters_parameters() {
12986 createParser('Function<T>(String, {T t})'); 13143 createParser('Function<T>(String, {T t})');
12987 GenericFunctionType functionType = parser.parseTypeAnnotation(); 13144 GenericFunctionType functionType = parser.parseTypeAnnotation(false);
12988 expectNotNullIfNoErrors(functionType); 13145 expectNotNullIfNoErrors(functionType);
12989 listener.assertNoErrors(); 13146 listener.assertNoErrors();
12990 expect(functionType.returnType, isNull); 13147 expect(functionType.returnType, isNull);
12991 expect(functionType.functionKeyword, isNotNull); 13148 expect(functionType.functionKeyword, isNotNull);
12992 TypeParameterList typeParameters = functionType.typeParameters; 13149 TypeParameterList typeParameters = functionType.typeParameters;
12993 expect(typeParameters, isNotNull); 13150 expect(typeParameters, isNotNull);
12994 expect(typeParameters.typeParameters, hasLength(1)); 13151 expect(typeParameters.typeParameters, hasLength(1));
12995 FormalParameterList parameterList = functionType.parameters; 13152 FormalParameterList parameterList = functionType.parameters;
12996 expect(parameterList, isNotNull); 13153 expect(parameterList, isNotNull);
12997 expect(parameterList.parameters, hasLength(2)); 13154 expect(parameterList.parameters, hasLength(2));
12998 } 13155 }
12999 13156
13157 void test_parseTypeAnnotation_function_returnType_classFunction() {
13158 createParser('Function v');
13159 TypeName functionType = parser.parseTypeAnnotation(false);
13160 expectNotNullIfNoErrors(functionType);
13161 listener.assertNoErrors();
13162 }
13163
13000 void test_parseTypeAnnotation_function_returnType_function() { 13164 void test_parseTypeAnnotation_function_returnType_function() {
13001 createParser('A Function(B, C) Function(D) v'); 13165 createParser('A Function(B, C) Function(D) v');
13002 GenericFunctionType functionType = parser.parseTypeAnnotation(); 13166 GenericFunctionType functionType = parser.parseTypeAnnotation(false);
13003 expectNotNullIfNoErrors(functionType); 13167 expectNotNullIfNoErrors(functionType);
13004 listener.assertNoErrors(); 13168 listener.assertNoErrors();
13005 } 13169 }
13006 13170
13007 void test_parseTypeAnnotation_function_returnType_noParameters() { 13171 void test_parseTypeAnnotation_function_returnType_noParameters() {
13008 createParser('List<int> Function()'); 13172 createParser('List<int> Function()');
13009 GenericFunctionType functionType = parser.parseTypeAnnotation(); 13173 GenericFunctionType functionType = parser.parseTypeAnnotation(false);
13010 expectNotNullIfNoErrors(functionType); 13174 expectNotNullIfNoErrors(functionType);
13011 listener.assertNoErrors(); 13175 listener.assertNoErrors();
13012 expect(functionType.returnType, isNotNull); 13176 expect(functionType.returnType, isNotNull);
13013 expect(functionType.functionKeyword, isNotNull); 13177 expect(functionType.functionKeyword, isNotNull);
13014 expect(functionType.typeParameters, isNull); 13178 expect(functionType.typeParameters, isNull);
13015 FormalParameterList parameterList = functionType.parameters; 13179 FormalParameterList parameterList = functionType.parameters;
13016 expect(parameterList, isNotNull); 13180 expect(parameterList, isNotNull);
13017 expect(parameterList.parameters, hasLength(0)); 13181 expect(parameterList.parameters, hasLength(0));
13018 } 13182 }
13019 13183
13020 void test_parseTypeAnnotation_function_returnType_parameters() { 13184 void test_parseTypeAnnotation_function_returnType_parameters() {
13021 createParser('List<int> Function(String s, int i)'); 13185 createParser('List<int> Function(String s, int i)');
13022 GenericFunctionType functionType = parser.parseTypeAnnotation(); 13186 GenericFunctionType functionType = parser.parseTypeAnnotation(false);
13023 expectNotNullIfNoErrors(functionType); 13187 expectNotNullIfNoErrors(functionType);
13024 listener.assertNoErrors(); 13188 listener.assertNoErrors();
13025 expect(functionType.returnType, isNotNull); 13189 expect(functionType.returnType, isNotNull);
13026 expect(functionType.functionKeyword, isNotNull); 13190 expect(functionType.functionKeyword, isNotNull);
13027 expect(functionType.typeParameters, isNull); 13191 expect(functionType.typeParameters, isNull);
13028 FormalParameterList parameterList = functionType.parameters; 13192 FormalParameterList parameterList = functionType.parameters;
13029 expect(parameterList, isNotNull); 13193 expect(parameterList, isNotNull);
13030 NodeList<FormalParameter> parameters = parameterList.parameters; 13194 NodeList<FormalParameter> parameters = parameterList.parameters;
13031 expect(parameters, hasLength(2)); 13195 expect(parameters, hasLength(2));
13032 13196
13033 expect(parameters[0], new isInstanceOf<SimpleFormalParameter>()); 13197 expect(parameters[0], new isInstanceOf<SimpleFormalParameter>());
13034 SimpleFormalParameter parameter = parameters[0]; 13198 SimpleFormalParameter parameter = parameters[0];
13035 expect(parameter.identifier, isNotNull); 13199 expect(parameter.identifier, isNotNull);
13036 expect(parameter.identifier.name, 's'); 13200 expect(parameter.identifier.name, 's');
13037 expect(parameter.type, new isInstanceOf<TypeName>()); 13201 expect(parameter.type, new isInstanceOf<TypeName>());
13038 expect((parameter.type as TypeName).name.name, 'String'); 13202 expect((parameter.type as TypeName).name.name, 'String');
13039 13203
13040 expect(parameters[1], new isInstanceOf<SimpleFormalParameter>()); 13204 expect(parameters[1], new isInstanceOf<SimpleFormalParameter>());
13041 parameter = parameters[1]; 13205 parameter = parameters[1];
13042 expect(parameter.identifier, isNotNull); 13206 expect(parameter.identifier, isNotNull);
13043 expect(parameter.identifier.name, 'i'); 13207 expect(parameter.identifier.name, 'i');
13044 expect(parameter.type, new isInstanceOf<TypeName>()); 13208 expect(parameter.type, new isInstanceOf<TypeName>());
13045 expect((parameter.type as TypeName).name.name, 'int'); 13209 expect((parameter.type as TypeName).name.name, 'int');
13046 } 13210 }
13047 13211
13048 void test_parseTypeAnnotation_function_returnType_simple() { 13212 void test_parseTypeAnnotation_function_returnType_simple() {
13049 createParser('A Function(B, C) v'); 13213 createParser('A Function(B, C) v');
13050 GenericFunctionType functionType = parser.parseTypeAnnotation(); 13214 GenericFunctionType functionType = parser.parseTypeAnnotation(false);
13051 expectNotNullIfNoErrors(functionType); 13215 expectNotNullIfNoErrors(functionType);
13052 listener.assertNoErrors(); 13216 listener.assertNoErrors();
13053 } 13217 }
13054 13218
13055 void test_parseTypeAnnotation_function_returnType_typeParameters() { 13219 void test_parseTypeAnnotation_function_returnType_typeParameters() {
13056 createParser('List<T> Function<T>()'); 13220 createParser('List<T> Function<T>()');
13057 GenericFunctionType functionType = parser.parseTypeAnnotation(); 13221 GenericFunctionType functionType = parser.parseTypeAnnotation(false);
13058 expectNotNullIfNoErrors(functionType); 13222 expectNotNullIfNoErrors(functionType);
13059 listener.assertNoErrors(); 13223 listener.assertNoErrors();
13060 expect(functionType.returnType, isNotNull); 13224 expect(functionType.returnType, isNotNull);
13061 expect(functionType.functionKeyword, isNotNull); 13225 expect(functionType.functionKeyword, isNotNull);
13062 TypeParameterList typeParameters = functionType.typeParameters; 13226 TypeParameterList typeParameters = functionType.typeParameters;
13063 expect(typeParameters, isNotNull); 13227 expect(typeParameters, isNotNull);
13064 expect(typeParameters.typeParameters, hasLength(1)); 13228 expect(typeParameters.typeParameters, hasLength(1));
13065 FormalParameterList parameterList = functionType.parameters; 13229 FormalParameterList parameterList = functionType.parameters;
13066 expect(parameterList, isNotNull); 13230 expect(parameterList, isNotNull);
13067 expect(parameterList.parameters, hasLength(0)); 13231 expect(parameterList.parameters, hasLength(0));
13068 } 13232 }
13069 13233
13070 void 13234 void
13071 test_parseTypeAnnotation_function_returnType_typeParameters_parameters() { 13235 test_parseTypeAnnotation_function_returnType_typeParameters_parameters() {
13072 createParser('List<T> Function<T>(String s, [T])'); 13236 createParser('List<T> Function<T>(String s, [T])');
13073 GenericFunctionType functionType = parser.parseTypeAnnotation(); 13237 GenericFunctionType functionType = parser.parseTypeAnnotation(false);
13074 expectNotNullIfNoErrors(functionType); 13238 expectNotNullIfNoErrors(functionType);
13075 listener.assertNoErrors(); 13239 listener.assertNoErrors();
13076 expect(functionType.returnType, isNotNull); 13240 expect(functionType.returnType, isNotNull);
13077 expect(functionType.functionKeyword, isNotNull); 13241 expect(functionType.functionKeyword, isNotNull);
13078 TypeParameterList typeParameters = functionType.typeParameters; 13242 TypeParameterList typeParameters = functionType.typeParameters;
13079 expect(typeParameters, isNotNull); 13243 expect(typeParameters, isNotNull);
13080 expect(typeParameters.typeParameters, hasLength(1)); 13244 expect(typeParameters.typeParameters, hasLength(1));
13081 FormalParameterList parameterList = functionType.parameters; 13245 FormalParameterList parameterList = functionType.parameters;
13082 expect(parameterList, isNotNull); 13246 expect(parameterList, isNotNull);
13083 expect(parameterList.parameters, hasLength(2)); 13247 expect(parameterList.parameters, hasLength(2));
13084 } 13248 }
13085 13249
13086 void test_parseTypeAnnotation_function_returnType_withArguments() { 13250 void test_parseTypeAnnotation_function_returnType_withArguments() {
13087 createParser('A<B> Function(C) v'); 13251 createParser('A<B> Function(C) v');
13088 GenericFunctionType functionType = parser.parseTypeAnnotation(); 13252 GenericFunctionType functionType = parser.parseTypeAnnotation(false);
13089 expectNotNullIfNoErrors(functionType); 13253 expectNotNullIfNoErrors(functionType);
13090 listener.assertNoErrors(); 13254 listener.assertNoErrors();
13091 } 13255 }
13092 13256
13093 void test_parseTypeAnnotation_named() { 13257 void test_parseTypeAnnotation_named() {
13094 createParser('A<B> v'); 13258 createParser('A<B> v');
13095 TypeName typeName = parser.parseTypeAnnotation(); 13259 TypeName typeName = parser.parseTypeAnnotation(false);
13096 expectNotNullIfNoErrors(typeName); 13260 expectNotNullIfNoErrors(typeName);
13097 listener.assertNoErrors(); 13261 listener.assertNoErrors();
13098 } 13262 }
13099 13263
13100 void test_parseTypeArgumentList_empty() { 13264 void test_parseTypeArgumentList_empty() {
13101 createParser('<>'); 13265 createParser('<>');
13102 TypeArgumentList argumentList = parser.parseTypeArgumentList(); 13266 TypeArgumentList argumentList = parser.parseTypeArgumentList();
13103 expectNotNullIfNoErrors(argumentList); 13267 expectNotNullIfNoErrors(argumentList);
13104 listener.assertErrorsWithCodes([ParserErrorCode.EXPECTED_TYPE_NAME]); 13268 listener.assertErrorsWithCodes([ParserErrorCode.EXPECTED_TYPE_NAME]);
13105 expect(argumentList.leftBracket, isNotNull); 13269 expect(argumentList.leftBracket, isNotNull);
(...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after
13226 enableNnbd = true; 13390 enableNnbd = true;
13227 createParser('String?'); 13391 createParser('String?');
13228 TypeName typeName = parser.parseTypeName(false); 13392 TypeName typeName = parser.parseTypeName(false);
13229 expectNotNullIfNoErrors(typeName); 13393 expectNotNullIfNoErrors(typeName);
13230 listener.assertNoErrors(); 13394 listener.assertNoErrors();
13231 expect(typeName.name, isNotNull); 13395 expect(typeName.name, isNotNull);
13232 expect(typeName.typeArguments, isNull); 13396 expect(typeName.typeArguments, isNull);
13233 expect(typeName.question, isNotNull); 13397 expect(typeName.question, isNotNull);
13234 } 13398 }
13235 13399
13236 void test_parseTypeParameter_bounded() { 13400 void test_parseTypeParameter_bounded_functionType_noReturn() {
13237 createParser('A extends B'); 13401 createParser('A extends Function(int)');
13238 TypeParameter parameter = parser.parseTypeParameter(); 13402 TypeParameter parameter = parser.parseTypeParameter();
13239 expectNotNullIfNoErrors(parameter); 13403 expectNotNullIfNoErrors(parameter);
13240 listener.assertNoErrors(); 13404 listener.assertNoErrors();
13241 expect(parameter.bound, isNotNull); 13405 expect(parameter.bound, new isInstanceOf<GenericFunctionType>());
13242 expect(parameter.extendsKeyword, isNotNull); 13406 expect(parameter.extendsKeyword, isNotNull);
13243 expect(parameter.name, isNotNull); 13407 expect(parameter.name, isNotNull);
13244 } 13408 }
13409
13410 void test_parseTypeParameter_bounded_functionType_return() {
13411 createParser('A extends String Function(int)');
13412 TypeParameter parameter = parser.parseTypeParameter();
13413 expectNotNullIfNoErrors(parameter);
13414 listener.assertNoErrors();
13415 expect(parameter.bound, new isInstanceOf<GenericFunctionType>());
13416 expect(parameter.extendsKeyword, isNotNull);
13417 expect(parameter.name, isNotNull);
13418 }
13419
13420 void test_parseTypeParameter_bounded_generic() {
13421 createParser('A extends B<C>');
13422 TypeParameter parameter = parser.parseTypeParameter();
13423 expectNotNullIfNoErrors(parameter);
13424 listener.assertNoErrors();
13425 expect(parameter.bound, new isInstanceOf<TypeName>());
13426 expect(parameter.extendsKeyword, isNotNull);
13427 expect(parameter.name, isNotNull);
13428 }
13245 13429
13246 void test_parseTypeParameter_bounded_nullable() { 13430 void test_parseTypeParameter_bounded_nullable() {
13247 enableNnbd = true; 13431 enableNnbd = true;
13248 createParser('A extends B?'); 13432 createParser('A extends B?');
13249 TypeParameter parameter = parser.parseTypeParameter(); 13433 TypeParameter parameter = parser.parseTypeParameter();
13250 expectNotNullIfNoErrors(parameter); 13434 expectNotNullIfNoErrors(parameter);
13251 listener.assertNoErrors(); 13435 listener.assertNoErrors();
13252 expect(parameter.bound, isNotNull); 13436 expect(parameter.bound, new isInstanceOf<TypeName>());
13253 expect(parameter.extendsKeyword, isNotNull); 13437 expect(parameter.extendsKeyword, isNotNull);
13254 expect(parameter.name, isNotNull); 13438 expect(parameter.name, isNotNull);
13255 TypeName bound = parameter.bound; 13439 TypeName bound = parameter.bound;
13256 expect(bound, isNotNull); 13440 expect(bound, isNotNull);
13257 expect(bound.question, isNotNull); 13441 expect(bound.question, isNotNull);
13258 } 13442 }
13259 13443
13444 void test_parseTypeParameter_bounded_simple() {
13445 createParser('A extends B');
13446 TypeParameter parameter = parser.parseTypeParameter();
13447 expectNotNullIfNoErrors(parameter);
13448 listener.assertNoErrors();
13449 expect(parameter.bound, new isInstanceOf<TypeName>());
13450 expect(parameter.extendsKeyword, isNotNull);
13451 expect(parameter.name, isNotNull);
13452 }
13453
13260 void test_parseTypeParameter_simple() { 13454 void test_parseTypeParameter_simple() {
13261 createParser('A'); 13455 createParser('A');
13262 TypeParameter parameter = parser.parseTypeParameter(); 13456 TypeParameter parameter = parser.parseTypeParameter();
13263 expectNotNullIfNoErrors(parameter); 13457 expectNotNullIfNoErrors(parameter);
13264 listener.assertNoErrors(); 13458 listener.assertNoErrors();
13265 expect(parameter.bound, isNull); 13459 expect(parameter.bound, isNull);
13266 expect(parameter.extendsKeyword, isNull); 13460 expect(parameter.extendsKeyword, isNull);
13267 expect(parameter.name, isNotNull); 13461 expect(parameter.name, isNotNull);
13268 } 13462 }
13269 13463
(...skipping 648 matching lines...) Expand 10 before | Expand all | Expand 10 after
13918 CompilationUnit _parseDirectives(String source, 14112 CompilationUnit _parseDirectives(String source,
13919 [List<ErrorCode> errorCodes = const <ErrorCode>[]]) { 14113 [List<ErrorCode> errorCodes = const <ErrorCode>[]]) {
13920 createParser(source); 14114 createParser(source);
13921 CompilationUnit unit = parser.parseDirectives2(); 14115 CompilationUnit unit = parser.parseDirectives2();
13922 expect(unit, isNotNull); 14116 expect(unit, isNotNull);
13923 expect(unit.declarations, hasLength(0)); 14117 expect(unit.declarations, hasLength(0));
13924 listener.assertErrorsWithCodes(errorCodes); 14118 listener.assertErrorsWithCodes(errorCodes);
13925 return unit; 14119 return unit;
13926 } 14120 }
13927 } 14121 }
OLDNEW
« no previous file with comments | « pkg/analyzer/lib/src/generated/parser.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698