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

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

Issue 2639883005: Add parser support for covariant parameters (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') | pkg/front_end/lib/src/scanner/token.dart » ('j') | 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 715 matching lines...) Expand 10 before | Expand all | Expand 10 after
726 expectNotNullIfNoErrors(member); 726 expectNotNullIfNoErrors(member);
727 listener.assertErrorsWithCodes( 727 listener.assertErrorsWithCodes(
728 [ParserErrorCode.EXPECTED_TOKEN, ParserErrorCode.EXPECTED_TOKEN]); 728 [ParserErrorCode.EXPECTED_TOKEN, ParserErrorCode.EXPECTED_TOKEN]);
729 } 729 }
730 730
731 void test_colonInPlaceOfIn() { 731 void test_colonInPlaceOfIn() {
732 ParserTestCase.parseStatement( 732 ParserTestCase.parseStatement(
733 "for (var x : list) {}", [ParserErrorCode.COLON_IN_PLACE_OF_IN]); 733 "for (var x : list) {}", [ParserErrorCode.COLON_IN_PLACE_OF_IN]);
734 } 734 }
735 735
736 void test_constAndCovariant() {
737 createParser('covariant const C f;');
738 ClassMember member = parser.parseClassMember('C');
739 expectNotNullIfNoErrors(member);
740 listener.assertErrorsWithCodes([ParserErrorCode.CONST_AND_COVARIANT]);
741 }
742
736 void test_constAndFinal() { 743 void test_constAndFinal() {
737 createParser('const final int x;'); 744 createParser('const final int x;');
738 ClassMember member = parser.parseClassMember('C'); 745 ClassMember member = parser.parseClassMember('C');
739 expectNotNullIfNoErrors(member); 746 expectNotNullIfNoErrors(member);
740 listener.assertErrorsWithCodes([ParserErrorCode.CONST_AND_FINAL]); 747 listener.assertErrorsWithCodes([ParserErrorCode.CONST_AND_FINAL]);
741 } 748 }
742 749
743 void test_constAndVar() { 750 void test_constAndVar() {
744 createParser('const var x;'); 751 createParser('const var x;');
745 ClassMember member = parser.parseClassMember('C'); 752 ClassMember member = parser.parseClassMember('C');
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after
859 listener.assertNoErrors(); 866 listener.assertNoErrors();
860 } 867 }
861 868
862 void test_continueWithoutLabelInCase_noError_switchInLoop() { 869 void test_continueWithoutLabelInCase_noError_switchInLoop() {
863 createParser('while (a) { switch (b) {default: continue;}}'); 870 createParser('while (a) { switch (b) {default: continue;}}');
864 WhileStatement statement = parser.parseWhileStatement(); 871 WhileStatement statement = parser.parseWhileStatement();
865 expectNotNullIfNoErrors(statement); 872 expectNotNullIfNoErrors(statement);
866 listener.assertNoErrors(); 873 listener.assertNoErrors();
867 } 874 }
868 875
876 void test_covariantAfterVar() {
877 createParser('var covariant f;');
878 ClassMember member = parser.parseClassMember('C');
879 expectNotNullIfNoErrors(member);
880 listener.assertErrorsWithCodes([ParserErrorCode.COVARIANT_AFTER_VAR]);
881 }
882
883 void test_covariantAndStatic() {
884 createParser('covariant static A f;');
885 ClassMember member = parser.parseClassMember('C');
886 expectNotNullIfNoErrors(member);
887 listener.assertErrorsWithCodes([ParserErrorCode.COVARIANT_AND_STATIC]);
888 }
889
890 void test_covariantConstructor() {
891 createParser('class C { covariant C(); }');
892 ClassDeclaration member =
893 parser.parseCompilationUnitMember(emptyCommentAndMetadata());
894 expectNotNullIfNoErrors(member);
895 listener.assertErrorsWithCodes([ParserErrorCode.COVARIANT_CONSTRUCTOR]);
896 }
897
898 void test_covariantTopLevelDeclaration_class() {
899 createParser('covariant class C {}');
900 ClassDeclaration member =
901 parser.parseCompilationUnitMember(emptyCommentAndMetadata());
902 expectNotNullIfNoErrors(member);
903 listener.assertErrorsWithCodes(
904 [ParserErrorCode.COVARIANT_TOP_LEVEL_DECLARATION]);
905 }
906
907 void test_covariantTopLevelDeclaration_enum() {
908 createParser('covariant enum E { v }');
909 EnumDeclaration member =
910 parser.parseCompilationUnitMember(emptyCommentAndMetadata());
911 expectNotNullIfNoErrors(member);
912 listener.assertErrorsWithCodes(
913 [ParserErrorCode.COVARIANT_TOP_LEVEL_DECLARATION]);
914 }
915
916 void test_covariantTopLevelDeclaration_typedef() {
917 ParserTestCase.parseCompilationUnit("covariant typedef F();",
918 [ParserErrorCode.COVARIANT_TOP_LEVEL_DECLARATION]);
919 }
920
869 void test_defaultValueInFunctionType_named_colon() { 921 void test_defaultValueInFunctionType_named_colon() {
870 createParser('int x : 0'); 922 createParser('int x : 0');
871 FormalParameter parameter = 923 FormalParameter parameter =
872 parser.parseFormalParameter(ParameterKind.NAMED, inFunctionType: true); 924 parser.parseFormalParameter(ParameterKind.NAMED, inFunctionType: true);
873 expectNotNullIfNoErrors(parameter); 925 expectNotNullIfNoErrors(parameter);
874 listener.assertErrorsWithCodes( 926 listener.assertErrorsWithCodes(
875 [ParserErrorCode.DEFAULT_VALUE_IN_FUNCTION_TYPE]); 927 [ParserErrorCode.DEFAULT_VALUE_IN_FUNCTION_TYPE]);
876 } 928 }
877 929
878 void test_defaultValueInFunctionType_named_equal() { 930 void test_defaultValueInFunctionType_named_equal() {
(...skipping 425 matching lines...) Expand 10 before | Expand all | Expand 10 after
1304 FormalParameterList list = parser.parseFormalParameterList(); 1356 FormalParameterList list = parser.parseFormalParameterList();
1305 expectNotNullIfNoErrors(list); 1357 expectNotNullIfNoErrors(list);
1306 listener.assertErrorsWithCodes([ParserErrorCode.MISSING_IDENTIFIER]); 1358 listener.assertErrorsWithCodes([ParserErrorCode.MISSING_IDENTIFIER]);
1307 } 1359 }
1308 1360
1309 void test_factoryTopLevelDeclaration_class() { 1361 void test_factoryTopLevelDeclaration_class() {
1310 ParserTestCase.parseCompilationUnit( 1362 ParserTestCase.parseCompilationUnit(
1311 "factory class C {}", [ParserErrorCode.FACTORY_TOP_LEVEL_DECLARATION]); 1363 "factory class C {}", [ParserErrorCode.FACTORY_TOP_LEVEL_DECLARATION]);
1312 } 1364 }
1313 1365
1366 void test_factoryTopLevelDeclaration_enum() {
1367 ParserTestCase.parseCompilationUnit("factory enum E { v }",
1368 [ParserErrorCode.FACTORY_TOP_LEVEL_DECLARATION]);
1369 }
1370
1314 void test_factoryTopLevelDeclaration_typedef() { 1371 void test_factoryTopLevelDeclaration_typedef() {
1315 ParserTestCase.parseCompilationUnit("factory typedef F();", 1372 ParserTestCase.parseCompilationUnit("factory typedef F();",
1316 [ParserErrorCode.FACTORY_TOP_LEVEL_DECLARATION]); 1373 [ParserErrorCode.FACTORY_TOP_LEVEL_DECLARATION]);
1317 } 1374 }
1318 1375
1319 void test_factoryWithInitializers() { 1376 void test_factoryWithInitializers() {
1320 createParser('factory C() : x = 3 {}'); 1377 createParser('factory C() : x = 3 {}');
1321 ClassMember member = parser.parseClassMember('C'); 1378 ClassMember member = parser.parseClassMember('C');
1322 expectNotNullIfNoErrors(member); 1379 expectNotNullIfNoErrors(member);
1323 listener.assertErrorsWithCodes([ParserErrorCode.FACTORY_WITH_INITIALIZERS]); 1380 listener.assertErrorsWithCodes([ParserErrorCode.FACTORY_WITH_INITIALIZERS]);
1324 } 1381 }
1325 1382
1326 void test_factoryWithoutBody() { 1383 void test_factoryWithoutBody() {
1327 createParser('factory C();'); 1384 createParser('factory C();');
1328 ClassMember member = parser.parseClassMember('C'); 1385 ClassMember member = parser.parseClassMember('C');
1329 expectNotNullIfNoErrors(member); 1386 expectNotNullIfNoErrors(member);
1330 listener.assertErrorsWithCodes([ParserErrorCode.FACTORY_WITHOUT_BODY]); 1387 listener.assertErrorsWithCodes([ParserErrorCode.FACTORY_WITHOUT_BODY]);
1331 } 1388 }
1332 1389
1333 void test_fieldInitializerOutsideConstructor() { 1390 void test_fieldInitializerOutsideConstructor() {
1334 createParser('void m(this.x);'); 1391 createParser('void m(this.x);');
1335 ClassMember member = parser.parseClassMember('C'); 1392 ClassMember member = parser.parseClassMember('C');
1336 expectNotNullIfNoErrors(member); 1393 expectNotNullIfNoErrors(member);
1337 listener.assertErrorsWithCodes( 1394 listener.assertErrorsWithCodes(
1338 [ParserErrorCode.FIELD_INITIALIZER_OUTSIDE_CONSTRUCTOR]); 1395 [ParserErrorCode.FIELD_INITIALIZER_OUTSIDE_CONSTRUCTOR]);
1339 } 1396 }
1340 1397
1398 void test_finalAndCovariant() {
1399 createParser('covariant final f;');
1400 ClassMember member = parser.parseClassMember('C');
1401 expectNotNullIfNoErrors(member);
1402 listener.assertErrorsWithCodes([ParserErrorCode.FINAL_AND_COVARIANT]);
1403 }
1404
1341 void test_finalAndVar() { 1405 void test_finalAndVar() {
1342 createParser('final var x;'); 1406 createParser('final var x;');
1343 ClassMember member = parser.parseClassMember('C'); 1407 ClassMember member = parser.parseClassMember('C');
1344 expectNotNullIfNoErrors(member); 1408 expectNotNullIfNoErrors(member);
1345 listener.assertErrorsWithCodes([ParserErrorCode.FINAL_AND_VAR]); 1409 listener.assertErrorsWithCodes([ParserErrorCode.FINAL_AND_VAR]);
1346 } 1410 }
1347 1411
1348 void test_finalClass() { 1412 void test_finalClass() {
1349 ParserTestCase.parseCompilationUnit( 1413 ParserTestCase.parseCompilationUnit(
1350 "final class C {}", [ParserErrorCode.FINAL_CLASS]); 1414 "final class C {}", [ParserErrorCode.FINAL_CLASS]);
(...skipping 1077 matching lines...) Expand 10 before | Expand all | Expand 10 after
2428 expectNotNullIfNoErrors(member); 2492 expectNotNullIfNoErrors(member);
2429 listener 2493 listener
2430 .assertErrorsWithCodes([ParserErrorCode.STATIC_SETTER_WITHOUT_BODY]); 2494 .assertErrorsWithCodes([ParserErrorCode.STATIC_SETTER_WITHOUT_BODY]);
2431 } 2495 }
2432 2496
2433 void test_staticTopLevelDeclaration_class() { 2497 void test_staticTopLevelDeclaration_class() {
2434 ParserTestCase.parseCompilationUnit( 2498 ParserTestCase.parseCompilationUnit(
2435 "static class C {}", [ParserErrorCode.STATIC_TOP_LEVEL_DECLARATION]); 2499 "static class C {}", [ParserErrorCode.STATIC_TOP_LEVEL_DECLARATION]);
2436 } 2500 }
2437 2501
2502 void test_staticTopLevelDeclaration_enum() {
2503 ParserTestCase.parseCompilationUnit(
2504 "static enum E { v }", [ParserErrorCode.STATIC_TOP_LEVEL_DECLARATION]);
2505 }
2506
2438 void test_staticTopLevelDeclaration_function() { 2507 void test_staticTopLevelDeclaration_function() {
2439 ParserTestCase.parseCompilationUnit( 2508 ParserTestCase.parseCompilationUnit(
2440 "static f() {}", [ParserErrorCode.STATIC_TOP_LEVEL_DECLARATION]); 2509 "static f() {}", [ParserErrorCode.STATIC_TOP_LEVEL_DECLARATION]);
2441 } 2510 }
2442 2511
2443 void test_staticTopLevelDeclaration_typedef() { 2512 void test_staticTopLevelDeclaration_typedef() {
2444 ParserTestCase.parseCompilationUnit( 2513 ParserTestCase.parseCompilationUnit(
2445 "static typedef F();", [ParserErrorCode.STATIC_TOP_LEVEL_DECLARATION]); 2514 "static typedef F();", [ParserErrorCode.STATIC_TOP_LEVEL_DECLARATION]);
2446 } 2515 }
2447 2516
(...skipping 3459 matching lines...) Expand 10 before | Expand all | Expand 10 after
5907 expect(constructor.externalKeyword, isNull); 5976 expect(constructor.externalKeyword, isNull);
5908 expect(constructor.constKeyword, isNull); 5977 expect(constructor.constKeyword, isNull);
5909 expect(constructor.factoryKeyword, isNull); 5978 expect(constructor.factoryKeyword, isNull);
5910 expect(constructor.name, isNull); 5979 expect(constructor.name, isNull);
5911 expect(constructor.parameters, isNotNull); 5980 expect(constructor.parameters, isNotNull);
5912 expect(constructor.period, isNull); 5981 expect(constructor.period, isNull);
5913 expect(constructor.returnType, isNotNull); 5982 expect(constructor.returnType, isNotNull);
5914 expect(constructor.initializers, hasLength(1)); 5983 expect(constructor.initializers, hasLength(1));
5915 } 5984 }
5916 5985
5986 void test_parseClassMember_field_covariant() {
5987 createParser('covariant T f;');
5988 ClassMember member = parser.parseClassMember('C');
5989 expectNotNullIfNoErrors(member);
5990 listener.assertNoErrors();
5991 expect(member, new isInstanceOf<FieldDeclaration>());
5992 FieldDeclaration field = member;
5993 expect(field.covariantKeyword, isNotNull);
5994 expect(field.documentationComment, isNull);
5995 expect(field.metadata, hasLength(0));
5996 expect(field.staticKeyword, isNull);
5997 VariableDeclarationList list = field.fields;
5998 expect(list, isNotNull);
5999 NodeList<VariableDeclaration> variables = list.variables;
6000 expect(variables, hasLength(1));
6001 VariableDeclaration variable = variables[0];
6002 expect(variable.name, isNotNull);
6003 }
6004
5917 void test_parseClassMember_field_instance_prefixedType() { 6005 void test_parseClassMember_field_instance_prefixedType() {
5918 createParser('p.A f;'); 6006 createParser('p.A f;');
5919 ClassMember member = parser.parseClassMember('C'); 6007 ClassMember member = parser.parseClassMember('C');
5920 expectNotNullIfNoErrors(member); 6008 expectNotNullIfNoErrors(member);
5921 listener.assertNoErrors(); 6009 listener.assertNoErrors();
5922 expect(member, new isInstanceOf<FieldDeclaration>()); 6010 expect(member, new isInstanceOf<FieldDeclaration>());
5923 FieldDeclaration field = member; 6011 FieldDeclaration field = member;
6012 expect(field.covariantKeyword, isNull);
5924 expect(field.documentationComment, isNull); 6013 expect(field.documentationComment, isNull);
5925 expect(field.metadata, hasLength(0)); 6014 expect(field.metadata, hasLength(0));
5926 expect(field.staticKeyword, isNull); 6015 expect(field.staticKeyword, isNull);
5927 VariableDeclarationList list = field.fields; 6016 VariableDeclarationList list = field.fields;
5928 expect(list, isNotNull); 6017 expect(list, isNotNull);
5929 NodeList<VariableDeclaration> variables = list.variables; 6018 NodeList<VariableDeclaration> variables = list.variables;
5930 expect(variables, hasLength(1)); 6019 expect(variables, hasLength(1));
5931 VariableDeclaration variable = variables[0]; 6020 VariableDeclaration variable = variables[0];
5932 expect(variable.name, isNotNull); 6021 expect(variable.name, isNotNull);
5933 } 6022 }
5934 6023
5935 void test_parseClassMember_field_namedGet() { 6024 void test_parseClassMember_field_namedGet() {
5936 createParser('var get;'); 6025 createParser('var get;');
5937 ClassMember member = parser.parseClassMember('C'); 6026 ClassMember member = parser.parseClassMember('C');
5938 expectNotNullIfNoErrors(member); 6027 expectNotNullIfNoErrors(member);
5939 listener.assertNoErrors(); 6028 listener.assertNoErrors();
5940 expect(member, new isInstanceOf<FieldDeclaration>()); 6029 expect(member, new isInstanceOf<FieldDeclaration>());
5941 FieldDeclaration field = member; 6030 FieldDeclaration field = member;
6031 expect(field.covariantKeyword, isNull);
5942 expect(field.documentationComment, isNull); 6032 expect(field.documentationComment, isNull);
5943 expect(field.metadata, hasLength(0)); 6033 expect(field.metadata, hasLength(0));
5944 expect(field.staticKeyword, isNull); 6034 expect(field.staticKeyword, isNull);
5945 VariableDeclarationList list = field.fields; 6035 VariableDeclarationList list = field.fields;
5946 expect(list, isNotNull); 6036 expect(list, isNotNull);
5947 NodeList<VariableDeclaration> variables = list.variables; 6037 NodeList<VariableDeclaration> variables = list.variables;
5948 expect(variables, hasLength(1)); 6038 expect(variables, hasLength(1));
5949 VariableDeclaration variable = variables[0]; 6039 VariableDeclaration variable = variables[0];
5950 expect(variable.name, isNotNull); 6040 expect(variable.name, isNotNull);
5951 } 6041 }
5952 6042
5953 void test_parseClassMember_field_namedOperator() { 6043 void test_parseClassMember_field_namedOperator() {
5954 createParser('var operator;'); 6044 createParser('var operator;');
5955 ClassMember member = parser.parseClassMember('C'); 6045 ClassMember member = parser.parseClassMember('C');
5956 expectNotNullIfNoErrors(member); 6046 expectNotNullIfNoErrors(member);
5957 listener.assertNoErrors(); 6047 listener.assertNoErrors();
5958 expect(member, new isInstanceOf<FieldDeclaration>()); 6048 expect(member, new isInstanceOf<FieldDeclaration>());
5959 FieldDeclaration field = member; 6049 FieldDeclaration field = member;
6050 expect(field.covariantKeyword, isNull);
5960 expect(field.documentationComment, isNull); 6051 expect(field.documentationComment, isNull);
5961 expect(field.metadata, hasLength(0)); 6052 expect(field.metadata, hasLength(0));
5962 expect(field.staticKeyword, isNull); 6053 expect(field.staticKeyword, isNull);
5963 VariableDeclarationList list = field.fields; 6054 VariableDeclarationList list = field.fields;
5964 expect(list, isNotNull); 6055 expect(list, isNotNull);
5965 NodeList<VariableDeclaration> variables = list.variables; 6056 NodeList<VariableDeclaration> variables = list.variables;
5966 expect(variables, hasLength(1)); 6057 expect(variables, hasLength(1));
5967 VariableDeclaration variable = variables[0]; 6058 VariableDeclaration variable = variables[0];
5968 expect(variable.name, isNotNull); 6059 expect(variable.name, isNotNull);
5969 } 6060 }
5970 6061
5971 void test_parseClassMember_field_namedOperator_withAssignment() { 6062 void test_parseClassMember_field_namedOperator_withAssignment() {
5972 createParser('var operator = (5);'); 6063 createParser('var operator = (5);');
5973 ClassMember member = parser.parseClassMember('C'); 6064 ClassMember member = parser.parseClassMember('C');
5974 expectNotNullIfNoErrors(member); 6065 expectNotNullIfNoErrors(member);
5975 listener.assertNoErrors(); 6066 listener.assertNoErrors();
5976 expect(member, new isInstanceOf<FieldDeclaration>()); 6067 expect(member, new isInstanceOf<FieldDeclaration>());
5977 FieldDeclaration field = member; 6068 FieldDeclaration field = member;
6069 expect(field.covariantKeyword, isNull);
5978 expect(field.documentationComment, isNull); 6070 expect(field.documentationComment, isNull);
5979 expect(field.metadata, hasLength(0)); 6071 expect(field.metadata, hasLength(0));
5980 expect(field.staticKeyword, isNull); 6072 expect(field.staticKeyword, isNull);
5981 VariableDeclarationList list = field.fields; 6073 VariableDeclarationList list = field.fields;
5982 expect(list, isNotNull); 6074 expect(list, isNotNull);
5983 NodeList<VariableDeclaration> variables = list.variables; 6075 NodeList<VariableDeclaration> variables = list.variables;
5984 expect(variables, hasLength(1)); 6076 expect(variables, hasLength(1));
5985 VariableDeclaration variable = variables[0]; 6077 VariableDeclaration variable = variables[0];
5986 expect(variable.name, isNotNull); 6078 expect(variable.name, isNotNull);
5987 expect(variable.initializer, isNotNull); 6079 expect(variable.initializer, isNotNull);
5988 } 6080 }
5989 6081
5990 void test_parseClassMember_field_namedSet() { 6082 void test_parseClassMember_field_namedSet() {
5991 createParser('var set;'); 6083 createParser('var set;');
5992 ClassMember member = parser.parseClassMember('C'); 6084 ClassMember member = parser.parseClassMember('C');
5993 expectNotNullIfNoErrors(member); 6085 expectNotNullIfNoErrors(member);
5994 listener.assertNoErrors(); 6086 listener.assertNoErrors();
5995 expect(member, new isInstanceOf<FieldDeclaration>()); 6087 expect(member, new isInstanceOf<FieldDeclaration>());
5996 FieldDeclaration field = member; 6088 FieldDeclaration field = member;
6089 expect(field.covariantKeyword, isNull);
5997 expect(field.documentationComment, isNull); 6090 expect(field.documentationComment, isNull);
5998 expect(field.metadata, hasLength(0)); 6091 expect(field.metadata, hasLength(0));
5999 expect(field.staticKeyword, isNull); 6092 expect(field.staticKeyword, isNull);
6000 VariableDeclarationList list = field.fields; 6093 VariableDeclarationList list = field.fields;
6001 expect(list, isNotNull); 6094 expect(list, isNotNull);
6002 NodeList<VariableDeclaration> variables = list.variables; 6095 NodeList<VariableDeclaration> variables = list.variables;
6003 expect(variables, hasLength(1)); 6096 expect(variables, hasLength(1));
6004 VariableDeclaration variable = variables[0]; 6097 VariableDeclaration variable = variables[0];
6005 expect(variable.name, isNotNull); 6098 expect(variable.name, isNotNull);
6006 } 6099 }
6007 6100
6101 void test_parseClassMember_field_static() {
6102 createParser('static A f;');
6103 ClassMember member = parser.parseClassMember('C');
6104 expectNotNullIfNoErrors(member);
6105 listener.assertNoErrors();
6106 expect(member, new isInstanceOf<FieldDeclaration>());
6107 FieldDeclaration field = member;
6108 expect(field.covariantKeyword, isNull);
6109 expect(field.documentationComment, isNull);
6110 expect(field.metadata, hasLength(0));
6111 expect(field.staticKeyword, isNotNull);
6112 VariableDeclarationList list = field.fields;
6113 expect(list, isNotNull);
6114 NodeList<VariableDeclaration> variables = list.variables;
6115 expect(variables, hasLength(1));
6116 VariableDeclaration variable = variables[0];
6117 expect(variable.name, isNotNull);
6118 }
6119
6008 @failingTest 6120 @failingTest
6009 void test_parseClassMember_getter_functionType() { 6121 void test_parseClassMember_getter_functionType() {
6010 createParser('int Function(int) get g {}'); 6122 createParser('int Function(int) get g {}');
6011 ClassMember member = parser.parseClassMember('C'); 6123 ClassMember member = parser.parseClassMember('C');
6012 expectNotNullIfNoErrors(member); 6124 expectNotNullIfNoErrors(member);
6013 listener.assertNoErrors(); 6125 listener.assertNoErrors();
6014 expect(member, new isInstanceOf<MethodDeclaration>()); 6126 expect(member, new isInstanceOf<MethodDeclaration>());
6015 MethodDeclaration method = member; 6127 MethodDeclaration method = member;
6016 expect(method.documentationComment, isNull); 6128 expect(method.documentationComment, isNull);
6017 expect(method.externalKeyword, isNull); 6129 expect(method.externalKeyword, isNull);
(...skipping 2685 matching lines...) Expand 10 before | Expand all | Expand 10 after
8703 8815
8704 void test_parseFinalConstVarOrType_void_noIdentifier() { 8816 void test_parseFinalConstVarOrType_void_noIdentifier() {
8705 createParser('void,'); 8817 createParser('void,');
8706 FinalConstVarOrType result = parser.parseFinalConstVarOrType(false); 8818 FinalConstVarOrType result = parser.parseFinalConstVarOrType(false);
8707 expectNotNullIfNoErrors(result); 8819 expectNotNullIfNoErrors(result);
8708 listener.assertNoErrors(); 8820 listener.assertNoErrors();
8709 expect(result.keyword, isNull); 8821 expect(result.keyword, isNull);
8710 expect(result.type, isNotNull); 8822 expect(result.type, isNotNull);
8711 } 8823 }
8712 8824
8713 void test_parseFormalParameter_final_withType_named() { 8825 void test_parseFormalParameter_covariant_final_named() {
8714 ParameterKind kind = ParameterKind.NAMED; 8826 ParameterKind kind = ParameterKind.NAMED;
8715 createParser('final A a : null'); 8827 createParser('covariant final a : null');
8716 FormalParameter parameter = parser.parseFormalParameter(kind); 8828 FormalParameter parameter = parser.parseFormalParameter(kind);
8717 expectNotNullIfNoErrors(parameter); 8829 expectNotNullIfNoErrors(parameter);
8718 listener.assertNoErrors(); 8830 listener.assertNoErrors();
8719 expect(parameter, new isInstanceOf<DefaultFormalParameter>()); 8831 expect(parameter, new isInstanceOf<DefaultFormalParameter>());
8720 DefaultFormalParameter defaultParameter = parameter; 8832 DefaultFormalParameter defaultParameter = parameter;
8721 SimpleFormalParameter simpleParameter = 8833 SimpleFormalParameter simpleParameter =
8722 defaultParameter.parameter as SimpleFormalParameter; 8834 defaultParameter.parameter as SimpleFormalParameter;
8835 expect(simpleParameter.covariantKeyword, isNotNull);
8836 expect(simpleParameter.identifier, isNotNull);
8837 expect(simpleParameter.keyword, isNotNull);
8838 expect(simpleParameter.type, isNull);
8839 expect(simpleParameter.kind, kind);
8840 expect(defaultParameter.separator, isNotNull);
8841 expect(defaultParameter.defaultValue, isNotNull);
8842 expect(defaultParameter.kind, kind);
8843 }
8844
8845 void test_parseFormalParameter_covariant_final_normal() {
8846 ParameterKind kind = ParameterKind.REQUIRED;
8847 createParser('covariant final a');
8848 FormalParameter parameter = parser.parseFormalParameter(kind);
8849 expectNotNullIfNoErrors(parameter);
8850 listener.assertNoErrors();
8851 expect(parameter, new isInstanceOf<SimpleFormalParameter>());
8852 SimpleFormalParameter simpleParameter = parameter;
8853 expect(simpleParameter.covariantKeyword, isNotNull);
8854 expect(simpleParameter.identifier, isNotNull);
8855 expect(simpleParameter.keyword, isNotNull);
8856 expect(simpleParameter.type, isNull);
8857 expect(simpleParameter.kind, kind);
8858 }
8859
8860 void test_parseFormalParameter_covariant_final_positional() {
8861 ParameterKind kind = ParameterKind.POSITIONAL;
8862 createParser('covariant final a = null');
8863 FormalParameter parameter = parser.parseFormalParameter(kind);
8864 expectNotNullIfNoErrors(parameter);
8865 listener.assertNoErrors();
8866 expect(parameter, new isInstanceOf<DefaultFormalParameter>());
8867 DefaultFormalParameter defaultParameter = parameter;
8868 SimpleFormalParameter simpleParameter =
8869 defaultParameter.parameter as SimpleFormalParameter;
8870 expect(simpleParameter.covariantKeyword, isNotNull);
8871 expect(simpleParameter.identifier, isNotNull);
8872 expect(simpleParameter.keyword, isNotNull);
8873 expect(simpleParameter.type, isNull);
8874 expect(simpleParameter.kind, kind);
8875 expect(defaultParameter.separator, isNotNull);
8876 expect(defaultParameter.defaultValue, isNotNull);
8877 expect(defaultParameter.kind, kind);
8878 }
8879
8880 void test_parseFormalParameter_covariant_final_type_named() {
8881 ParameterKind kind = ParameterKind.NAMED;
8882 createParser('covariant final A a : null');
8883 FormalParameter parameter = parser.parseFormalParameter(kind);
8884 expectNotNullIfNoErrors(parameter);
8885 listener.assertNoErrors();
8886 expect(parameter, new isInstanceOf<DefaultFormalParameter>());
8887 DefaultFormalParameter defaultParameter = parameter;
8888 SimpleFormalParameter simpleParameter =
8889 defaultParameter.parameter as SimpleFormalParameter;
8890 expect(simpleParameter.covariantKeyword, isNotNull);
8723 expect(simpleParameter.identifier, isNotNull); 8891 expect(simpleParameter.identifier, isNotNull);
8724 expect(simpleParameter.keyword, isNotNull); 8892 expect(simpleParameter.keyword, isNotNull);
8725 expect(simpleParameter.type, isNotNull); 8893 expect(simpleParameter.type, isNotNull);
8726 expect(simpleParameter.kind, kind); 8894 expect(simpleParameter.kind, kind);
8727 expect(defaultParameter.separator, isNotNull); 8895 expect(defaultParameter.separator, isNotNull);
8728 expect(defaultParameter.defaultValue, isNotNull); 8896 expect(defaultParameter.defaultValue, isNotNull);
8729 expect(defaultParameter.kind, kind); 8897 expect(defaultParameter.kind, kind);
8730 } 8898 }
8731 8899
8732 void test_parseFormalParameter_final_withType_normal() { 8900 void test_parseFormalParameter_covariant_final_type_normal() {
8733 ParameterKind kind = ParameterKind.REQUIRED; 8901 ParameterKind kind = ParameterKind.REQUIRED;
8734 createParser('final A a'); 8902 createParser('covariant final A a');
8735 FormalParameter parameter = parser.parseFormalParameter(kind); 8903 FormalParameter parameter = parser.parseFormalParameter(kind);
8736 expectNotNullIfNoErrors(parameter); 8904 expectNotNullIfNoErrors(parameter);
8737 listener.assertNoErrors(); 8905 listener.assertNoErrors();
8738 expect(parameter, new isInstanceOf<SimpleFormalParameter>()); 8906 expect(parameter, new isInstanceOf<SimpleFormalParameter>());
8739 SimpleFormalParameter simpleParameter = parameter; 8907 SimpleFormalParameter simpleParameter = parameter;
8908 expect(simpleParameter.covariantKeyword, isNotNull);
8740 expect(simpleParameter.identifier, isNotNull); 8909 expect(simpleParameter.identifier, isNotNull);
8741 expect(simpleParameter.keyword, isNotNull); 8910 expect(simpleParameter.keyword, isNotNull);
8742 expect(simpleParameter.type, isNotNull); 8911 expect(simpleParameter.type, isNotNull);
8743 expect(simpleParameter.kind, kind); 8912 expect(simpleParameter.kind, kind);
8744 } 8913 }
8745 8914
8746 void test_parseFormalParameter_final_withType_positional() { 8915 void test_parseFormalParameter_covariant_final_type_positional() {
8747 ParameterKind kind = ParameterKind.POSITIONAL; 8916 ParameterKind kind = ParameterKind.POSITIONAL;
8748 createParser('final A a = null'); 8917 createParser('covariant final A a = null');
8749 FormalParameter parameter = parser.parseFormalParameter(kind); 8918 FormalParameter parameter = parser.parseFormalParameter(kind);
8750 expectNotNullIfNoErrors(parameter); 8919 expectNotNullIfNoErrors(parameter);
8751 listener.assertNoErrors(); 8920 listener.assertNoErrors();
8752 expect(parameter, new isInstanceOf<DefaultFormalParameter>()); 8921 expect(parameter, new isInstanceOf<DefaultFormalParameter>());
8753 DefaultFormalParameter defaultParameter = parameter; 8922 DefaultFormalParameter defaultParameter = parameter;
8754 SimpleFormalParameter simpleParameter = 8923 SimpleFormalParameter simpleParameter =
8755 defaultParameter.parameter as SimpleFormalParameter; 8924 defaultParameter.parameter as SimpleFormalParameter;
8925 expect(simpleParameter.covariantKeyword, isNotNull);
8756 expect(simpleParameter.identifier, isNotNull); 8926 expect(simpleParameter.identifier, isNotNull);
8757 expect(simpleParameter.keyword, isNotNull); 8927 expect(simpleParameter.keyword, isNotNull);
8758 expect(simpleParameter.type, isNotNull); 8928 expect(simpleParameter.type, isNotNull);
8759 expect(simpleParameter.kind, kind); 8929 expect(simpleParameter.kind, kind);
8760 expect(defaultParameter.separator, isNotNull); 8930 expect(defaultParameter.separator, isNotNull);
8761 expect(defaultParameter.defaultValue, isNotNull); 8931 expect(defaultParameter.defaultValue, isNotNull);
8762 expect(defaultParameter.kind, kind); 8932 expect(defaultParameter.kind, kind);
8763 } 8933 }
8764 8934
8765 @failingTest 8935 @failingTest
8766 void test_parseFormalParameter_nonFinal_withType_function() { 8936 void test_parseFormalParameter_covariant_type_function() {
8767 ParameterKind kind = ParameterKind.REQUIRED; 8937 ParameterKind kind = ParameterKind.REQUIRED;
8768 createParser('String Function(int) a'); 8938 createParser('covariant String Function(int) a');
8769 FormalParameter parameter = parser.parseFormalParameter(kind); 8939 FormalParameter parameter = parser.parseFormalParameter(kind);
8770 expectNotNullIfNoErrors(parameter); 8940 expectNotNullIfNoErrors(parameter);
8771 listener.assertNoErrors(); 8941 listener.assertNoErrors();
8772 expect(parameter, new isInstanceOf<SimpleFormalParameter>()); 8942 expect(parameter, new isInstanceOf<SimpleFormalParameter>());
8773 SimpleFormalParameter simpleParameter = parameter; 8943 SimpleFormalParameter simpleParameter = parameter;
8944 expect(simpleParameter.covariantKeyword, isNotNull);
8774 expect(simpleParameter.identifier, isNotNull); 8945 expect(simpleParameter.identifier, isNotNull);
8775 expect(simpleParameter.keyword, isNull); 8946 expect(simpleParameter.keyword, isNull);
8776 expect(simpleParameter.type, new isInstanceOf<GenericFunctionType>()); 8947 expect(simpleParameter.type, new isInstanceOf<GenericFunctionType>());
8777 expect(simpleParameter.kind, kind); 8948 expect(simpleParameter.kind, kind);
8778 } 8949 }
8779 8950
8780 void test_parseFormalParameter_nonFinal_withType_named() { 8951 void test_parseFormalParameter_covariant_type_named() {
8781 ParameterKind kind = ParameterKind.NAMED; 8952 ParameterKind kind = ParameterKind.NAMED;
8782 createParser('A a : null'); 8953 createParser('covariant A a : null');
8783 FormalParameter parameter = parser.parseFormalParameter(kind); 8954 FormalParameter parameter = parser.parseFormalParameter(kind);
8784 expectNotNullIfNoErrors(parameter); 8955 expectNotNullIfNoErrors(parameter);
8785 listener.assertNoErrors(); 8956 listener.assertNoErrors();
8786 expect(parameter, new isInstanceOf<DefaultFormalParameter>()); 8957 expect(parameter, new isInstanceOf<DefaultFormalParameter>());
8787 DefaultFormalParameter defaultParameter = parameter; 8958 DefaultFormalParameter defaultParameter = parameter;
8788 SimpleFormalParameter simpleParameter = 8959 SimpleFormalParameter simpleParameter =
8789 defaultParameter.parameter as SimpleFormalParameter; 8960 defaultParameter.parameter as SimpleFormalParameter;
8961 expect(simpleParameter.covariantKeyword, isNotNull);
8790 expect(simpleParameter.identifier, isNotNull); 8962 expect(simpleParameter.identifier, isNotNull);
8791 expect(simpleParameter.keyword, isNull); 8963 expect(simpleParameter.keyword, isNull);
8792 expect(simpleParameter.type, isNotNull); 8964 expect(simpleParameter.type, isNotNull);
8793 expect(simpleParameter.kind, kind); 8965 expect(simpleParameter.kind, kind);
8794 expect(defaultParameter.separator, isNotNull); 8966 expect(defaultParameter.separator, isNotNull);
8795 expect(defaultParameter.defaultValue, isNotNull); 8967 expect(defaultParameter.defaultValue, isNotNull);
8796 expect(defaultParameter.kind, kind); 8968 expect(defaultParameter.kind, kind);
8797 } 8969 }
8798 8970
8799 void test_parseFormalParameter_nonFinal_withType_normal() { 8971 void test_parseFormalParameter_covariant_type_normal() {
8800 ParameterKind kind = ParameterKind.REQUIRED; 8972 ParameterKind kind = ParameterKind.REQUIRED;
8801 createParser('A a'); 8973 createParser('covariant A a');
8802 FormalParameter parameter = parser.parseFormalParameter(kind); 8974 FormalParameter parameter = parser.parseFormalParameter(kind);
8803 expectNotNullIfNoErrors(parameter); 8975 expectNotNullIfNoErrors(parameter);
8804 listener.assertNoErrors(); 8976 listener.assertNoErrors();
8805 expect(parameter, new isInstanceOf<SimpleFormalParameter>()); 8977 expect(parameter, new isInstanceOf<SimpleFormalParameter>());
8806 SimpleFormalParameter simpleParameter = parameter; 8978 SimpleFormalParameter simpleParameter = parameter;
8979 expect(simpleParameter.covariantKeyword, isNotNull);
8807 expect(simpleParameter.identifier, isNotNull); 8980 expect(simpleParameter.identifier, isNotNull);
8808 expect(simpleParameter.keyword, isNull); 8981 expect(simpleParameter.keyword, isNull);
8809 expect(simpleParameter.type, isNotNull); 8982 expect(simpleParameter.type, isNotNull);
8810 expect(simpleParameter.kind, kind); 8983 expect(simpleParameter.kind, kind);
8811 } 8984 }
8812 8985
8813 void test_parseFormalParameter_nonFinal_withType_positional() { 8986 void test_parseFormalParameter_covariant_type_positional() {
8814 ParameterKind kind = ParameterKind.POSITIONAL; 8987 ParameterKind kind = ParameterKind.POSITIONAL;
8815 createParser('A a = null'); 8988 createParser('covariant A a = null');
8816 FormalParameter parameter = parser.parseFormalParameter(kind); 8989 FormalParameter parameter = parser.parseFormalParameter(kind);
8817 expectNotNullIfNoErrors(parameter); 8990 expectNotNullIfNoErrors(parameter);
8818 listener.assertNoErrors(); 8991 listener.assertNoErrors();
8819 expect(parameter, new isInstanceOf<DefaultFormalParameter>()); 8992 expect(parameter, new isInstanceOf<DefaultFormalParameter>());
8820 DefaultFormalParameter defaultParameter = parameter; 8993 DefaultFormalParameter defaultParameter = parameter;
8821 SimpleFormalParameter simpleParameter = 8994 SimpleFormalParameter simpleParameter =
8822 defaultParameter.parameter as SimpleFormalParameter; 8995 defaultParameter.parameter as SimpleFormalParameter;
8996 expect(simpleParameter.covariantKeyword, isNotNull);
8823 expect(simpleParameter.identifier, isNotNull); 8997 expect(simpleParameter.identifier, isNotNull);
8824 expect(simpleParameter.keyword, isNull); 8998 expect(simpleParameter.keyword, isNull);
8825 expect(simpleParameter.type, isNotNull); 8999 expect(simpleParameter.type, isNotNull);
8826 expect(simpleParameter.kind, kind); 9000 expect(simpleParameter.kind, kind);
8827 expect(defaultParameter.separator, isNotNull); 9001 expect(defaultParameter.separator, isNotNull);
8828 expect(defaultParameter.defaultValue, isNotNull); 9002 expect(defaultParameter.defaultValue, isNotNull);
8829 expect(defaultParameter.kind, kind); 9003 expect(defaultParameter.kind, kind);
8830 } 9004 }
8831 9005
8832 void test_parseFormalParameter_var() { 9006 void test_parseFormalParameter_covariant_var_named() {
8833 ParameterKind kind = ParameterKind.REQUIRED; 9007 ParameterKind kind = ParameterKind.NAMED;
8834 createParser('var a'); 9008 createParser('covariant var a : null');
8835 FormalParameter parameter = parser.parseFormalParameter(kind); 9009 FormalParameter parameter = parser.parseFormalParameter(kind);
8836 expectNotNullIfNoErrors(parameter); 9010 expectNotNullIfNoErrors(parameter);
8837 listener.assertNoErrors(); 9011 listener.assertNoErrors();
8838 expect(parameter, new isInstanceOf<SimpleFormalParameter>()); 9012 expect(parameter, new isInstanceOf<DefaultFormalParameter>());
8839 SimpleFormalParameter simpleParameter = parameter; 9013 DefaultFormalParameter defaultParameter = parameter;
8840 expect(simpleParameter.identifier, isNotNull); 9014 SimpleFormalParameter simpleParameter =
8841 expect(simpleParameter.keyword, isNotNull); 9015 defaultParameter.parameter as SimpleFormalParameter;
8842 expect(simpleParameter.type, isNull); 9016 expect(simpleParameter.covariantKeyword, isNotNull);
8843 expect(simpleParameter.kind, kind); 9017 expect(simpleParameter.identifier, isNotNull);
9018 expect(simpleParameter.keyword, isNotNull);
9019 expect(simpleParameter.type, isNull);
9020 expect(simpleParameter.kind, kind);
9021 expect(defaultParameter.separator, isNotNull);
9022 expect(defaultParameter.defaultValue, isNotNull);
9023 expect(defaultParameter.kind, kind);
9024 }
9025
9026 void test_parseFormalParameter_covariant_var_normal() {
9027 ParameterKind kind = ParameterKind.REQUIRED;
9028 createParser('covariant var a');
9029 FormalParameter parameter = parser.parseFormalParameter(kind);
9030 expectNotNullIfNoErrors(parameter);
9031 listener.assertNoErrors();
9032 expect(parameter, new isInstanceOf<SimpleFormalParameter>());
9033 SimpleFormalParameter simpleParameter = parameter;
9034 expect(simpleParameter.covariantKeyword, isNotNull);
9035 expect(simpleParameter.identifier, isNotNull);
9036 expect(simpleParameter.keyword, isNotNull);
9037 expect(simpleParameter.type, isNull);
9038 expect(simpleParameter.kind, kind);
9039 }
9040
9041 void test_parseFormalParameter_covariant_var_positional() {
9042 ParameterKind kind = ParameterKind.POSITIONAL;
9043 createParser('covariant var a = null');
9044 FormalParameter parameter = parser.parseFormalParameter(kind);
9045 expectNotNullIfNoErrors(parameter);
9046 listener.assertNoErrors();
9047 expect(parameter, new isInstanceOf<DefaultFormalParameter>());
9048 DefaultFormalParameter defaultParameter = parameter;
9049 SimpleFormalParameter simpleParameter =
9050 defaultParameter.parameter as SimpleFormalParameter;
9051 expect(simpleParameter.covariantKeyword, isNotNull);
9052 expect(simpleParameter.identifier, isNotNull);
9053 expect(simpleParameter.keyword, isNotNull);
9054 expect(simpleParameter.type, isNull);
9055 expect(simpleParameter.kind, kind);
9056 expect(defaultParameter.separator, isNotNull);
9057 expect(defaultParameter.defaultValue, isNotNull);
9058 expect(defaultParameter.kind, kind);
9059 }
9060
9061 void test_parseFormalParameter_final_named() {
9062 ParameterKind kind = ParameterKind.NAMED;
9063 createParser('final a : null');
9064 FormalParameter parameter = parser.parseFormalParameter(kind);
9065 expectNotNullIfNoErrors(parameter);
9066 listener.assertNoErrors();
9067 expect(parameter, new isInstanceOf<DefaultFormalParameter>());
9068 DefaultFormalParameter defaultParameter = parameter;
9069 SimpleFormalParameter simpleParameter =
9070 defaultParameter.parameter as SimpleFormalParameter;
9071 expect(simpleParameter.covariantKeyword, isNull);
9072 expect(simpleParameter.identifier, isNotNull);
9073 expect(simpleParameter.keyword, isNotNull);
9074 expect(simpleParameter.type, isNull);
9075 expect(simpleParameter.kind, kind);
9076 expect(defaultParameter.separator, isNotNull);
9077 expect(defaultParameter.defaultValue, isNotNull);
9078 expect(defaultParameter.kind, kind);
9079 }
9080
9081 void test_parseFormalParameter_final_normal() {
9082 ParameterKind kind = ParameterKind.REQUIRED;
9083 createParser('final a');
9084 FormalParameter parameter = parser.parseFormalParameter(kind);
9085 expectNotNullIfNoErrors(parameter);
9086 listener.assertNoErrors();
9087 expect(parameter, new isInstanceOf<SimpleFormalParameter>());
9088 SimpleFormalParameter simpleParameter = parameter;
9089 expect(simpleParameter.covariantKeyword, isNull);
9090 expect(simpleParameter.identifier, isNotNull);
9091 expect(simpleParameter.keyword, isNotNull);
9092 expect(simpleParameter.type, isNull);
9093 expect(simpleParameter.kind, kind);
9094 }
9095
9096 void test_parseFormalParameter_final_positional() {
9097 ParameterKind kind = ParameterKind.POSITIONAL;
9098 createParser('final a = null');
9099 FormalParameter parameter = parser.parseFormalParameter(kind);
9100 expectNotNullIfNoErrors(parameter);
9101 listener.assertNoErrors();
9102 expect(parameter, new isInstanceOf<DefaultFormalParameter>());
9103 DefaultFormalParameter defaultParameter = parameter;
9104 SimpleFormalParameter simpleParameter =
9105 defaultParameter.parameter as SimpleFormalParameter;
9106 expect(simpleParameter.covariantKeyword, isNull);
9107 expect(simpleParameter.identifier, isNotNull);
9108 expect(simpleParameter.keyword, isNotNull);
9109 expect(simpleParameter.type, isNull);
9110 expect(simpleParameter.kind, kind);
9111 expect(defaultParameter.separator, isNotNull);
9112 expect(defaultParameter.defaultValue, isNotNull);
9113 expect(defaultParameter.kind, kind);
9114 }
9115
9116 void test_parseFormalParameter_final_type_named() {
9117 ParameterKind kind = ParameterKind.NAMED;
9118 createParser('final A a : null');
9119 FormalParameter parameter = parser.parseFormalParameter(kind);
9120 expectNotNullIfNoErrors(parameter);
9121 listener.assertNoErrors();
9122 expect(parameter, new isInstanceOf<DefaultFormalParameter>());
9123 DefaultFormalParameter defaultParameter = parameter;
9124 SimpleFormalParameter simpleParameter =
9125 defaultParameter.parameter as SimpleFormalParameter;
9126 expect(simpleParameter.covariantKeyword, isNull);
9127 expect(simpleParameter.identifier, isNotNull);
9128 expect(simpleParameter.keyword, isNotNull);
9129 expect(simpleParameter.type, isNotNull);
9130 expect(simpleParameter.kind, kind);
9131 expect(defaultParameter.separator, isNotNull);
9132 expect(defaultParameter.defaultValue, isNotNull);
9133 expect(defaultParameter.kind, kind);
9134 }
9135
9136 void test_parseFormalParameter_final_type_normal() {
9137 ParameterKind kind = ParameterKind.REQUIRED;
9138 createParser('final A a');
9139 FormalParameter parameter = parser.parseFormalParameter(kind);
9140 expectNotNullIfNoErrors(parameter);
9141 listener.assertNoErrors();
9142 expect(parameter, new isInstanceOf<SimpleFormalParameter>());
9143 SimpleFormalParameter simpleParameter = parameter;
9144 expect(simpleParameter.covariantKeyword, isNull);
9145 expect(simpleParameter.identifier, isNotNull);
9146 expect(simpleParameter.keyword, isNotNull);
9147 expect(simpleParameter.type, isNotNull);
9148 expect(simpleParameter.kind, kind);
9149 }
9150
9151 void test_parseFormalParameter_final_type_positional() {
9152 ParameterKind kind = ParameterKind.POSITIONAL;
9153 createParser('final A a = null');
9154 FormalParameter parameter = parser.parseFormalParameter(kind);
9155 expectNotNullIfNoErrors(parameter);
9156 listener.assertNoErrors();
9157 expect(parameter, new isInstanceOf<DefaultFormalParameter>());
9158 DefaultFormalParameter defaultParameter = parameter;
9159 SimpleFormalParameter simpleParameter =
9160 defaultParameter.parameter as SimpleFormalParameter;
9161 expect(simpleParameter.covariantKeyword, isNull);
9162 expect(simpleParameter.identifier, isNotNull);
9163 expect(simpleParameter.keyword, isNotNull);
9164 expect(simpleParameter.type, isNotNull);
9165 expect(simpleParameter.kind, kind);
9166 expect(defaultParameter.separator, isNotNull);
9167 expect(defaultParameter.defaultValue, isNotNull);
9168 expect(defaultParameter.kind, kind);
9169 }
9170
9171 @failingTest
9172 void test_parseFormalParameter_type_function() {
9173 ParameterKind kind = ParameterKind.REQUIRED;
9174 createParser('String Function(int) a');
9175 FormalParameter parameter = parser.parseFormalParameter(kind);
9176 expectNotNullIfNoErrors(parameter);
9177 listener.assertNoErrors();
9178 expect(parameter, new isInstanceOf<SimpleFormalParameter>());
9179 SimpleFormalParameter simpleParameter = parameter;
9180 expect(simpleParameter.covariantKeyword, isNull);
9181 expect(simpleParameter.identifier, isNotNull);
9182 expect(simpleParameter.keyword, isNull);
9183 expect(simpleParameter.type, new isInstanceOf<GenericFunctionType>());
9184 expect(simpleParameter.kind, kind);
9185 }
9186
9187 void test_parseFormalParameter_type_named() {
9188 ParameterKind kind = ParameterKind.NAMED;
9189 createParser('A a : null');
9190 FormalParameter parameter = parser.parseFormalParameter(kind);
9191 expectNotNullIfNoErrors(parameter);
9192 listener.assertNoErrors();
9193 expect(parameter, new isInstanceOf<DefaultFormalParameter>());
9194 DefaultFormalParameter defaultParameter = parameter;
9195 SimpleFormalParameter simpleParameter =
9196 defaultParameter.parameter as SimpleFormalParameter;
9197 expect(simpleParameter.covariantKeyword, isNull);
9198 expect(simpleParameter.identifier, isNotNull);
9199 expect(simpleParameter.keyword, isNull);
9200 expect(simpleParameter.type, isNotNull);
9201 expect(simpleParameter.kind, kind);
9202 expect(defaultParameter.separator, isNotNull);
9203 expect(defaultParameter.defaultValue, isNotNull);
9204 expect(defaultParameter.kind, kind);
9205 }
9206
9207 void test_parseFormalParameter_type_normal() {
9208 ParameterKind kind = ParameterKind.REQUIRED;
9209 createParser('A a');
9210 FormalParameter parameter = parser.parseFormalParameter(kind);
9211 expectNotNullIfNoErrors(parameter);
9212 listener.assertNoErrors();
9213 expect(parameter, new isInstanceOf<SimpleFormalParameter>());
9214 SimpleFormalParameter simpleParameter = parameter;
9215 expect(simpleParameter.covariantKeyword, isNull);
9216 expect(simpleParameter.identifier, isNotNull);
9217 expect(simpleParameter.keyword, isNull);
9218 expect(simpleParameter.type, isNotNull);
9219 expect(simpleParameter.kind, kind);
9220 }
9221
9222 void test_parseFormalParameter_type_positional() {
9223 ParameterKind kind = ParameterKind.POSITIONAL;
9224 createParser('A a = null');
9225 FormalParameter parameter = parser.parseFormalParameter(kind);
9226 expectNotNullIfNoErrors(parameter);
9227 listener.assertNoErrors();
9228 expect(parameter, new isInstanceOf<DefaultFormalParameter>());
9229 DefaultFormalParameter defaultParameter = parameter;
9230 SimpleFormalParameter simpleParameter =
9231 defaultParameter.parameter as SimpleFormalParameter;
9232 expect(simpleParameter.covariantKeyword, isNull);
9233 expect(simpleParameter.identifier, isNotNull);
9234 expect(simpleParameter.keyword, isNull);
9235 expect(simpleParameter.type, isNotNull);
9236 expect(simpleParameter.kind, kind);
9237 expect(defaultParameter.separator, isNotNull);
9238 expect(defaultParameter.defaultValue, isNotNull);
9239 expect(defaultParameter.kind, kind);
8844 } 9240 }
8845 9241
8846 void test_parseFormalParameter_var_named() { 9242 void test_parseFormalParameter_var_named() {
8847 ParameterKind kind = ParameterKind.NAMED; 9243 ParameterKind kind = ParameterKind.NAMED;
8848 createParser('var a : null'); 9244 createParser('var a : null');
8849 FormalParameter parameter = parser.parseFormalParameter(kind); 9245 FormalParameter parameter = parser.parseFormalParameter(kind);
8850 expectNotNullIfNoErrors(parameter); 9246 expectNotNullIfNoErrors(parameter);
8851 listener.assertNoErrors(); 9247 listener.assertNoErrors();
8852 expect(parameter, new isInstanceOf<DefaultFormalParameter>()); 9248 expect(parameter, new isInstanceOf<DefaultFormalParameter>());
8853 DefaultFormalParameter defaultParameter = parameter; 9249 DefaultFormalParameter defaultParameter = parameter;
8854 SimpleFormalParameter simpleParameter = 9250 SimpleFormalParameter simpleParameter =
8855 defaultParameter.parameter as SimpleFormalParameter; 9251 defaultParameter.parameter as SimpleFormalParameter;
9252 expect(simpleParameter.covariantKeyword, isNull);
8856 expect(simpleParameter.identifier, isNotNull); 9253 expect(simpleParameter.identifier, isNotNull);
8857 expect(simpleParameter.keyword, isNotNull); 9254 expect(simpleParameter.keyword, isNotNull);
8858 expect(simpleParameter.type, isNull); 9255 expect(simpleParameter.type, isNull);
8859 expect(simpleParameter.kind, kind); 9256 expect(simpleParameter.kind, kind);
8860 expect(defaultParameter.separator, isNotNull); 9257 expect(defaultParameter.separator, isNotNull);
8861 expect(defaultParameter.defaultValue, isNotNull); 9258 expect(defaultParameter.defaultValue, isNotNull);
8862 expect(defaultParameter.kind, kind); 9259 expect(defaultParameter.kind, kind);
8863 } 9260 }
8864 9261
9262 void test_parseFormalParameter_var_normal() {
9263 ParameterKind kind = ParameterKind.REQUIRED;
9264 createParser('var a');
9265 FormalParameter parameter = parser.parseFormalParameter(kind);
9266 expectNotNullIfNoErrors(parameter);
9267 listener.assertNoErrors();
9268 expect(parameter, new isInstanceOf<SimpleFormalParameter>());
9269 SimpleFormalParameter simpleParameter = parameter;
9270 expect(simpleParameter.covariantKeyword, isNull);
9271 expect(simpleParameter.identifier, isNotNull);
9272 expect(simpleParameter.keyword, isNotNull);
9273 expect(simpleParameter.type, isNull);
9274 expect(simpleParameter.kind, kind);
9275 }
9276
8865 void test_parseFormalParameter_var_positional() { 9277 void test_parseFormalParameter_var_positional() {
8866 ParameterKind kind = ParameterKind.POSITIONAL; 9278 ParameterKind kind = ParameterKind.POSITIONAL;
8867 createParser('var a = null'); 9279 createParser('var a = null');
8868 FormalParameter parameter = parser.parseFormalParameter(kind); 9280 FormalParameter parameter = parser.parseFormalParameter(kind);
8869 expectNotNullIfNoErrors(parameter); 9281 expectNotNullIfNoErrors(parameter);
8870 listener.assertNoErrors(); 9282 listener.assertNoErrors();
8871 expect(parameter, new isInstanceOf<DefaultFormalParameter>()); 9283 expect(parameter, new isInstanceOf<DefaultFormalParameter>());
8872 DefaultFormalParameter defaultParameter = parameter; 9284 DefaultFormalParameter defaultParameter = parameter;
8873 SimpleFormalParameter simpleParameter = 9285 SimpleFormalParameter simpleParameter =
8874 defaultParameter.parameter as SimpleFormalParameter; 9286 defaultParameter.parameter as SimpleFormalParameter;
9287 expect(simpleParameter.covariantKeyword, isNull);
8875 expect(simpleParameter.identifier, isNotNull); 9288 expect(simpleParameter.identifier, isNotNull);
8876 expect(simpleParameter.keyword, isNotNull); 9289 expect(simpleParameter.keyword, isNotNull);
8877 expect(simpleParameter.type, isNull); 9290 expect(simpleParameter.type, isNull);
8878 expect(simpleParameter.kind, kind); 9291 expect(simpleParameter.kind, kind);
8879 expect(defaultParameter.separator, isNotNull); 9292 expect(defaultParameter.separator, isNotNull);
8880 expect(defaultParameter.defaultValue, isNotNull); 9293 expect(defaultParameter.defaultValue, isNotNull);
8881 expect(defaultParameter.kind, kind); 9294 expect(defaultParameter.kind, kind);
8882 } 9295 }
8883 9296
8884 void test_parseFormalParameterList_empty() { 9297 void test_parseFormalParameterList_empty() {
(...skipping 1160 matching lines...) Expand 10 before | Expand all | Expand 10 after
10045 expect(directive.semicolon, isNotNull); 10458 expect(directive.semicolon, isNotNull);
10046 } 10459 }
10047 10460
10048 void test_parseInitializedIdentifierList_type() { 10461 void test_parseInitializedIdentifierList_type() {
10049 Comment comment = astFactory.documentationComment(new List<Token>(0)); 10462 Comment comment = astFactory.documentationComment(new List<Token>(0));
10050 Token staticKeyword = TokenFactory.tokenFromKeyword(Keyword.STATIC); 10463 Token staticKeyword = TokenFactory.tokenFromKeyword(Keyword.STATIC);
10051 TypeName type = 10464 TypeName type =
10052 astFactory.typeName(astFactory.simpleIdentifier(null), null); 10465 astFactory.typeName(astFactory.simpleIdentifier(null), null);
10053 createParser("a = 1, b, c = 3;"); 10466 createParser("a = 1, b, c = 3;");
10054 FieldDeclaration declaration = parser.parseInitializedIdentifierList( 10467 FieldDeclaration declaration = parser.parseInitializedIdentifierList(
10055 commentAndMetadata(comment), staticKeyword, null, type); 10468 commentAndMetadata(comment), staticKeyword, null, null, type);
10056 expectNotNullIfNoErrors(declaration); 10469 expectNotNullIfNoErrors(declaration);
10057 listener.assertNoErrors(); 10470 listener.assertNoErrors();
10058 expect(declaration.documentationComment, comment); 10471 expect(declaration.documentationComment, comment);
10059 VariableDeclarationList fields = declaration.fields; 10472 VariableDeclarationList fields = declaration.fields;
10060 expect(fields, isNotNull); 10473 expect(fields, isNotNull);
10061 expect(fields.keyword, isNull); 10474 expect(fields.keyword, isNull);
10062 expect(fields.type, type); 10475 expect(fields.type, type);
10063 expect(fields.variables, hasLength(3)); 10476 expect(fields.variables, hasLength(3));
10064 expect(declaration.staticKeyword, staticKeyword); 10477 expect(declaration.staticKeyword, staticKeyword);
10065 expect(declaration.semicolon, isNotNull); 10478 expect(declaration.semicolon, isNotNull);
10066 } 10479 }
10067 10480
10068 void test_parseInitializedIdentifierList_var() { 10481 void test_parseInitializedIdentifierList_var() {
10069 Comment comment = astFactory.documentationComment(new List<Token>(0)); 10482 Comment comment = astFactory.documentationComment(new List<Token>(0));
10070 Token staticKeyword = TokenFactory.tokenFromKeyword(Keyword.STATIC); 10483 Token staticKeyword = TokenFactory.tokenFromKeyword(Keyword.STATIC);
10071 Token varKeyword = TokenFactory.tokenFromKeyword(Keyword.VAR); 10484 Token varKeyword = TokenFactory.tokenFromKeyword(Keyword.VAR);
10072 createParser('a = 1, b, c = 3;'); 10485 createParser('a = 1, b, c = 3;');
10073 FieldDeclaration declaration = parser.parseInitializedIdentifierList( 10486 FieldDeclaration declaration = parser.parseInitializedIdentifierList(
10074 commentAndMetadata(comment), staticKeyword, varKeyword, null); 10487 commentAndMetadata(comment), staticKeyword, null, varKeyword, null);
10075 expectNotNullIfNoErrors(declaration); 10488 expectNotNullIfNoErrors(declaration);
10076 listener.assertNoErrors(); 10489 listener.assertNoErrors();
10077 expect(declaration.documentationComment, comment); 10490 expect(declaration.documentationComment, comment);
10078 VariableDeclarationList fields = declaration.fields; 10491 VariableDeclarationList fields = declaration.fields;
10079 expect(fields, isNotNull); 10492 expect(fields, isNotNull);
10080 expect(fields.keyword, varKeyword); 10493 expect(fields.keyword, varKeyword);
10081 expect(fields.type, isNull); 10494 expect(fields.type, isNull);
10082 expect(fields.variables, hasLength(3)); 10495 expect(fields.variables, hasLength(3));
10083 expect(declaration.staticKeyword, staticKeyword); 10496 expect(declaration.staticKeyword, staticKeyword);
10084 expect(declaration.semicolon, isNotNull); 10497 expect(declaration.semicolon, isNotNull);
(...skipping 497 matching lines...) Expand 10 before | Expand all | Expand 10 after
10582 } 10995 }
10583 10996
10584 void test_parseModifiers_const() { 10997 void test_parseModifiers_const() {
10585 createParser('const A'); 10998 createParser('const A');
10586 Modifiers modifiers = parser.parseModifiers(); 10999 Modifiers modifiers = parser.parseModifiers();
10587 expectNotNullIfNoErrors(modifiers); 11000 expectNotNullIfNoErrors(modifiers);
10588 listener.assertNoErrors(); 11001 listener.assertNoErrors();
10589 expect(modifiers.constKeyword, isNotNull); 11002 expect(modifiers.constKeyword, isNotNull);
10590 } 11003 }
10591 11004
11005 void test_parseModifiers_covariant() {
11006 createParser('covariant A');
11007 Modifiers modifiers = parser.parseModifiers();
11008 expectNotNullIfNoErrors(modifiers);
11009 listener.assertNoErrors();
11010 expect(modifiers.covariantKeyword, isNotNull);
11011 }
11012
10592 void test_parseModifiers_external() { 11013 void test_parseModifiers_external() {
10593 createParser('external A'); 11014 createParser('external A');
10594 Modifiers modifiers = parser.parseModifiers(); 11015 Modifiers modifiers = parser.parseModifiers();
10595 expectNotNullIfNoErrors(modifiers); 11016 expectNotNullIfNoErrors(modifiers);
10596 listener.assertNoErrors(); 11017 listener.assertNoErrors();
10597 expect(modifiers.externalKeyword, isNotNull); 11018 expect(modifiers.externalKeyword, isNotNull);
10598 } 11019 }
10599 11020
10600 void test_parseModifiers_factory() { 11021 void test_parseModifiers_factory() {
10601 createParser('factory A'); 11022 createParser('factory A');
(...skipping 3544 matching lines...) Expand 10 before | Expand all | Expand 10 after
14146 CompilationUnit _parseDirectives(String source, 14567 CompilationUnit _parseDirectives(String source,
14147 [List<ErrorCode> errorCodes = const <ErrorCode>[]]) { 14568 [List<ErrorCode> errorCodes = const <ErrorCode>[]]) {
14148 createParser(source); 14569 createParser(source);
14149 CompilationUnit unit = parser.parseDirectives2(); 14570 CompilationUnit unit = parser.parseDirectives2();
14150 expect(unit, isNotNull); 14571 expect(unit, isNotNull);
14151 expect(unit.declarations, hasLength(0)); 14572 expect(unit.declarations, hasLength(0));
14152 listener.assertErrorsWithCodes(errorCodes); 14573 listener.assertErrorsWithCodes(errorCodes);
14153 return unit; 14574 return unit;
14154 } 14575 }
14155 } 14576 }
OLDNEW
« no previous file with comments | « pkg/analyzer/lib/src/generated/parser.dart ('k') | pkg/front_end/lib/src/scanner/token.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698