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

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

Issue 2727753002: Parse InstanceCreationExpression with Fasta. (Closed)
Patch Set: Created 3 years, 9 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
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 4958 matching lines...) Expand 10 before | Expand all | Expand 10 after
4969 expect(expression.parameters, isNotNull); 4969 expect(expression.parameters, isNotNull);
4970 expect((expression.body as ExpressionFunctionBody).semicolon, isNull); 4970 expect((expression.body as ExpressionFunctionBody).semicolon, isNull);
4971 } 4971 }
4972 4972
4973 void test_parseInstanceCreationExpression_qualifiedType() { 4973 void test_parseInstanceCreationExpression_qualifiedType() {
4974 Token token = TokenFactory.tokenFromKeyword(Keyword.NEW); 4974 Token token = TokenFactory.tokenFromKeyword(Keyword.NEW);
4975 InstanceCreationExpression expression = 4975 InstanceCreationExpression expression =
4976 parseInstanceCreationExpression('A.B()', token); 4976 parseInstanceCreationExpression('A.B()', token);
4977 expect(expression, isNotNull); 4977 expect(expression, isNotNull);
4978 assertNoErrors(); 4978 assertNoErrors();
4979 expect(expression.keyword, token); 4979 expect(expression.keyword.keyword, Keyword.NEW);
4980 ConstructorName name = expression.constructorName; 4980 ConstructorName name = expression.constructorName;
4981 expect(name, isNotNull); 4981 expect(name, isNotNull);
4982 TypeName type = name.type; 4982 TypeName type = name.type;
4983 expect(type, isNotNull); 4983 expect(type.name.name, 'A.B');
4984 expect(type.typeArguments, isNull); 4984 expect(type.typeArguments, isNull);
4985 expect(name.period, isNull); 4985 expect(name.period, isNull);
4986 expect(name.name, isNull); 4986 expect(name.name, isNull);
4987 expect(expression.argumentList, isNotNull); 4987 expect(expression.argumentList, isNotNull);
4988 } 4988 }
4989 4989
4990 void test_parseInstanceCreationExpression_qualifiedType_named() { 4990 void test_parseInstanceCreationExpression_qualifiedType_named() {
4991 Token token = TokenFactory.tokenFromKeyword(Keyword.NEW); 4991 Token token = TokenFactory.tokenFromKeyword(Keyword.NEW);
4992 InstanceCreationExpression expression = 4992 InstanceCreationExpression expression =
4993 parseInstanceCreationExpression('A.B.c()', token); 4993 parseInstanceCreationExpression('A.B.c()', token);
4994 expect(expression, isNotNull); 4994 expect(expression, isNotNull);
4995 assertNoErrors(); 4995 assertNoErrors();
4996 expect(expression.keyword, token); 4996 expect(expression.keyword.keyword, Keyword.NEW);
4997 ConstructorName name = expression.constructorName; 4997 ConstructorName name = expression.constructorName;
4998 expect(name, isNotNull); 4998 expect(name, isNotNull);
4999 TypeName type = name.type; 4999 TypeName type = name.type;
5000 expect(type, isNotNull); 5000 expect(type, isNotNull);
5001 expect(type.typeArguments, isNull); 5001 expect(type.typeArguments, isNull);
5002 expect(name.period, isNotNull); 5002 expect(name.period, isNotNull);
5003 expect(name.name, isNotNull); 5003 expect(name.name, isNotNull);
5004 expect(expression.argumentList, isNotNull); 5004 expect(expression.argumentList, isNotNull);
5005 } 5005 }
5006 5006
5007 void 5007 void
5008 test_parseInstanceCreationExpression_qualifiedType_named_typeParameterComm ent() { 5008 test_parseInstanceCreationExpression_qualifiedType_named_typeParameterComm ent() {
5009 enableGenericMethodComments = true; 5009 enableGenericMethodComments = true;
5010 Token token = TokenFactory.tokenFromKeyword(Keyword.NEW); 5010 Token token = TokenFactory.tokenFromKeyword(Keyword.NEW);
5011 InstanceCreationExpression expression = 5011 InstanceCreationExpression expression =
5012 parseInstanceCreationExpression('A.B/*<E>*/.c()', token); 5012 parseInstanceCreationExpression('A.B/*<E>*/.c()', token);
5013 expect(expression, isNotNull); 5013 expect(expression, isNotNull);
5014 assertNoErrors(); 5014 assertNoErrors();
5015 expect(expression.keyword, token); 5015 expect(expression.keyword.keyword, Keyword.NEW);
5016 ConstructorName name = expression.constructorName; 5016 ConstructorName name = expression.constructorName;
5017 expect(name, isNotNull); 5017 expect(name, isNotNull);
5018 TypeName type = name.type; 5018 TypeName type = name.type;
5019 expect(type, isNotNull); 5019 expect(type, isNotNull);
5020 expect(type.typeArguments.arguments, hasLength(1)); 5020 expect(type.typeArguments.arguments, hasLength(1));
5021 expect(name.period, isNotNull); 5021 expect(name.period, isNotNull);
5022 expect(name.name, isNotNull); 5022 expect(name.name, isNotNull);
5023 expect(expression.argumentList, isNotNull); 5023 expect(expression.argumentList, isNotNull);
5024 } 5024 }
5025 5025
5026 void 5026 void
5027 test_parseInstanceCreationExpression_qualifiedType_named_typeParameters() { 5027 test_parseInstanceCreationExpression_qualifiedType_named_typeParameters() {
5028 Token token = TokenFactory.tokenFromKeyword(Keyword.NEW); 5028 Token token = TokenFactory.tokenFromKeyword(Keyword.NEW);
5029 InstanceCreationExpression expression = 5029 InstanceCreationExpression expression =
5030 parseInstanceCreationExpression('A.B<E>.c()', token); 5030 parseInstanceCreationExpression('A.B<E>.c()', token);
5031 expect(expression, isNotNull); 5031 expect(expression, isNotNull);
5032 assertNoErrors(); 5032 assertNoErrors();
5033 expect(expression.keyword, token); 5033 expect(expression.keyword.keyword, Keyword.NEW);
5034 ConstructorName name = expression.constructorName; 5034 ConstructorName name = expression.constructorName;
5035 expect(name, isNotNull); 5035 expect(name, isNotNull);
5036 TypeName type = name.type; 5036 TypeName type = name.type;
5037 expect(type, isNotNull); 5037 expect(type, isNotNull);
5038 expect(type.typeArguments.arguments, hasLength(1)); 5038 expect(type.typeArguments.arguments, hasLength(1));
5039 expect(name.period, isNotNull); 5039 expect(name.period, isNotNull);
5040 expect(name.name, isNotNull); 5040 expect(name.name, isNotNull);
5041 expect(expression.argumentList, isNotNull); 5041 expect(expression.argumentList, isNotNull);
5042 } 5042 }
5043 5043
5044 void 5044 void
5045 test_parseInstanceCreationExpression_qualifiedType_typeParameterComment() { 5045 test_parseInstanceCreationExpression_qualifiedType_typeParameterComment() {
5046 enableGenericMethodComments = true; 5046 enableGenericMethodComments = true;
5047 Token token = TokenFactory.tokenFromKeyword(Keyword.NEW); 5047 Token token = TokenFactory.tokenFromKeyword(Keyword.NEW);
5048 InstanceCreationExpression expression = 5048 InstanceCreationExpression expression =
5049 parseInstanceCreationExpression('A.B/*<E>*/()', token); 5049 parseInstanceCreationExpression('A.B/*<E>*/()', token);
5050 expect(expression, isNotNull); 5050 expect(expression, isNotNull);
5051 assertNoErrors(); 5051 assertNoErrors();
5052 expect(expression.keyword, token); 5052 expect(expression.keyword.keyword, Keyword.NEW);
5053 ConstructorName name = expression.constructorName; 5053 ConstructorName name = expression.constructorName;
5054 expect(name, isNotNull); 5054 expect(name, isNotNull);
5055 TypeName type = name.type; 5055 TypeName type = name.type;
5056 expect(type, isNotNull); 5056 expect(type, isNotNull);
5057 expect(type.typeArguments.arguments, hasLength(1)); 5057 expect(type.typeArguments.arguments, hasLength(1));
5058 expect(name.period, isNull); 5058 expect(name.period, isNull);
5059 expect(name.name, isNull); 5059 expect(name.name, isNull);
5060 expect(expression.argumentList, isNotNull); 5060 expect(expression.argumentList, isNotNull);
5061 } 5061 }
5062 5062
5063 void test_parseInstanceCreationExpression_qualifiedType_typeParameters() { 5063 void test_parseInstanceCreationExpression_qualifiedType_typeParameters() {
5064 Token token = TokenFactory.tokenFromKeyword(Keyword.NEW); 5064 Token token = TokenFactory.tokenFromKeyword(Keyword.NEW);
5065 InstanceCreationExpression expression = 5065 InstanceCreationExpression expression =
5066 parseInstanceCreationExpression('A.B<E>()', token); 5066 parseInstanceCreationExpression('A.B<E>()', token);
5067 expect(expression, isNotNull); 5067 expect(expression, isNotNull);
5068 assertNoErrors(); 5068 assertNoErrors();
5069 expect(expression.keyword, token); 5069 expect(expression.keyword.keyword, Keyword.NEW);
5070 ConstructorName name = expression.constructorName; 5070 ConstructorName name = expression.constructorName;
5071 expect(name, isNotNull); 5071 expect(name, isNotNull);
5072 TypeName type = name.type; 5072 TypeName type = name.type;
5073 expect(type, isNotNull); 5073 expect(type, isNotNull);
5074 expect(type.typeArguments.arguments, hasLength(1)); 5074 expect(type.typeArguments.arguments, hasLength(1));
5075 expect(name.period, isNull); 5075 expect(name.period, isNull);
5076 expect(name.name, isNull); 5076 expect(name.name, isNull);
5077 expect(expression.argumentList, isNotNull); 5077 expect(expression.argumentList, isNotNull);
5078 } 5078 }
5079 5079
5080 void test_parseInstanceCreationExpression_type() { 5080 void test_parseInstanceCreationExpression_type() {
5081 Token token = TokenFactory.tokenFromKeyword(Keyword.NEW); 5081 Token token = TokenFactory.tokenFromKeyword(Keyword.NEW);
5082 InstanceCreationExpression expression = 5082 InstanceCreationExpression expression =
5083 parseInstanceCreationExpression('A()', token); 5083 parseInstanceCreationExpression('A()', token);
5084 expect(expression, isNotNull); 5084 expect(expression, isNotNull);
5085 assertNoErrors(); 5085 assertNoErrors();
5086 expect(expression.keyword, token); 5086 expect(expression.keyword.keyword, Keyword.NEW);
5087 ConstructorName name = expression.constructorName; 5087 ConstructorName name = expression.constructorName;
5088 expect(name, isNotNull); 5088 expect(name, isNotNull);
5089 TypeName type = name.type; 5089 TypeName type = name.type;
5090 expect(type, isNotNull); 5090 expect(type, isNotNull);
5091 expect(type.typeArguments, isNull); 5091 expect(type.typeArguments, isNull);
5092 expect(name.period, isNull); 5092 expect(name.period, isNull);
5093 expect(name.name, isNull); 5093 expect(name.name, isNull);
5094 expect(expression.argumentList, isNotNull); 5094 expect(expression.argumentList, isNotNull);
5095 } 5095 }
5096 5096
5097 void test_parseInstanceCreationExpression_type_named() { 5097 void test_parseInstanceCreationExpression_type_named() {
5098 enableGenericMethodComments = true;
5099 Token token = TokenFactory.tokenFromKeyword(Keyword.NEW); 5098 Token token = TokenFactory.tokenFromKeyword(Keyword.NEW);
5100 InstanceCreationExpression expression = 5099 InstanceCreationExpression expression =
5101 parseInstanceCreationExpression('A.c()', token); 5100 parseInstanceCreationExpression('A.c()', token);
5102 expect(expression, isNotNull); 5101 expect(expression, isNotNull);
5103 assertNoErrors(); 5102 assertNoErrors();
5104 expect(expression.keyword, token); 5103 expect(expression.keyword.keyword, Keyword.NEW);
5105 ConstructorName name = expression.constructorName; 5104 ConstructorName name = expression.constructorName;
5106 expect(name, isNotNull); 5105 expect(name, isNotNull);
5107 TypeName type = name.type; 5106 TypeName type = name.type;
5108 expect(type, isNotNull); 5107 expect(type, isNotNull);
5109 expect(type.typeArguments, isNull); 5108 expect(type.typeArguments, isNull);
5110 expect(name.period, isNull); 5109 expect(name.period, isNull);
5111 expect(name.name, isNull); 5110 expect(name.name, isNull);
5112 expect(expression.argumentList, isNotNull); 5111 expect(expression.argumentList, isNotNull);
5113 } 5112 }
5114 5113
5115 void test_parseInstanceCreationExpression_type_named_typeParameterComment() { 5114 void test_parseInstanceCreationExpression_type_named_typeParameterComment() {
5116 enableGenericMethodComments = true; 5115 enableGenericMethodComments = true;
5117 Token token = TokenFactory.tokenFromKeyword(Keyword.NEW); 5116 Token token = TokenFactory.tokenFromKeyword(Keyword.NEW);
5118 InstanceCreationExpression expression = 5117 InstanceCreationExpression expression =
5119 parseInstanceCreationExpression('A/*<B>*/.c()', token); 5118 parseInstanceCreationExpression('A/*<B>*/.c()', token);
5120 expect(expression, isNotNull); 5119 expect(expression, isNotNull);
5121 assertNoErrors(); 5120 assertNoErrors();
5122 expect(expression.keyword, token); 5121 expect(expression.keyword.keyword, Keyword.NEW);
5123 ConstructorName name = expression.constructorName; 5122 ConstructorName name = expression.constructorName;
5124 expect(name, isNotNull); 5123 expect(name, isNotNull);
5125 TypeName type = name.type; 5124 TypeName type = name.type;
5126 expect(type, isNotNull); 5125 expect(type, isNotNull);
5127 expect(type.typeArguments.arguments, hasLength(1)); 5126 expect(type.typeArguments.arguments, hasLength(1));
5128 expect(name.period, isNotNull); 5127 expect(name.period, isNotNull);
5129 expect(name.name, isNotNull); 5128 expect(name.name, isNotNull);
5130 expect(expression.argumentList, isNotNull); 5129 expect(expression.argumentList, isNotNull);
5131 } 5130 }
5132 5131
5133 void test_parseInstanceCreationExpression_type_named_typeParameters() { 5132 void test_parseInstanceCreationExpression_type_named_typeParameters() {
5134 Token token = TokenFactory.tokenFromKeyword(Keyword.NEW); 5133 Token token = TokenFactory.tokenFromKeyword(Keyword.NEW);
5135 InstanceCreationExpression expression = 5134 InstanceCreationExpression expression =
5136 parseInstanceCreationExpression('A<B>.c()', token); 5135 parseInstanceCreationExpression('A<B>.c()', token);
5137 expect(expression, isNotNull); 5136 expect(expression, isNotNull);
5138 assertNoErrors(); 5137 assertNoErrors();
5139 expect(expression.keyword, token); 5138 expect(expression.keyword.keyword, Keyword.NEW);
5140 ConstructorName name = expression.constructorName; 5139 ConstructorName name = expression.constructorName;
5141 expect(name, isNotNull); 5140 expect(name, isNotNull);
5142 TypeName type = name.type; 5141 TypeName type = name.type;
5143 expect(type, isNotNull); 5142 expect(type, isNotNull);
5144 expect(type.typeArguments.arguments, hasLength(1)); 5143 expect(type.typeArguments.arguments, hasLength(1));
5145 expect(name.period, isNotNull); 5144 expect(name.period, isNotNull);
5146 expect(name.name, isNotNull); 5145 expect(name.name, isNotNull);
5147 expect(expression.argumentList, isNotNull); 5146 expect(expression.argumentList, isNotNull);
5148 } 5147 }
5149 5148
5150 void test_parseInstanceCreationExpression_type_typeParameterComment() { 5149 void test_parseInstanceCreationExpression_type_typeParameterComment() {
5151 enableGenericMethodComments = true; 5150 enableGenericMethodComments = true;
5152 Token token = TokenFactory.tokenFromKeyword(Keyword.NEW); 5151 Token token = TokenFactory.tokenFromKeyword(Keyword.NEW);
5153 InstanceCreationExpression expression = 5152 InstanceCreationExpression expression =
5154 parseInstanceCreationExpression('A/*<B>*/()', token); 5153 parseInstanceCreationExpression('A/*<B>*/()', token);
5155 expect(expression, isNotNull); 5154 expect(expression, isNotNull);
5156 assertNoErrors(); 5155 assertNoErrors();
5157 expect(expression.keyword, token); 5156 expect(expression.keyword.keyword, Keyword.NEW);
5158 ConstructorName name = expression.constructorName; 5157 ConstructorName name = expression.constructorName;
5159 expect(name, isNotNull); 5158 expect(name, isNotNull);
5160 TypeName type = name.type; 5159 TypeName type = name.type;
5161 expect(type, isNotNull); 5160 expect(type, isNotNull);
5162 expect(type.typeArguments.arguments, hasLength(1)); 5161 expect(type.typeArguments.arguments, hasLength(1));
5163 expect(name.period, isNull); 5162 expect(name.period, isNull);
5164 expect(name.name, isNull); 5163 expect(name.name, isNull);
5165 expect(expression.argumentList, isNotNull); 5164 expect(expression.argumentList, isNotNull);
5166 } 5165 }
5167 5166
5168 void test_parseInstanceCreationExpression_type_typeParameters() { 5167 void test_parseInstanceCreationExpression_type_typeParameters() {
5169 Token token = TokenFactory.tokenFromKeyword(Keyword.NEW); 5168 Token token = TokenFactory.tokenFromKeyword(Keyword.NEW);
5170 InstanceCreationExpression expression = 5169 InstanceCreationExpression expression =
5171 parseInstanceCreationExpression('A<B>()', token); 5170 parseInstanceCreationExpression('A<B>()', token);
5172 expect(expression, isNotNull); 5171 expect(expression, isNotNull);
5173 assertNoErrors(); 5172 assertNoErrors();
5174 expect(expression.keyword, token); 5173 expect(expression.keyword.keyword, Keyword.NEW);
5175 ConstructorName name = expression.constructorName; 5174 ConstructorName name = expression.constructorName;
5176 expect(name, isNotNull); 5175 expect(name, isNotNull);
5177 TypeName type = name.type; 5176 TypeName type = name.type;
5178 expect(type, isNotNull); 5177 expect(type, isNotNull);
5179 expect(type.typeArguments.arguments, hasLength(1)); 5178 expect(type.typeArguments.arguments, hasLength(1));
5180 expect(name.period, isNull); 5179 expect(name.period, isNull);
5181 expect(name.name, isNull); 5180 expect(name.name, isNull);
5182 expect(expression.argumentList, isNotNull); 5181 expect(expression.argumentList, isNotNull);
5183 } 5182 }
5184 5183
5185 void test_parseInstanceCreationExpression_type_typeParameters_nullable() { 5184 void test_parseInstanceCreationExpression_type_typeParameters_nullable() {
5186 enableNnbd = true; 5185 enableNnbd = true;
5187 Token token = TokenFactory.tokenFromKeyword(Keyword.NEW); 5186 Token token = TokenFactory.tokenFromKeyword(Keyword.NEW);
5188 InstanceCreationExpression expression = 5187 InstanceCreationExpression expression =
5189 parseInstanceCreationExpression('A<B?>()', token); 5188 parseInstanceCreationExpression('A<B?>()', token);
5190 expect(expression, isNotNull); 5189 expect(expression, isNotNull);
5191 assertNoErrors(); 5190 assertNoErrors();
5192 expect(expression.keyword, token); 5191 expect(expression.keyword.keyword, Keyword.NEW);
5193 ConstructorName name = expression.constructorName; 5192 ConstructorName name = expression.constructorName;
5194 expect(name, isNotNull); 5193 expect(name, isNotNull);
5195 TypeName type = name.type; 5194 TypeName type = name.type;
5196 expect(type, isNotNull); 5195 expect(type, isNotNull);
5197 expect(name.period, isNull); 5196 expect(name.period, isNull);
5198 expect(name.name, isNull); 5197 expect(name.name, isNull);
5199 expect(expression.argumentList, isNotNull); 5198 expect(expression.argumentList, isNotNull);
5200 NodeList<TypeAnnotation> arguments = type.typeArguments.arguments; 5199 NodeList<TypeAnnotation> arguments = type.typeArguments.arguments;
5201 expect(arguments, hasLength(1)); 5200 expect(arguments, hasLength(1));
5202 expect((arguments[0] as TypeName).question, isNotNull); 5201 expect((arguments[0] as TypeName).question, isNotNull);
(...skipping 9374 matching lines...) Expand 10 before | Expand all | Expand 10 after
14577 expect(typeAlias.name, isNotNull); 14576 expect(typeAlias.name, isNotNull);
14578 expect(typeAlias.typeParameters, isNull); 14577 expect(typeAlias.typeParameters, isNull);
14579 expect(typeAlias.semicolon, isNotNull); 14578 expect(typeAlias.semicolon, isNotNull);
14580 GenericFunctionType functionType = typeAlias.functionType; 14579 GenericFunctionType functionType = typeAlias.functionType;
14581 expect(functionType, isNotNull); 14580 expect(functionType, isNotNull);
14582 expect(functionType.parameters, isNotNull); 14581 expect(functionType.parameters, isNotNull);
14583 expect(functionType.returnType, isNotNull); 14582 expect(functionType.returnType, isNotNull);
14584 expect(functionType.typeParameters, isNull); 14583 expect(functionType.typeParameters, isNull);
14585 } 14584 }
14586 } 14585 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698