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

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

Issue 712083003: Create fewer unnecessary lists (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
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 // This code was auto-generated, is not intended to be edited, and is subject to 5 // This code was auto-generated, is not intended to be edited, and is subject to
6 // significant change. Please see the README file for more information. 6 // significant change. Please see the README file for more information.
7 7
8 library engine.parser_test; 8 library engine.parser_test;
9 9
10 import 'package:analyzer/src/generated/error.dart'; 10 import 'package:analyzer/src/generated/error.dart';
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after
105 105
106 /** 106 /**
107 * The class `ComplexParserTest` defines parser tests that test the parsing of m ore complex 107 * The class `ComplexParserTest` defines parser tests that test the parsing of m ore complex
108 * code fragments or the interactions between multiple parsing methods. For exam ple, tests to ensure 108 * code fragments or the interactions between multiple parsing methods. For exam ple, tests to ensure
109 * that the precedence of operations is being handled correctly should be define d in this class. 109 * that the precedence of operations is being handled correctly should be define d in this class.
110 * 110 *
111 * Simpler tests should be defined in the class [SimpleParserTest]. 111 * Simpler tests should be defined in the class [SimpleParserTest].
112 */ 112 */
113 class ComplexParserTest extends ParserTestCase { 113 class ComplexParserTest extends ParserTestCase {
114 void test_additiveExpression_normal() { 114 void test_additiveExpression_normal() {
115 BinaryExpression expression = ParserTestCase.parseExpression("x + y - z", [] ); 115 BinaryExpression expression = ParserTestCase.parseExpression("x + y - z");
116 EngineTestCase.assertInstanceOf((obj) => obj is BinaryExpression, BinaryExpr ession, expression.leftOperand); 116 EngineTestCase.assertInstanceOf((obj) => obj is BinaryExpression, BinaryExpr ession, expression.leftOperand);
117 } 117 }
118 118
119 void test_additiveExpression_noSpaces() { 119 void test_additiveExpression_noSpaces() {
120 BinaryExpression expression = ParserTestCase.parseExpression("i+1", []); 120 BinaryExpression expression = ParserTestCase.parseExpression("i+1");
121 EngineTestCase.assertInstanceOf((obj) => obj is SimpleIdentifier, SimpleIden tifier, expression.leftOperand); 121 EngineTestCase.assertInstanceOf((obj) => obj is SimpleIdentifier, SimpleIden tifier, expression.leftOperand);
122 EngineTestCase.assertInstanceOf((obj) => obj is IntegerLiteral, IntegerLiter al, expression.rightOperand); 122 EngineTestCase.assertInstanceOf((obj) => obj is IntegerLiteral, IntegerLiter al, expression.rightOperand);
123 } 123 }
124 124
125 void test_additiveExpression_precedence_multiplicative_left() { 125 void test_additiveExpression_precedence_multiplicative_left() {
126 BinaryExpression expression = ParserTestCase.parseExpression("x * y + z", [] ); 126 BinaryExpression expression = ParserTestCase.parseExpression("x * y + z");
127 EngineTestCase.assertInstanceOf((obj) => obj is BinaryExpression, BinaryExpr ession, expression.leftOperand); 127 EngineTestCase.assertInstanceOf((obj) => obj is BinaryExpression, BinaryExpr ession, expression.leftOperand);
128 } 128 }
129 129
130 void test_additiveExpression_precedence_multiplicative_left_withSuper() { 130 void test_additiveExpression_precedence_multiplicative_left_withSuper() {
131 BinaryExpression expression = ParserTestCase.parseExpression("super * y - z" , []); 131 BinaryExpression expression = ParserTestCase.parseExpression("super * y - z" );
132 EngineTestCase.assertInstanceOf((obj) => obj is BinaryExpression, BinaryExpr ession, expression.leftOperand); 132 EngineTestCase.assertInstanceOf((obj) => obj is BinaryExpression, BinaryExpr ession, expression.leftOperand);
133 } 133 }
134 134
135 void test_additiveExpression_precedence_multiplicative_right() { 135 void test_additiveExpression_precedence_multiplicative_right() {
136 BinaryExpression expression = ParserTestCase.parseExpression("x + y * z", [] ); 136 BinaryExpression expression = ParserTestCase.parseExpression("x + y * z");
137 EngineTestCase.assertInstanceOf((obj) => obj is BinaryExpression, BinaryExpr ession, expression.rightOperand); 137 EngineTestCase.assertInstanceOf((obj) => obj is BinaryExpression, BinaryExpr ession, expression.rightOperand);
138 } 138 }
139 139
140 void test_additiveExpression_super() { 140 void test_additiveExpression_super() {
141 BinaryExpression expression = ParserTestCase.parseExpression("super + y - z" , []); 141 BinaryExpression expression = ParserTestCase.parseExpression("super + y - z" );
142 EngineTestCase.assertInstanceOf((obj) => obj is BinaryExpression, BinaryExpr ession, expression.leftOperand); 142 EngineTestCase.assertInstanceOf((obj) => obj is BinaryExpression, BinaryExpr ession, expression.leftOperand);
143 } 143 }
144 144
145 void test_assignableExpression_arguments_normal_chain() { 145 void test_assignableExpression_arguments_normal_chain() {
146 PropertyAccess propertyAccess1 = ParserTestCase.parseExpression("a(b)(c).d(e ).f", []); 146 PropertyAccess propertyAccess1 = ParserTestCase.parseExpression("a(b)(c).d(e ).f");
147 expect(propertyAccess1.propertyName.name, "f"); 147 expect(propertyAccess1.propertyName.name, "f");
148 // 148 //
149 // a(b)(c).d(e) 149 // a(b)(c).d(e)
150 // 150 //
151 MethodInvocation invocation2 = EngineTestCase.assertInstanceOf((obj) => obj is MethodInvocation, MethodInvocation, propertyAccess1.target); 151 MethodInvocation invocation2 = EngineTestCase.assertInstanceOf((obj) => obj is MethodInvocation, MethodInvocation, propertyAccess1.target);
152 expect(invocation2.methodName.name, "d"); 152 expect(invocation2.methodName.name, "d");
153 ArgumentList argumentList2 = invocation2.argumentList; 153 ArgumentList argumentList2 = invocation2.argumentList;
154 expect(argumentList2, isNotNull); 154 expect(argumentList2, isNotNull);
155 expect(argumentList2.arguments, hasLength(1)); 155 expect(argumentList2.arguments, hasLength(1));
156 // 156 //
157 // a(b)(c) 157 // a(b)(c)
158 // 158 //
159 FunctionExpressionInvocation invocation3 = EngineTestCase.assertInstanceOf(( obj) => obj is FunctionExpressionInvocation, FunctionExpressionInvocation, invoc ation2.target); 159 FunctionExpressionInvocation invocation3 = EngineTestCase.assertInstanceOf(( obj) => obj is FunctionExpressionInvocation, FunctionExpressionInvocation, invoc ation2.target);
160 ArgumentList argumentList3 = invocation3.argumentList; 160 ArgumentList argumentList3 = invocation3.argumentList;
161 expect(argumentList3, isNotNull); 161 expect(argumentList3, isNotNull);
162 expect(argumentList3.arguments, hasLength(1)); 162 expect(argumentList3.arguments, hasLength(1));
163 // 163 //
164 // a(b) 164 // a(b)
165 // 165 //
166 MethodInvocation invocation4 = EngineTestCase.assertInstanceOf((obj) => obj is MethodInvocation, MethodInvocation, invocation3.function); 166 MethodInvocation invocation4 = EngineTestCase.assertInstanceOf((obj) => obj is MethodInvocation, MethodInvocation, invocation3.function);
167 expect(invocation4.methodName.name, "a"); 167 expect(invocation4.methodName.name, "a");
168 ArgumentList argumentList4 = invocation4.argumentList; 168 ArgumentList argumentList4 = invocation4.argumentList;
169 expect(argumentList4, isNotNull); 169 expect(argumentList4, isNotNull);
170 expect(argumentList4.arguments, hasLength(1)); 170 expect(argumentList4.arguments, hasLength(1));
171 } 171 }
172 172
173 void test_assignmentExpression_compound() { 173 void test_assignmentExpression_compound() {
174 AssignmentExpression expression = ParserTestCase.parseExpression("x = y = 0" , []); 174 AssignmentExpression expression = ParserTestCase.parseExpression("x = y = 0" );
175 EngineTestCase.assertInstanceOf((obj) => obj is SimpleIdentifier, SimpleIden tifier, expression.leftHandSide); 175 EngineTestCase.assertInstanceOf((obj) => obj is SimpleIdentifier, SimpleIden tifier, expression.leftHandSide);
176 EngineTestCase.assertInstanceOf((obj) => obj is AssignmentExpression, Assign mentExpression, expression.rightHandSide); 176 EngineTestCase.assertInstanceOf((obj) => obj is AssignmentExpression, Assign mentExpression, expression.rightHandSide);
177 } 177 }
178 178
179 void test_assignmentExpression_indexExpression() { 179 void test_assignmentExpression_indexExpression() {
180 AssignmentExpression expression = ParserTestCase.parseExpression("x[1] = 0", []); 180 AssignmentExpression expression = ParserTestCase.parseExpression("x[1] = 0") ;
181 EngineTestCase.assertInstanceOf((obj) => obj is IndexExpression, IndexExpres sion, expression.leftHandSide); 181 EngineTestCase.assertInstanceOf((obj) => obj is IndexExpression, IndexExpres sion, expression.leftHandSide);
182 EngineTestCase.assertInstanceOf((obj) => obj is IntegerLiteral, IntegerLiter al, expression.rightHandSide); 182 EngineTestCase.assertInstanceOf((obj) => obj is IntegerLiteral, IntegerLiter al, expression.rightHandSide);
183 } 183 }
184 184
185 void test_assignmentExpression_prefixedIdentifier() { 185 void test_assignmentExpression_prefixedIdentifier() {
186 AssignmentExpression expression = ParserTestCase.parseExpression("x.y = 0", []); 186 AssignmentExpression expression = ParserTestCase.parseExpression("x.y = 0");
187 EngineTestCase.assertInstanceOf((obj) => obj is PrefixedIdentifier, Prefixed Identifier, expression.leftHandSide); 187 EngineTestCase.assertInstanceOf((obj) => obj is PrefixedIdentifier, Prefixed Identifier, expression.leftHandSide);
188 EngineTestCase.assertInstanceOf((obj) => obj is IntegerLiteral, IntegerLiter al, expression.rightHandSide); 188 EngineTestCase.assertInstanceOf((obj) => obj is IntegerLiteral, IntegerLiter al, expression.rightHandSide);
189 } 189 }
190 190
191 void test_assignmentExpression_propertyAccess() { 191 void test_assignmentExpression_propertyAccess() {
192 AssignmentExpression expression = ParserTestCase.parseExpression("super.y = 0", []); 192 AssignmentExpression expression = ParserTestCase.parseExpression("super.y = 0");
193 EngineTestCase.assertInstanceOf((obj) => obj is PropertyAccess, PropertyAcce ss, expression.leftHandSide); 193 EngineTestCase.assertInstanceOf((obj) => obj is PropertyAccess, PropertyAcce ss, expression.leftHandSide);
194 EngineTestCase.assertInstanceOf((obj) => obj is IntegerLiteral, IntegerLiter al, expression.rightHandSide); 194 EngineTestCase.assertInstanceOf((obj) => obj is IntegerLiteral, IntegerLiter al, expression.rightHandSide);
195 } 195 }
196 196
197 void test_bitwiseAndExpression_normal() { 197 void test_bitwiseAndExpression_normal() {
198 BinaryExpression expression = ParserTestCase.parseExpression("x & y & z", [] ); 198 BinaryExpression expression = ParserTestCase.parseExpression("x & y & z");
199 EngineTestCase.assertInstanceOf((obj) => obj is BinaryExpression, BinaryExpr ession, expression.leftOperand); 199 EngineTestCase.assertInstanceOf((obj) => obj is BinaryExpression, BinaryExpr ession, expression.leftOperand);
200 } 200 }
201 201
202 void test_bitwiseAndExpression_precedence_equality_left() { 202 void test_bitwiseAndExpression_precedence_equality_left() {
203 BinaryExpression expression = ParserTestCase.parseExpression("x == y && z", []); 203 BinaryExpression expression = ParserTestCase.parseExpression("x == y && z");
204 EngineTestCase.assertInstanceOf((obj) => obj is BinaryExpression, BinaryExpr ession, expression.leftOperand); 204 EngineTestCase.assertInstanceOf((obj) => obj is BinaryExpression, BinaryExpr ession, expression.leftOperand);
205 } 205 }
206 206
207 void test_bitwiseAndExpression_precedence_equality_right() { 207 void test_bitwiseAndExpression_precedence_equality_right() {
208 BinaryExpression expression = ParserTestCase.parseExpression("x && y == z", []); 208 BinaryExpression expression = ParserTestCase.parseExpression("x && y == z");
209 EngineTestCase.assertInstanceOf((obj) => obj is BinaryExpression, BinaryExpr ession, expression.rightOperand); 209 EngineTestCase.assertInstanceOf((obj) => obj is BinaryExpression, BinaryExpr ession, expression.rightOperand);
210 } 210 }
211 211
212 void test_bitwiseAndExpression_super() { 212 void test_bitwiseAndExpression_super() {
213 BinaryExpression expression = ParserTestCase.parseExpression("super & y & z" , []); 213 BinaryExpression expression = ParserTestCase.parseExpression("super & y & z" );
214 EngineTestCase.assertInstanceOf((obj) => obj is BinaryExpression, BinaryExpr ession, expression.leftOperand); 214 EngineTestCase.assertInstanceOf((obj) => obj is BinaryExpression, BinaryExpr ession, expression.leftOperand);
215 } 215 }
216 216
217 void test_bitwiseOrExpression_normal() { 217 void test_bitwiseOrExpression_normal() {
218 BinaryExpression expression = ParserTestCase.parseExpression("x | y | z", [] ); 218 BinaryExpression expression = ParserTestCase.parseExpression("x | y | z");
219 EngineTestCase.assertInstanceOf((obj) => obj is BinaryExpression, BinaryExpr ession, expression.leftOperand); 219 EngineTestCase.assertInstanceOf((obj) => obj is BinaryExpression, BinaryExpr ession, expression.leftOperand);
220 } 220 }
221 221
222 void test_bitwiseOrExpression_precedence_xor_left() { 222 void test_bitwiseOrExpression_precedence_xor_left() {
223 BinaryExpression expression = ParserTestCase.parseExpression("x ^ y | z", [] ); 223 BinaryExpression expression = ParserTestCase.parseExpression("x ^ y | z");
224 EngineTestCase.assertInstanceOf((obj) => obj is BinaryExpression, BinaryExpr ession, expression.leftOperand); 224 EngineTestCase.assertInstanceOf((obj) => obj is BinaryExpression, BinaryExpr ession, expression.leftOperand);
225 } 225 }
226 226
227 void test_bitwiseOrExpression_precedence_xor_right() { 227 void test_bitwiseOrExpression_precedence_xor_right() {
228 BinaryExpression expression = ParserTestCase.parseExpression("x | y ^ z", [] ); 228 BinaryExpression expression = ParserTestCase.parseExpression("x | y ^ z");
229 EngineTestCase.assertInstanceOf((obj) => obj is BinaryExpression, BinaryExpr ession, expression.rightOperand); 229 EngineTestCase.assertInstanceOf((obj) => obj is BinaryExpression, BinaryExpr ession, expression.rightOperand);
230 } 230 }
231 231
232 void test_bitwiseOrExpression_super() { 232 void test_bitwiseOrExpression_super() {
233 BinaryExpression expression = ParserTestCase.parseExpression("super | y | z" , []); 233 BinaryExpression expression = ParserTestCase.parseExpression("super | y | z" );
234 EngineTestCase.assertInstanceOf((obj) => obj is BinaryExpression, BinaryExpr ession, expression.leftOperand); 234 EngineTestCase.assertInstanceOf((obj) => obj is BinaryExpression, BinaryExpr ession, expression.leftOperand);
235 } 235 }
236 236
237 void test_bitwiseXorExpression_normal() { 237 void test_bitwiseXorExpression_normal() {
238 BinaryExpression expression = ParserTestCase.parseExpression("x ^ y ^ z", [] ); 238 BinaryExpression expression = ParserTestCase.parseExpression("x ^ y ^ z");
239 EngineTestCase.assertInstanceOf((obj) => obj is BinaryExpression, BinaryExpr ession, expression.leftOperand); 239 EngineTestCase.assertInstanceOf((obj) => obj is BinaryExpression, BinaryExpr ession, expression.leftOperand);
240 } 240 }
241 241
242 void test_bitwiseXorExpression_precedence_and_left() { 242 void test_bitwiseXorExpression_precedence_and_left() {
243 BinaryExpression expression = ParserTestCase.parseExpression("x & y ^ z", [] ); 243 BinaryExpression expression = ParserTestCase.parseExpression("x & y ^ z");
244 EngineTestCase.assertInstanceOf((obj) => obj is BinaryExpression, BinaryExpr ession, expression.leftOperand); 244 EngineTestCase.assertInstanceOf((obj) => obj is BinaryExpression, BinaryExpr ession, expression.leftOperand);
245 } 245 }
246 246
247 void test_bitwiseXorExpression_precedence_and_right() { 247 void test_bitwiseXorExpression_precedence_and_right() {
248 BinaryExpression expression = ParserTestCase.parseExpression("x ^ y & z", [] ); 248 BinaryExpression expression = ParserTestCase.parseExpression("x ^ y & z");
249 EngineTestCase.assertInstanceOf((obj) => obj is BinaryExpression, BinaryExpr ession, expression.rightOperand); 249 EngineTestCase.assertInstanceOf((obj) => obj is BinaryExpression, BinaryExpr ession, expression.rightOperand);
250 } 250 }
251 251
252 void test_bitwiseXorExpression_super() { 252 void test_bitwiseXorExpression_super() {
253 BinaryExpression expression = ParserTestCase.parseExpression("super ^ y ^ z" , []); 253 BinaryExpression expression = ParserTestCase.parseExpression("super ^ y ^ z" );
254 EngineTestCase.assertInstanceOf((obj) => obj is BinaryExpression, BinaryExpr ession, expression.leftOperand); 254 EngineTestCase.assertInstanceOf((obj) => obj is BinaryExpression, BinaryExpr ession, expression.leftOperand);
255 } 255 }
256 256
257 void test_cascade_withAssignment() { 257 void test_cascade_withAssignment() {
258 CascadeExpression cascade = ParserTestCase.parseExpression("new Map()..[3] = 4 ..[0] = 11;", []); 258 CascadeExpression cascade = ParserTestCase.parseExpression("new Map()..[3] = 4 ..[0] = 11;");
259 Expression target = cascade.target; 259 Expression target = cascade.target;
260 for (Expression section in cascade.cascadeSections) { 260 for (Expression section in cascade.cascadeSections) {
261 EngineTestCase.assertInstanceOf((obj) => obj is AssignmentExpression, Assi gnmentExpression, section); 261 EngineTestCase.assertInstanceOf((obj) => obj is AssignmentExpression, Assi gnmentExpression, section);
262 Expression lhs = (section as AssignmentExpression).leftHandSide; 262 Expression lhs = (section as AssignmentExpression).leftHandSide;
263 EngineTestCase.assertInstanceOf((obj) => obj is IndexExpression, IndexExpr ession, lhs); 263 EngineTestCase.assertInstanceOf((obj) => obj is IndexExpression, IndexExpr ession, lhs);
264 IndexExpression index = lhs as IndexExpression; 264 IndexExpression index = lhs as IndexExpression;
265 expect(index.isCascaded, isTrue); 265 expect(index.isCascaded, isTrue);
266 expect(index.realTarget, same(target)); 266 expect(index.realTarget, same(target));
267 } 267 }
268 } 268 }
269 269
270 void test_conditionalExpression_precedence_logicalOrExpression() { 270 void test_conditionalExpression_precedence_logicalOrExpression() {
271 ConditionalExpression expression = ParserTestCase.parseExpression("a | b ? y : z", []); 271 ConditionalExpression expression = ParserTestCase.parseExpression("a | b ? y : z");
272 EngineTestCase.assertInstanceOf((obj) => obj is BinaryExpression, BinaryExpr ession, expression.condition); 272 EngineTestCase.assertInstanceOf((obj) => obj is BinaryExpression, BinaryExpr ession, expression.condition);
273 } 273 }
274 274
275 void test_constructor_initializer_withParenthesizedExpression() { 275 void test_constructor_initializer_withParenthesizedExpression() {
276 CompilationUnit unit = ParserTestCase.parseCompilationUnit(r''' 276 CompilationUnit unit = ParserTestCase.parseCompilationUnit(r'''
277 class C { 277 class C {
278 C() : 278 C() :
279 this.a = (b == null ? c : d) { 279 this.a = (b == null ? c : d) {
280 } 280 }
281 }''', []); 281 }''');
282 NodeList<CompilationUnitMember> declarations = unit.declarations; 282 NodeList<CompilationUnitMember> declarations = unit.declarations;
283 expect(declarations, hasLength(1)); 283 expect(declarations, hasLength(1));
284 } 284 }
285 285
286 void test_equalityExpression_normal() { 286 void test_equalityExpression_normal() {
287 BinaryExpression expression = ParserTestCase.parseExpression("x == y != z", [ParserErrorCode.EQUALITY_CANNOT_BE_EQUALITY_OPERAND]); 287 BinaryExpression expression = ParserTestCase.parseExpression("x == y != z", [ParserErrorCode.EQUALITY_CANNOT_BE_EQUALITY_OPERAND]);
288 EngineTestCase.assertInstanceOf((obj) => obj is BinaryExpression, BinaryExpr ession, expression.leftOperand); 288 EngineTestCase.assertInstanceOf((obj) => obj is BinaryExpression, BinaryExpr ession, expression.leftOperand);
289 } 289 }
290 290
291 void test_equalityExpression_precedence_relational_left() { 291 void test_equalityExpression_precedence_relational_left() {
292 BinaryExpression expression = ParserTestCase.parseExpression("x is y == z", []); 292 BinaryExpression expression = ParserTestCase.parseExpression("x is y == z");
293 EngineTestCase.assertInstanceOf((obj) => obj is IsExpression, IsExpression, expression.leftOperand); 293 EngineTestCase.assertInstanceOf((obj) => obj is IsExpression, IsExpression, expression.leftOperand);
294 } 294 }
295 295
296 void test_equalityExpression_precedence_relational_right() { 296 void test_equalityExpression_precedence_relational_right() {
297 BinaryExpression expression = ParserTestCase.parseExpression("x == y is z", []); 297 BinaryExpression expression = ParserTestCase.parseExpression("x == y is z");
298 EngineTestCase.assertInstanceOf((obj) => obj is IsExpression, IsExpression, expression.rightOperand); 298 EngineTestCase.assertInstanceOf((obj) => obj is IsExpression, IsExpression, expression.rightOperand);
299 } 299 }
300 300
301 void test_equalityExpression_super() { 301 void test_equalityExpression_super() {
302 BinaryExpression expression = ParserTestCase.parseExpression("super == y != z", [ParserErrorCode.EQUALITY_CANNOT_BE_EQUALITY_OPERAND]); 302 BinaryExpression expression = ParserTestCase.parseExpression("super == y != z", [ParserErrorCode.EQUALITY_CANNOT_BE_EQUALITY_OPERAND]);
303 EngineTestCase.assertInstanceOf((obj) => obj is BinaryExpression, BinaryExpr ession, expression.leftOperand); 303 EngineTestCase.assertInstanceOf((obj) => obj is BinaryExpression, BinaryExpr ession, expression.leftOperand);
304 } 304 }
305 305
306 void test_logicalAndExpression() { 306 void test_logicalAndExpression() {
307 BinaryExpression expression = ParserTestCase.parseExpression("x && y && z", []); 307 BinaryExpression expression = ParserTestCase.parseExpression("x && y && z");
308 EngineTestCase.assertInstanceOf((obj) => obj is BinaryExpression, BinaryExpr ession, expression.leftOperand); 308 EngineTestCase.assertInstanceOf((obj) => obj is BinaryExpression, BinaryExpr ession, expression.leftOperand);
309 } 309 }
310 310
311 void test_logicalAndExpression_precedence_bitwiseOr_left() { 311 void test_logicalAndExpression_precedence_bitwiseOr_left() {
312 BinaryExpression expression = ParserTestCase.parseExpression("x | y < z", [] ); 312 BinaryExpression expression = ParserTestCase.parseExpression("x | y < z");
313 EngineTestCase.assertInstanceOf((obj) => obj is BinaryExpression, BinaryExpr ession, expression.leftOperand); 313 EngineTestCase.assertInstanceOf((obj) => obj is BinaryExpression, BinaryExpr ession, expression.leftOperand);
314 } 314 }
315 315
316 void test_logicalAndExpression_precedence_bitwiseOr_right() { 316 void test_logicalAndExpression_precedence_bitwiseOr_right() {
317 BinaryExpression expression = ParserTestCase.parseExpression("x < y | z", [] ); 317 BinaryExpression expression = ParserTestCase.parseExpression("x < y | z");
318 EngineTestCase.assertInstanceOf((obj) => obj is BinaryExpression, BinaryExpr ession, expression.rightOperand); 318 EngineTestCase.assertInstanceOf((obj) => obj is BinaryExpression, BinaryExpr ession, expression.rightOperand);
319 } 319 }
320 320
321 void test_logicalOrExpression() { 321 void test_logicalOrExpression() {
322 BinaryExpression expression = ParserTestCase.parseExpression("x || y || z", []); 322 BinaryExpression expression = ParserTestCase.parseExpression("x || y || z");
323 EngineTestCase.assertInstanceOf((obj) => obj is BinaryExpression, BinaryExpr ession, expression.leftOperand); 323 EngineTestCase.assertInstanceOf((obj) => obj is BinaryExpression, BinaryExpr ession, expression.leftOperand);
324 } 324 }
325 325
326 void test_logicalOrExpression_precedence_logicalAnd_left() { 326 void test_logicalOrExpression_precedence_logicalAnd_left() {
327 BinaryExpression expression = ParserTestCase.parseExpression("x && y || z", []); 327 BinaryExpression expression = ParserTestCase.parseExpression("x && y || z");
328 EngineTestCase.assertInstanceOf((obj) => obj is BinaryExpression, BinaryExpr ession, expression.leftOperand); 328 EngineTestCase.assertInstanceOf((obj) => obj is BinaryExpression, BinaryExpr ession, expression.leftOperand);
329 } 329 }
330 330
331 void test_logicalOrExpression_precedence_logicalAnd_right() { 331 void test_logicalOrExpression_precedence_logicalAnd_right() {
332 BinaryExpression expression = ParserTestCase.parseExpression("x || y && z", []); 332 BinaryExpression expression = ParserTestCase.parseExpression("x || y && z");
333 EngineTestCase.assertInstanceOf((obj) => obj is BinaryExpression, BinaryExpr ession, expression.rightOperand); 333 EngineTestCase.assertInstanceOf((obj) => obj is BinaryExpression, BinaryExpr ession, expression.rightOperand);
334 } 334 }
335 335
336 void test_multipleLabels_statement() { 336 void test_multipleLabels_statement() {
337 LabeledStatement statement = ParserTestCase.parseStatement("a: b: c: return x;", []); 337 LabeledStatement statement = ParserTestCase.parseStatement("a: b: c: return x;");
338 expect(statement.labels, hasLength(3)); 338 expect(statement.labels, hasLength(3));
339 EngineTestCase.assertInstanceOf((obj) => obj is ReturnStatement, ReturnState ment, statement.statement); 339 EngineTestCase.assertInstanceOf((obj) => obj is ReturnStatement, ReturnState ment, statement.statement);
340 } 340 }
341 341
342 void test_multiplicativeExpression_normal() { 342 void test_multiplicativeExpression_normal() {
343 BinaryExpression expression = ParserTestCase.parseExpression("x * y / z", [] ); 343 BinaryExpression expression = ParserTestCase.parseExpression("x * y / z");
344 EngineTestCase.assertInstanceOf((obj) => obj is BinaryExpression, BinaryExpr ession, expression.leftOperand); 344 EngineTestCase.assertInstanceOf((obj) => obj is BinaryExpression, BinaryExpr ession, expression.leftOperand);
345 } 345 }
346 346
347 void test_multiplicativeExpression_precedence_unary_left() { 347 void test_multiplicativeExpression_precedence_unary_left() {
348 BinaryExpression expression = ParserTestCase.parseExpression("-x * y", []); 348 BinaryExpression expression = ParserTestCase.parseExpression("-x * y");
349 EngineTestCase.assertInstanceOf((obj) => obj is PrefixExpression, PrefixExpr ession, expression.leftOperand); 349 EngineTestCase.assertInstanceOf((obj) => obj is PrefixExpression, PrefixExpr ession, expression.leftOperand);
350 } 350 }
351 351
352 void test_multiplicativeExpression_precedence_unary_right() { 352 void test_multiplicativeExpression_precedence_unary_right() {
353 BinaryExpression expression = ParserTestCase.parseExpression("x * -y", []); 353 BinaryExpression expression = ParserTestCase.parseExpression("x * -y");
354 EngineTestCase.assertInstanceOf((obj) => obj is PrefixExpression, PrefixExpr ession, expression.rightOperand); 354 EngineTestCase.assertInstanceOf((obj) => obj is PrefixExpression, PrefixExpr ession, expression.rightOperand);
355 } 355 }
356 356
357 void test_multiplicativeExpression_super() { 357 void test_multiplicativeExpression_super() {
358 BinaryExpression expression = ParserTestCase.parseExpression("super * y / z" , []); 358 BinaryExpression expression = ParserTestCase.parseExpression("super * y / z" );
359 EngineTestCase.assertInstanceOf((obj) => obj is BinaryExpression, BinaryExpr ession, expression.leftOperand); 359 EngineTestCase.assertInstanceOf((obj) => obj is BinaryExpression, BinaryExpr ession, expression.leftOperand);
360 } 360 }
361 361
362 void test_relationalExpression_precedence_shift_right() { 362 void test_relationalExpression_precedence_shift_right() {
363 IsExpression expression = ParserTestCase.parseExpression("x << y is z", []); 363 IsExpression expression = ParserTestCase.parseExpression("x << y is z");
364 EngineTestCase.assertInstanceOf((obj) => obj is BinaryExpression, BinaryExpr ession, expression.expression); 364 EngineTestCase.assertInstanceOf((obj) => obj is BinaryExpression, BinaryExpr ession, expression.expression);
365 } 365 }
366 366
367 void test_shiftExpression_normal() { 367 void test_shiftExpression_normal() {
368 BinaryExpression expression = ParserTestCase.parseExpression("x >> 4 << 3", []); 368 BinaryExpression expression = ParserTestCase.parseExpression("x >> 4 << 3");
369 EngineTestCase.assertInstanceOf((obj) => obj is BinaryExpression, BinaryExpr ession, expression.leftOperand); 369 EngineTestCase.assertInstanceOf((obj) => obj is BinaryExpression, BinaryExpr ession, expression.leftOperand);
370 } 370 }
371 371
372 void test_shiftExpression_precedence_additive_left() { 372 void test_shiftExpression_precedence_additive_left() {
373 BinaryExpression expression = ParserTestCase.parseExpression("x + y << z", [ ]); 373 BinaryExpression expression = ParserTestCase.parseExpression("x + y << z");
374 EngineTestCase.assertInstanceOf((obj) => obj is BinaryExpression, BinaryExpr ession, expression.leftOperand); 374 EngineTestCase.assertInstanceOf((obj) => obj is BinaryExpression, BinaryExpr ession, expression.leftOperand);
375 } 375 }
376 376
377 void test_shiftExpression_precedence_additive_right() { 377 void test_shiftExpression_precedence_additive_right() {
378 BinaryExpression expression = ParserTestCase.parseExpression("x << y + z", [ ]); 378 BinaryExpression expression = ParserTestCase.parseExpression("x << y + z");
379 EngineTestCase.assertInstanceOf((obj) => obj is BinaryExpression, BinaryExpr ession, expression.rightOperand); 379 EngineTestCase.assertInstanceOf((obj) => obj is BinaryExpression, BinaryExpr ession, expression.rightOperand);
380 } 380 }
381 381
382 void test_shiftExpression_super() { 382 void test_shiftExpression_super() {
383 BinaryExpression expression = ParserTestCase.parseExpression("super >> 4 << 3", []); 383 BinaryExpression expression = ParserTestCase.parseExpression("super >> 4 << 3");
384 EngineTestCase.assertInstanceOf((obj) => obj is BinaryExpression, BinaryExpr ession, expression.leftOperand); 384 EngineTestCase.assertInstanceOf((obj) => obj is BinaryExpression, BinaryExpr ession, expression.leftOperand);
385 } 385 }
386 386
387 void test_topLevelVariable_withMetadata() { 387 void test_topLevelVariable_withMetadata() {
388 ParserTestCase.parseCompilationUnit("String @A string;", []); 388 ParserTestCase.parseCompilationUnit("String @A string;");
389 } 389 }
390 } 390 }
391 391
392 /** 392 /**
393 * The class `ErrorParserTest` defines parser tests that test the parsing of cod e to ensure 393 * The class `ErrorParserTest` defines parser tests that test the parsing of cod e to ensure
394 * that errors are correctly reported, and in some cases, not reported. 394 * that errors are correctly reported, and in some cases, not reported.
395 */ 395 */
396 class ErrorParserTest extends ParserTestCase { 396 class ErrorParserTest extends ParserTestCase {
397 void fail_expectedListOrMapLiteral() { 397 void fail_expectedListOrMapLiteral() {
398 // It isn't clear that this test can ever pass. The parser is currently crea te a synthetic list 398 // It isn't clear that this test can ever pass. The parser is currently crea te a synthetic list
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after
521 521
522 void test_assertDoesNotTakeRethrow() { 522 void test_assertDoesNotTakeRethrow() {
523 ParserTestCase.parse4("parseAssertStatement", "assert(rethrow);", [ParserErr orCode.ASSERT_DOES_NOT_TAKE_RETHROW]); 523 ParserTestCase.parse4("parseAssertStatement", "assert(rethrow);", [ParserErr orCode.ASSERT_DOES_NOT_TAKE_RETHROW]);
524 } 524 }
525 525
526 void test_assertDoesNotTakeThrow() { 526 void test_assertDoesNotTakeThrow() {
527 ParserTestCase.parse4("parseAssertStatement", "assert(throw x);", [ParserErr orCode.ASSERT_DOES_NOT_TAKE_THROW]); 527 ParserTestCase.parse4("parseAssertStatement", "assert(throw x);", [ParserErr orCode.ASSERT_DOES_NOT_TAKE_THROW]);
528 } 528 }
529 529
530 void test_breakOutsideOfLoop_breakInDoStatement() { 530 void test_breakOutsideOfLoop_breakInDoStatement() {
531 ParserTestCase.parse4("parseDoStatement", "do {break;} while (x);", []); 531 ParserTestCase.parse4("parseDoStatement", "do {break;} while (x);");
532 } 532 }
533 533
534 void test_breakOutsideOfLoop_breakInForStatement() { 534 void test_breakOutsideOfLoop_breakInForStatement() {
535 ParserTestCase.parse4("parseForStatement", "for (; x;) {break;}", []); 535 ParserTestCase.parse4("parseForStatement", "for (; x;) {break;}");
536 } 536 }
537 537
538 void test_breakOutsideOfLoop_breakInIfStatement() { 538 void test_breakOutsideOfLoop_breakInIfStatement() {
539 ParserTestCase.parse4("parseIfStatement", "if (x) {break;}", [ParserErrorCod e.BREAK_OUTSIDE_OF_LOOP]); 539 ParserTestCase.parse4("parseIfStatement", "if (x) {break;}", [ParserErrorCod e.BREAK_OUTSIDE_OF_LOOP]);
540 } 540 }
541 541
542 void test_breakOutsideOfLoop_breakInSwitchStatement() { 542 void test_breakOutsideOfLoop_breakInSwitchStatement() {
543 ParserTestCase.parse4("parseSwitchStatement", "switch (x) {case 1: break;}", []); 543 ParserTestCase.parse4("parseSwitchStatement", "switch (x) {case 1: break;}") ;
544 } 544 }
545 545
546 void test_breakOutsideOfLoop_breakInWhileStatement() { 546 void test_breakOutsideOfLoop_breakInWhileStatement() {
547 ParserTestCase.parse4("parseWhileStatement", "while (x) {break;}", []); 547 ParserTestCase.parse4("parseWhileStatement", "while (x) {break;}");
548 } 548 }
549 549
550 void test_breakOutsideOfLoop_functionExpression_inALoop() { 550 void test_breakOutsideOfLoop_functionExpression_inALoop() {
551 ParserTestCase.parseStatement("for(; x;) {() {break;};}", [ParserErrorCode.B REAK_OUTSIDE_OF_LOOP]); 551 ParserTestCase.parseStatement("for(; x;) {() {break;};}", [ParserErrorCode.B REAK_OUTSIDE_OF_LOOP]);
552 } 552 }
553 553
554 void test_breakOutsideOfLoop_functionExpression_withALoop() { 554 void test_breakOutsideOfLoop_functionExpression_withALoop() {
555 ParserTestCase.parseStatement("() {for (; x;) {break;}};", []); 555 ParserTestCase.parseStatement("() {for (; x;) {break;}};");
556 } 556 }
557 557
558 void test_classTypeAlias_abstractAfterEq() { 558 void test_classTypeAlias_abstractAfterEq() {
559 // This syntax has been removed from the language in favor of "abstract clas s A = B with C;" 559 // This syntax has been removed from the language in favor of "abstract clas s A = B with C;"
560 // (issue 18098). 560 // (issue 18098).
561 ParserTestCase.parse3("parseCompilationUnitMember", <Object> [emptyCommentAn dMetadata()], "class A = abstract B with C;", [ 561 ParserTestCase.parse3("parseCompilationUnitMember", <Object> [emptyCommentAn dMetadata()], "class A = abstract B with C;", [
562 ParserErrorCode.EXPECTED_TOKEN, 562 ParserErrorCode.EXPECTED_TOKEN,
563 ParserErrorCode.EXPECTED_TOKEN]); 563 ParserErrorCode.EXPECTED_TOKEN]);
564 } 564 }
565 565
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
597 597
598 void test_constructorWithReturnType_var() { 598 void test_constructorWithReturnType_var() {
599 ParserTestCase.parse3("parseClassMember", <Object> ["C"], "var C() {}", [Par serErrorCode.CONSTRUCTOR_WITH_RETURN_TYPE]); 599 ParserTestCase.parse3("parseClassMember", <Object> ["C"], "var C() {}", [Par serErrorCode.CONSTRUCTOR_WITH_RETURN_TYPE]);
600 } 600 }
601 601
602 void test_constTypedef() { 602 void test_constTypedef() {
603 ParserTestCase.parseCompilationUnit("const typedef F();", [ParserErrorCode.C ONST_TYPEDEF]); 603 ParserTestCase.parseCompilationUnit("const typedef F();", [ParserErrorCode.C ONST_TYPEDEF]);
604 } 604 }
605 605
606 void test_continueOutsideOfLoop_continueInDoStatement() { 606 void test_continueOutsideOfLoop_continueInDoStatement() {
607 ParserTestCase.parse4("parseDoStatement", "do {continue;} while (x);", []); 607 ParserTestCase.parse4("parseDoStatement", "do {continue;} while (x);");
608 } 608 }
609 609
610 void test_continueOutsideOfLoop_continueInForStatement() { 610 void test_continueOutsideOfLoop_continueInForStatement() {
611 ParserTestCase.parse4("parseForStatement", "for (; x;) {continue;}", []); 611 ParserTestCase.parse4("parseForStatement", "for (; x;) {continue;}");
612 } 612 }
613 613
614 void test_continueOutsideOfLoop_continueInIfStatement() { 614 void test_continueOutsideOfLoop_continueInIfStatement() {
615 ParserTestCase.parse4("parseIfStatement", "if (x) {continue;}", [ParserError Code.CONTINUE_OUTSIDE_OF_LOOP]); 615 ParserTestCase.parse4("parseIfStatement", "if (x) {continue;}", [ParserError Code.CONTINUE_OUTSIDE_OF_LOOP]);
616 } 616 }
617 617
618 void test_continueOutsideOfLoop_continueInSwitchStatement() { 618 void test_continueOutsideOfLoop_continueInSwitchStatement() {
619 ParserTestCase.parse4("parseSwitchStatement", "switch (x) {case 1: continue a;}", []); 619 ParserTestCase.parse4("parseSwitchStatement", "switch (x) {case 1: continue a;}");
620 } 620 }
621 621
622 void test_continueOutsideOfLoop_continueInWhileStatement() { 622 void test_continueOutsideOfLoop_continueInWhileStatement() {
623 ParserTestCase.parse4("parseWhileStatement", "while (x) {continue;}", []); 623 ParserTestCase.parse4("parseWhileStatement", "while (x) {continue;}");
624 } 624 }
625 625
626 void test_continueOutsideOfLoop_functionExpression_inALoop() { 626 void test_continueOutsideOfLoop_functionExpression_inALoop() {
627 ParserTestCase.parseStatement("for(; x;) {() {continue;};}", [ParserErrorCod e.CONTINUE_OUTSIDE_OF_LOOP]); 627 ParserTestCase.parseStatement("for(; x;) {() {continue;};}", [ParserErrorCod e.CONTINUE_OUTSIDE_OF_LOOP]);
628 } 628 }
629 629
630 void test_continueOutsideOfLoop_functionExpression_withALoop() { 630 void test_continueOutsideOfLoop_functionExpression_withALoop() {
631 ParserTestCase.parseStatement("() {for (; x;) {continue;}};", []); 631 ParserTestCase.parseStatement("() {for (; x;) {continue;}};");
632 } 632 }
633 633
634 void test_continueWithoutLabelInCase_error() { 634 void test_continueWithoutLabelInCase_error() {
635 ParserTestCase.parse4("parseSwitchStatement", "switch (x) {case 1: continue; }", [ParserErrorCode.CONTINUE_WITHOUT_LABEL_IN_CASE]); 635 ParserTestCase.parse4("parseSwitchStatement", "switch (x) {case 1: continue; }", [ParserErrorCode.CONTINUE_WITHOUT_LABEL_IN_CASE]);
636 } 636 }
637 637
638 void test_continueWithoutLabelInCase_noError() { 638 void test_continueWithoutLabelInCase_noError() {
639 ParserTestCase.parse4("parseSwitchStatement", "switch (x) {case 1: continue a;}", []); 639 ParserTestCase.parse4("parseSwitchStatement", "switch (x) {case 1: continue a;}");
640 } 640 }
641 641
642 void test_continueWithoutLabelInCase_noError_switchInLoop() { 642 void test_continueWithoutLabelInCase_noError_switchInLoop() {
643 ParserTestCase.parse4("parseWhileStatement", "while (a) { switch (b) {defaul t: continue;}}", []); 643 ParserTestCase.parse4("parseWhileStatement", "while (a) { switch (b) {defaul t: continue;}}");
644 } 644 }
645 645
646 void test_deprecatedClassTypeAlias() { 646 void test_deprecatedClassTypeAlias() {
647 ParserTestCase.parseCompilationUnit("typedef C = S with M;", [ParserErrorCod e.DEPRECATED_CLASS_TYPE_ALIAS]); 647 ParserTestCase.parseCompilationUnit("typedef C = S with M;", [ParserErrorCod e.DEPRECATED_CLASS_TYPE_ALIAS]);
648 } 648 }
649 649
650 void test_deprecatedClassTypeAlias_withGeneric() { 650 void test_deprecatedClassTypeAlias_withGeneric() {
651 ParserTestCase.parseCompilationUnit("typedef C<T> = S<T> with M;", [ParserEr rorCode.DEPRECATED_CLASS_TYPE_ALIAS]); 651 ParserTestCase.parseCompilationUnit("typedef C<T> = S<T> with M;", [ParserEr rorCode.DEPRECATED_CLASS_TYPE_ALIAS]);
652 } 652 }
653 653
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
727 727
728 void test_expectedExecutable_topLevel_afterVoid() { 728 void test_expectedExecutable_topLevel_afterVoid() {
729 ParserTestCase.parse3("parseCompilationUnitMember", <Object> [emptyCommentAn dMetadata()], "void 2 void", [ParserErrorCode.EXPECTED_EXECUTABLE]); 729 ParserTestCase.parse3("parseCompilationUnitMember", <Object> [emptyCommentAn dMetadata()], "void 2 void", [ParserErrorCode.EXPECTED_EXECUTABLE]);
730 } 730 }
731 731
732 void test_expectedExecutable_topLevel_beforeType() { 732 void test_expectedExecutable_topLevel_beforeType() {
733 ParserTestCase.parse3("parseCompilationUnitMember", <Object> [emptyCommentAn dMetadata()], "4 score", [ParserErrorCode.EXPECTED_EXECUTABLE]); 733 ParserTestCase.parse3("parseCompilationUnitMember", <Object> [emptyCommentAn dMetadata()], "4 score", [ParserErrorCode.EXPECTED_EXECUTABLE]);
734 } 734 }
735 735
736 void test_expectedExecutable_topLevel_eof() { 736 void test_expectedExecutable_topLevel_eof() {
737 ParserTestCase.parse2("parseCompilationUnitMember", <Object> [emptyCommentAn dMetadata()], "x", [new AnalysisError.con2(null, 0, 1, ParserErrorCode.EXPECTED_ EXECUTABLE, [])]); 737 ParserTestCase.parse2("parseCompilationUnitMember", <Object> [emptyCommentAn dMetadata()], "x", [new AnalysisError.con2(null, 0, 1, ParserErrorCode.EXPECTED_ EXECUTABLE)]);
738 } 738 }
739 739
740 void test_expectedInterpolationIdentifier() { 740 void test_expectedInterpolationIdentifier() {
741 ParserTestCase.parse4("parseStringLiteral", "'\$x\$'", [ParserErrorCode.MISS ING_IDENTIFIER]); 741 ParserTestCase.parse4("parseStringLiteral", "'\$x\$'", [ParserErrorCode.MISS ING_IDENTIFIER]);
742 } 742 }
743 743
744 void test_expectedInterpolationIdentifier_emptyString() { 744 void test_expectedInterpolationIdentifier_emptyString() {
745 // The scanner inserts an empty string token between the two $'s; we need to make sure that the 745 // The scanner inserts an empty string token between the two $'s; we need to make sure that the
746 // MISSING_IDENTIFIER error that is generated has a nonzero width so that it will show up in 746 // MISSING_IDENTIFIER error that is generated has a nonzero width so that it will show up in
747 // the editor UI. 747 // the editor UI.
748 ParserTestCase.parse2("parseStringLiteral", <Object> [], "'\$\$foo'", [new A nalysisError.con2(null, 2, 1, ParserErrorCode.MISSING_IDENTIFIER, [])]); 748 ParserTestCase.parse2("parseStringLiteral", <Object>[], "'\$\$foo'", [new An alysisError.con2(null, 2, 1, ParserErrorCode.MISSING_IDENTIFIER)]);
749 } 749 }
750 750
751 void test_expectedStringLiteral() { 751 void test_expectedStringLiteral() {
752 StringLiteral expression = ParserTestCase.parse4("parseStringLiteral", "1", [ParserErrorCode.EXPECTED_STRING_LITERAL]); 752 StringLiteral expression = ParserTestCase.parse4("parseStringLiteral", "1", [ParserErrorCode.EXPECTED_STRING_LITERAL]);
753 expect(expression.isSynthetic, isTrue); 753 expect(expression.isSynthetic, isTrue);
754 } 754 }
755 755
756 void test_expectedToken_commaMissingInArgumentList() { 756 void test_expectedToken_commaMissingInArgumentList() {
757 ParserTestCase.parse4("parseArgumentList", "(x, y z)", [ParserErrorCode.EXPE CTED_TOKEN]); 757 ParserTestCase.parse4("parseArgumentList", "(x, y z)", [ParserErrorCode.EXPE CTED_TOKEN]);
758 } 758 }
(...skipping 311 matching lines...) Expand 10 before | Expand all | Expand 10 after
1070 1070
1071 void test_localFunctionDeclarationModifier_factory() { 1071 void test_localFunctionDeclarationModifier_factory() {
1072 ParserTestCase.parseStatement("factory f() {}", [ParserErrorCode.LOCAL_FUNCT ION_DECLARATION_MODIFIER]); 1072 ParserTestCase.parseStatement("factory f() {}", [ParserErrorCode.LOCAL_FUNCT ION_DECLARATION_MODIFIER]);
1073 } 1073 }
1074 1074
1075 void test_localFunctionDeclarationModifier_static() { 1075 void test_localFunctionDeclarationModifier_static() {
1076 ParserTestCase.parseStatement("static f() {}", [ParserErrorCode.LOCAL_FUNCTI ON_DECLARATION_MODIFIER]); 1076 ParserTestCase.parseStatement("static f() {}", [ParserErrorCode.LOCAL_FUNCTI ON_DECLARATION_MODIFIER]);
1077 } 1077 }
1078 1078
1079 void test_missingAssignableSelector_identifiersAssigned() { 1079 void test_missingAssignableSelector_identifiersAssigned() {
1080 ParserTestCase.parseExpression("x.y = y;", []); 1080 ParserTestCase.parseExpression("x.y = y;");
1081 } 1081 }
1082 1082
1083 void test_missingAssignableSelector_prefix_minusMinus_literal() { 1083 void test_missingAssignableSelector_prefix_minusMinus_literal() {
1084 ParserTestCase.parseExpression("--0", [ParserErrorCode.MISSING_ASSIGNABLE_SE LECTOR]); 1084 ParserTestCase.parseExpression("--0", [ParserErrorCode.MISSING_ASSIGNABLE_SE LECTOR]);
1085 } 1085 }
1086 1086
1087 void test_missingAssignableSelector_prefix_plusPlus_literal() { 1087 void test_missingAssignableSelector_prefix_plusPlus_literal() {
1088 ParserTestCase.parseExpression("++0", [ParserErrorCode.MISSING_ASSIGNABLE_SE LECTOR]); 1088 ParserTestCase.parseExpression("++0", [ParserErrorCode.MISSING_ASSIGNABLE_SE LECTOR]);
1089 } 1089 }
1090 1090
1091 void test_missingAssignableSelector_selector() { 1091 void test_missingAssignableSelector_selector() {
1092 ParserTestCase.parseExpression("x(y)(z).a++", []); 1092 ParserTestCase.parseExpression("x(y)(z).a++");
1093 } 1093 }
1094 1094
1095 void test_missingAssignableSelector_superPrimaryExpression() { 1095 void test_missingAssignableSelector_superPrimaryExpression() {
1096 SuperExpression expression = ParserTestCase.parse4("parsePrimaryExpression", "super", [ParserErrorCode.MISSING_ASSIGNABLE_SELECTOR]); 1096 SuperExpression expression = ParserTestCase.parse4("parsePrimaryExpression", "super", [ParserErrorCode.MISSING_ASSIGNABLE_SELECTOR]);
1097 expect(expression.keyword, isNotNull); 1097 expect(expression.keyword, isNotNull);
1098 } 1098 }
1099 1099
1100 void test_missingAssignableSelector_superPropertyAccessAssigned() { 1100 void test_missingAssignableSelector_superPropertyAccessAssigned() {
1101 ParserTestCase.parseExpression("super.x = x;", []); 1101 ParserTestCase.parseExpression("super.x = x;");
1102 } 1102 }
1103 1103
1104 void test_missingCatchOrFinally() { 1104 void test_missingCatchOrFinally() {
1105 TryStatement statement = ParserTestCase.parse4("parseTryStatement", "try {}" , [ParserErrorCode.MISSING_CATCH_OR_FINALLY]); 1105 TryStatement statement = ParserTestCase.parse4("parseTryStatement", "try {}" , [ParserErrorCode.MISSING_CATCH_OR_FINALLY]);
1106 expect(statement, isNotNull); 1106 expect(statement, isNotNull);
1107 } 1107 }
1108 1108
1109 void test_missingClassBody() { 1109 void test_missingClassBody() {
1110 ParserTestCase.parseCompilationUnit("class A class B {}", [ParserErrorCode.M ISSING_CLASS_BODY]); 1110 ParserTestCase.parseCompilationUnit("class A class B {}", [ParserErrorCode.M ISSING_CLASS_BODY]);
1111 } 1111 }
(...skipping 757 matching lines...) Expand 10 before | Expand all | Expand 10 after
1869 * The given source is scanned and the parser is initialized to start with the first token in the 1869 * The given source is scanned and the parser is initialized to start with the first token in the
1870 * source before the parse method is invoked. 1870 * source before the parse method is invoked.
1871 * 1871 *
1872 * @param methodName the name of the parse method that should be invoked to pa rse the source 1872 * @param methodName the name of the parse method that should be invoked to pa rse the source
1873 * @param objects the values of the arguments to the method 1873 * @param objects the values of the arguments to the method
1874 * @param source the source to be parsed by the parse method 1874 * @param source the source to be parsed by the parse method
1875 * @return the result of invoking the method 1875 * @return the result of invoking the method
1876 * @throws Exception if the method could not be invoked or throws an exception 1876 * @throws Exception if the method could not be invoked or throws an exception
1877 * @throws AssertionFailedError if the result is `null` or if any errors are p roduced 1877 * @throws AssertionFailedError if the result is `null` or if any errors are p roduced
1878 */ 1878 */
1879 static Object parse(String methodName, List<Object> objects, String source) => parse2(methodName, objects, source, new List<AnalysisError>(0)); 1879 static Object parse(String methodName, List<Object> objects, String source)
1880 => parse2(methodName, objects, source);
1880 1881
1881 /** 1882 /**
1882 * Invoke a parse method in [Parser]. The method is assumed to have the given number and 1883 * Invoke a parse method in [Parser]. The method is assumed to have the given number and
1883 * type of parameters and will be invoked with the given arguments. 1884 * type of parameters and will be invoked with the given arguments.
1884 * 1885 *
1885 * The given source is scanned and the parser is initialized to start with the first token in the 1886 * The given source is scanned and the parser is initialized to start with the first token in the
1886 * source before the parse method is invoked. 1887 * source before the parse method is invoked.
1887 * 1888 *
1888 * @param methodName the name of the parse method that should be invoked to pa rse the source 1889 * @param methodName the name of the parse method that should be invoked to pa rse the source
1889 * @param objects the values of the arguments to the method 1890 * @param objects the values of the arguments to the method
1890 * @param source the source to be parsed by the parse method 1891 * @param source the source to be parsed by the parse method
1891 * @param errors the errors that should be generated 1892 * @param errors the errors that should be generated
1892 * @return the result of invoking the method 1893 * @return the result of invoking the method
1893 * @throws Exception if the method could not be invoked or throws an exception 1894 * @throws Exception if the method could not be invoked or throws an exception
1894 * @throws AssertionFailedError if the result is `null` or the errors produced while 1895 * @throws AssertionFailedError if the result is `null` or the errors produced while
1895 * scanning and parsing the source do not match the expected errors 1896 * scanning and parsing the source do not match the expected errors
1896 */ 1897 */
1897 static Object parse2(String methodName, List<Object> objects, String source, L ist<AnalysisError> errors) { 1898 static Object parse2(String methodName, List<Object> objects, String source, [ List<AnalysisError> errors = AnalysisError.NO_ERRORS]) {
1898 GatheringErrorListener listener = new GatheringErrorListener(); 1899 GatheringErrorListener listener = new GatheringErrorListener();
1899 Object result = invokeParserMethod(methodName, objects, source, listener); 1900 Object result = invokeParserMethod(methodName, objects, source, listener);
1900 listener.assertErrors(errors); 1901 listener.assertErrors(errors);
1901 return result; 1902 return result;
1902 } 1903 }
1903 1904
1904 /** 1905 /**
1905 * Invoke a parse method in [Parser]. The method is assumed to have the given number and 1906 * Invoke a parse method in [Parser]. The method is assumed to have the given number and
1906 * type of parameters and will be invoked with the given arguments. 1907 * type of parameters and will be invoked with the given arguments.
1907 * 1908 *
1908 * The given source is scanned and the parser is initialized to start with the first token in the 1909 * The given source is scanned and the parser is initialized to start with the first token in the
1909 * source before the parse method is invoked. 1910 * source before the parse method is invoked.
1910 * 1911 *
1911 * @param methodName the name of the parse method that should be invoked to pa rse the source 1912 * @param methodName the name of the parse method that should be invoked to pa rse the source
1912 * @param objects the values of the arguments to the method 1913 * @param objects the values of the arguments to the method
1913 * @param source the source to be parsed by the parse method 1914 * @param source the source to be parsed by the parse method
1914 * @param errorCodes the error codes of the errors that should be generated 1915 * @param errorCodes the error codes of the errors that should be generated
1915 * @return the result of invoking the method 1916 * @return the result of invoking the method
1916 * @throws Exception if the method could not be invoked or throws an exception 1917 * @throws Exception if the method could not be invoked or throws an exception
1917 * @throws AssertionFailedError if the result is `null` or the errors produced while 1918 * @throws AssertionFailedError if the result is `null` or the errors produced while
1918 * scanning and parsing the source do not match the expected errors 1919 * scanning and parsing the source do not match the expected errors
1919 */ 1920 */
1920 static Object parse3(String methodName, List<Object> objects, String source, L ist<ErrorCode> errorCodes) { 1921 static Object parse3(String methodName, List<Object> objects, String source, [ List<ErrorCode> errorCodes = ErrorCode.EMPTY_LIST]) {
1921 GatheringErrorListener listener = new GatheringErrorListener(); 1922 GatheringErrorListener listener = new GatheringErrorListener();
1922 Object result = invokeParserMethod(methodName, objects, source, listener); 1923 Object result = invokeParserMethod(methodName, objects, source, listener);
1923 listener.assertErrorsWithCodes(errorCodes); 1924 listener.assertErrorsWithCodes(errorCodes);
1924 return result; 1925 return result;
1925 } 1926 }
1926 1927
1927 /** 1928 /**
1928 * Invoke a parse method in [Parser]. The method is assumed to have no argumen ts. 1929 * Invoke a parse method in [Parser]. The method is assumed to have no argumen ts.
1929 * 1930 *
1930 * The given source is scanned and the parser is initialized to start with the first token in the 1931 * The given source is scanned and the parser is initialized to start with the first token in the
1931 * source before the parse method is invoked. 1932 * source before the parse method is invoked.
1932 * 1933 *
1933 * @param methodName the name of the parse method that should be invoked to pa rse the source 1934 * @param methodName the name of the parse method that should be invoked to pa rse the source
1934 * @param source the source to be parsed by the parse method 1935 * @param source the source to be parsed by the parse method
1935 * @param errorCodes the error codes of the errors that should be generated 1936 * @param errorCodes the error codes of the errors that should be generated
1936 * @return the result of invoking the method 1937 * @return the result of invoking the method
1937 * @throws Exception if the method could not be invoked or throws an exception 1938 * @throws Exception if the method could not be invoked or throws an exception
1938 * @throws AssertionFailedError if the result is `null` or the errors produced while 1939 * @throws AssertionFailedError if the result is `null` or the errors produced while
1939 * scanning and parsing the source do not match the expected errors 1940 * scanning and parsing the source do not match the expected errors
1940 */ 1941 */
1941 static Object parse4(String methodName, String source, List<ErrorCode> errorCo des) => parse3(methodName, _EMPTY_ARGUMENTS, source, errorCodes); 1942 static Object parse4(String methodName, String source, [List<ErrorCode> errorC odes = ErrorCode.EMPTY_LIST])
1943 => parse3(methodName, _EMPTY_ARGUMENTS, source, errorCodes);
1942 1944
1943 /** 1945 /**
1944 * Parse the given source as a compilation unit. 1946 * Parse the given source as a compilation unit.
1945 * 1947 *
1946 * @param source the source to be parsed 1948 * @param source the source to be parsed
1947 * @param errorCodes the error codes of the errors that are expected to be fou nd 1949 * @param errorCodes the error codes of the errors that are expected to be fou nd
1948 * @return the compilation unit that was parsed 1950 * @return the compilation unit that was parsed
1949 * @throws Exception if the source could not be parsed, if the compilation err ors in the source do 1951 * @throws Exception if the source could not be parsed, if the compilation err ors in the source do
1950 * not match those that are expected, or if the result would have be en `null` 1952 * not match those that are expected, or if the result would have be en `null`
1951 */ 1953 */
1952 static CompilationUnit parseCompilationUnit(String source, List<ErrorCode> err orCodes) { 1954 static CompilationUnit parseCompilationUnit(String source, [List<ErrorCode> er rorCodes = ErrorCode.EMPTY_LIST]) {
1953 GatheringErrorListener listener = new GatheringErrorListener(); 1955 GatheringErrorListener listener = new GatheringErrorListener();
1954 Scanner scanner = new Scanner(null, new CharSequenceReader(source), listener ); 1956 Scanner scanner = new Scanner(null, new CharSequenceReader(source), listener );
1955 listener.setLineInfo(new TestSource(), scanner.lineStarts); 1957 listener.setLineInfo(new TestSource(), scanner.lineStarts);
1956 Token token = scanner.tokenize(); 1958 Token token = scanner.tokenize();
1957 Parser parser = createParser(listener); 1959 Parser parser = createParser(listener);
1958 CompilationUnit unit = parser.parseCompilationUnit(token); 1960 CompilationUnit unit = parser.parseCompilationUnit(token);
1959 expect(unit, isNotNull); 1961 expect(unit, isNotNull);
1960 listener.assertErrorsWithCodes(errorCodes); 1962 listener.assertErrorsWithCodes(errorCodes);
1961 return unit; 1963 return unit;
1962 } 1964 }
1963 1965
1964 /** 1966 /**
1965 * Parse the given source as an expression. 1967 * Parse the given source as an expression.
1966 * 1968 *
1967 * @param source the source to be parsed 1969 * @param source the source to be parsed
1968 * @param errorCodes the error codes of the errors that are expected to be fou nd 1970 * @param errorCodes the error codes of the errors that are expected to be fou nd
1969 * @return the expression that was parsed 1971 * @return the expression that was parsed
1970 * @throws Exception if the source could not be parsed, if the compilation err ors in the source do 1972 * @throws Exception if the source could not be parsed, if the compilation err ors in the source do
1971 * not match those that are expected, or if the result would have be en `null` 1973 * not match those that are expected, or if the result would have be en `null`
1972 */ 1974 */
1973 static Expression parseExpression(String source, List<ErrorCode> errorCodes) { 1975 static Expression parseExpression(String source, [List<ErrorCode> errorCodes = ErrorCode.EMPTY_LIST]) {
1974 GatheringErrorListener listener = new GatheringErrorListener(); 1976 GatheringErrorListener listener = new GatheringErrorListener();
1975 Scanner scanner = new Scanner(null, new CharSequenceReader(source), listener ); 1977 Scanner scanner = new Scanner(null, new CharSequenceReader(source), listener );
1976 listener.setLineInfo(new TestSource(), scanner.lineStarts); 1978 listener.setLineInfo(new TestSource(), scanner.lineStarts);
1977 Token token = scanner.tokenize(); 1979 Token token = scanner.tokenize();
1978 Parser parser = createParser(listener); 1980 Parser parser = createParser(listener);
1979 Expression expression = parser.parseExpression(token); 1981 Expression expression = parser.parseExpression(token);
1980 expect(expression, isNotNull); 1982 expect(expression, isNotNull);
1981 listener.assertErrorsWithCodes(errorCodes); 1983 listener.assertErrorsWithCodes(errorCodes);
1982 return expression; 1984 return expression;
1983 } 1985 }
1984 1986
1985 /** 1987 /**
1986 * Parse the given source as a statement. 1988 * Parse the given source as a statement.
1987 * 1989 *
1988 * @param source the source to be parsed 1990 * @param source the source to be parsed
1989 * @param errorCodes the error codes of the errors that are expected to be fou nd 1991 * @param errorCodes the error codes of the errors that are expected to be fou nd
1990 * @return the statement that was parsed 1992 * @return the statement that was parsed
1991 * @throws Exception if the source could not be parsed, if the compilation err ors in the source do 1993 * @throws Exception if the source could not be parsed, if the compilation err ors in the source do
1992 * not match those that are expected, or if the result would have be en `null` 1994 * not match those that are expected, or if the result would have be en `null`
1993 */ 1995 */
1994 static Statement parseStatement(String source, List<ErrorCode> errorCodes) { 1996 static Statement parseStatement(String source, [List<ErrorCode> errorCodes = E rrorCode.EMPTY_LIST]) {
1995 GatheringErrorListener listener = new GatheringErrorListener(); 1997 GatheringErrorListener listener = new GatheringErrorListener();
1996 Scanner scanner = new Scanner(null, new CharSequenceReader(source), listener ); 1998 Scanner scanner = new Scanner(null, new CharSequenceReader(source), listener );
1997 listener.setLineInfo(new TestSource(), scanner.lineStarts); 1999 listener.setLineInfo(new TestSource(), scanner.lineStarts);
1998 Token token = scanner.tokenize(); 2000 Token token = scanner.tokenize();
1999 Parser parser = createParser(listener); 2001 Parser parser = createParser(listener);
2000 Statement statement = parser.parseStatement(token); 2002 Statement statement = parser.parseStatement(token);
2001 expect(statement, isNotNull); 2003 expect(statement, isNotNull);
2002 listener.assertErrorsWithCodes(errorCodes); 2004 listener.assertErrorsWithCodes(errorCodes);
2003 return statement; 2005 return statement;
2004 } 2006 }
2005 2007
2006 /** 2008 /**
2007 * Parse the given source as a sequence of statements. 2009 * Parse the given source as a sequence of statements.
2008 * 2010 *
2009 * @param source the source to be parsed 2011 * @param source the source to be parsed
2010 * @param expectedCount the number of statements that are expected 2012 * @param expectedCount the number of statements that are expected
2011 * @param errorCodes the error codes of the errors that are expected to be fou nd 2013 * @param errorCodes the error codes of the errors that are expected to be fou nd
2012 * @return the statements that were parsed 2014 * @return the statements that were parsed
2013 * @throws Exception if the source could not be parsed, if the number of state ments does not match 2015 * @throws Exception if the source could not be parsed, if the number of state ments does not match
2014 * the expected count, if the compilation errors in the source do no t match those that 2016 * the expected count, if the compilation errors in the source do no t match those that
2015 * are expected, or if the result would have been `null` 2017 * are expected, or if the result would have been `null`
2016 */ 2018 */
2017 static List<Statement> parseStatements(String source, int expectedCount, List< ErrorCode> errorCodes) { 2019 static List<Statement> parseStatements(String source, int expectedCount, [List <ErrorCode> errorCodes = ErrorCode.EMPTY_LIST]) {
2018 GatheringErrorListener listener = new GatheringErrorListener(); 2020 GatheringErrorListener listener = new GatheringErrorListener();
2019 Scanner scanner = new Scanner(null, new CharSequenceReader(source), listener ); 2021 Scanner scanner = new Scanner(null, new CharSequenceReader(source), listener );
2020 listener.setLineInfo(new TestSource(), scanner.lineStarts); 2022 listener.setLineInfo(new TestSource(), scanner.lineStarts);
2021 Token token = scanner.tokenize(); 2023 Token token = scanner.tokenize();
2022 Parser parser = createParser(listener); 2024 Parser parser = createParser(listener);
2023 List<Statement> statements = parser.parseStatements(token); 2025 List<Statement> statements = parser.parseStatements(token);
2024 expect(statements, hasLength(expectedCount)); 2026 expect(statements, hasLength(expectedCount));
2025 listener.assertErrorsWithCodes(errorCodes); 2027 listener.assertErrorsWithCodes(errorCodes);
2026 return statements; 2028 return statements;
2027 } 2029 }
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
2082 */ 2084 */
2083 static Object invokeParserMethod2(String methodName, String source, GatheringE rrorListener listener) => invokeParserMethod(methodName, _EMPTY_ARGUMENTS, sourc e, listener); 2085 static Object invokeParserMethod2(String methodName, String source, GatheringE rrorListener listener) => invokeParserMethod(methodName, _EMPTY_ARGUMENTS, sourc e, listener);
2084 2086
2085 /** 2087 /**
2086 * Return a CommentAndMetadata object with the given values that can be used f or testing. 2088 * Return a CommentAndMetadata object with the given values that can be used f or testing.
2087 * 2089 *
2088 * @param comment the comment to be wrapped in the object 2090 * @param comment the comment to be wrapped in the object
2089 * @param annotations the annotations to be wrapped in the object 2091 * @param annotations the annotations to be wrapped in the object
2090 * @return a CommentAndMetadata object that can be used for testing 2092 * @return a CommentAndMetadata object that can be used for testing
2091 */ 2093 */
2092 CommentAndMetadata commentAndMetadata(Comment comment, List<Annotation> annota tions) { 2094 CommentAndMetadata commentAndMetadata(Comment comment, [List<Annotation> annot ations]) {
2093 List<Annotation> metadata = new List<Annotation>(); 2095 return new CommentAndMetadata(comment, annotations);
2094 for (Annotation annotation in annotations) {
2095 metadata.add(annotation);
2096 }
2097 return new CommentAndMetadata(comment, metadata);
2098 } 2096 }
2099 2097
2100 /** 2098 /**
2101 * Return an empty CommentAndMetadata object that can be used for testing. 2099 * Return an empty CommentAndMetadata object that can be used for testing.
2102 * 2100 *
2103 * @return an empty CommentAndMetadata object that can be used for testing 2101 * @return an empty CommentAndMetadata object that can be used for testing
2104 */ 2102 */
2105 CommentAndMetadata emptyCommentAndMetadata() => new CommentAndMetadata(null, n ew List<Annotation>()); 2103 CommentAndMetadata emptyCommentAndMetadata() => new CommentAndMetadata(null, n ull);
2106 2104
2107 @override 2105 @override
2108 void setUp() { 2106 void setUp() {
2109 super.setUp(); 2107 super.setUp();
2110 parseFunctionBodies = true; 2108 parseFunctionBodies = true;
2111 } 2109 }
2112 } 2110 }
2113 2111
2114 /** 2112 /**
2115 * The class `RecoveryParserTest` defines parser tests that test the parsing of invalid code 2113 * The class `RecoveryParserTest` defines parser tests that test the parsing of invalid code
2116 * sequences to ensure that the correct recovery steps are taken in the parser. 2114 * sequences to ensure that the correct recovery steps are taken in the parser.
2117 */ 2115 */
2118 class RecoveryParserTest extends ParserTestCase { 2116 class RecoveryParserTest extends ParserTestCase {
2119 void fail_incomplete_returnType() { 2117 void fail_incomplete_returnType() {
2120 ParserTestCase.parseCompilationUnit(r''' 2118 ParserTestCase.parseCompilationUnit(r'''
2121 Map<Symbol, convertStringToSymbolMap(Map<String, dynamic> map) { 2119 Map<Symbol, convertStringToSymbolMap(Map<String, dynamic> map) {
2122 if (map == null) return null; 2120 if (map == null) return null;
2123 Map<Symbol, dynamic> result = new Map<Symbol, dynamic>(); 2121 Map<Symbol, dynamic> result = new Map<Symbol, dynamic>();
2124 map.forEach((name, value) { 2122 map.forEach((name, value) {
2125 result[new Symbol(name)] = value; 2123 result[new Symbol(name)] = value;
2126 }); 2124 });
2127 return result; 2125 return result;
2128 }''', []); 2126 }''');
2129 } 2127 }
2130 2128
2131 void test_additiveExpression_missing_LHS() { 2129 void test_additiveExpression_missing_LHS() {
2132 BinaryExpression expression = ParserTestCase.parseExpression("+ y", [ParserE rrorCode.MISSING_IDENTIFIER]); 2130 BinaryExpression expression = ParserTestCase.parseExpression("+ y", [ParserE rrorCode.MISSING_IDENTIFIER]);
2133 EngineTestCase.assertInstanceOf((obj) => obj is SimpleIdentifier, SimpleIden tifier, expression.leftOperand); 2131 EngineTestCase.assertInstanceOf((obj) => obj is SimpleIdentifier, SimpleIden tifier, expression.leftOperand);
2134 expect(expression.leftOperand.isSynthetic, isTrue); 2132 expect(expression.leftOperand.isSynthetic, isTrue);
2135 } 2133 }
2136 2134
2137 void test_additiveExpression_missing_LHS_RHS() { 2135 void test_additiveExpression_missing_LHS_RHS() {
2138 BinaryExpression expression = ParserTestCase.parseExpression("+", [ 2136 BinaryExpression expression = ParserTestCase.parseExpression("+", [
(...skipping 747 matching lines...) Expand 10 before | Expand all | Expand 10 after
2886 String annotationName = "proxy"; 2884 String annotationName = "proxy";
2887 Annotation fromNode = AstFactory.annotation(AstFactory.identifier3(annotatio nName)); 2885 Annotation fromNode = AstFactory.annotation(AstFactory.identifier3(annotatio nName));
2888 Element element = ElementFactory.topLevelVariableElement2(annotationName); 2886 Element element = ElementFactory.topLevelVariableElement2(annotationName);
2889 fromNode.element = element; 2887 fromNode.element = element;
2890 Annotation toNode = AstFactory.annotation(AstFactory.identifier3(annotationN ame)); 2888 Annotation toNode = AstFactory.annotation(AstFactory.identifier3(annotationN ame));
2891 ResolutionCopier.copyResolutionData(fromNode, toNode); 2889 ResolutionCopier.copyResolutionData(fromNode, toNode);
2892 expect(toNode.element, same(element)); 2890 expect(toNode.element, same(element));
2893 } 2891 }
2894 2892
2895 void test_visitAsExpression() { 2893 void test_visitAsExpression() {
2896 AsExpression fromNode = AstFactory.asExpression(AstFactory.identifier3("x"), AstFactory.typeName4("A", [])); 2894 AsExpression fromNode = AstFactory.asExpression(AstFactory.identifier3("x"), AstFactory.typeName4("A"));
2897 DartType propagatedType = ElementFactory.classElement2("A", []).type; 2895 DartType propagatedType = ElementFactory.classElement2("A").type;
2898 fromNode.propagatedType = propagatedType; 2896 fromNode.propagatedType = propagatedType;
2899 DartType staticType = ElementFactory.classElement2("B", []).type; 2897 DartType staticType = ElementFactory.classElement2("B").type;
2900 fromNode.staticType = staticType; 2898 fromNode.staticType = staticType;
2901 AsExpression toNode = AstFactory.asExpression(AstFactory.identifier3("x"), A stFactory.typeName4("A", [])); 2899 AsExpression toNode = AstFactory.asExpression(AstFactory.identifier3("x"), A stFactory.typeName4("A"));
2902 ResolutionCopier.copyResolutionData(fromNode, toNode); 2900 ResolutionCopier.copyResolutionData(fromNode, toNode);
2903 expect(toNode.propagatedType, same(propagatedType)); 2901 expect(toNode.propagatedType, same(propagatedType));
2904 expect(toNode.staticType, same(staticType)); 2902 expect(toNode.staticType, same(staticType));
2905 } 2903 }
2906 2904
2907 void test_visitAssignmentExpression() { 2905 void test_visitAssignmentExpression() {
2908 AssignmentExpression fromNode = AstFactory.assignmentExpression(AstFactory.i dentifier3("a"), TokenType.PLUS_EQ, AstFactory.identifier3("b")); 2906 AssignmentExpression fromNode = AstFactory.assignmentExpression(AstFactory.i dentifier3("a"), TokenType.PLUS_EQ, AstFactory.identifier3("b"));
2909 DartType propagatedType = ElementFactory.classElement2("C", []).type; 2907 DartType propagatedType = ElementFactory.classElement2("C").type;
2910 MethodElement propagatedElement = ElementFactory.methodElement("+", propagat edType, []); 2908 MethodElement propagatedElement = ElementFactory.methodElement("+", propagat edType);
2911 fromNode.propagatedElement = propagatedElement; 2909 fromNode.propagatedElement = propagatedElement;
2912 fromNode.propagatedType = propagatedType; 2910 fromNode.propagatedType = propagatedType;
2913 DartType staticType = ElementFactory.classElement2("C", []).type; 2911 DartType staticType = ElementFactory.classElement2("C").type;
2914 MethodElement staticElement = ElementFactory.methodElement("+", staticType, []); 2912 MethodElement staticElement = ElementFactory.methodElement("+", staticType);
2915 fromNode.staticElement = staticElement; 2913 fromNode.staticElement = staticElement;
2916 fromNode.staticType = staticType; 2914 fromNode.staticType = staticType;
2917 AssignmentExpression toNode = AstFactory.assignmentExpression(AstFactory.ide ntifier3("a"), TokenType.PLUS_EQ, AstFactory.identifier3("b")); 2915 AssignmentExpression toNode = AstFactory.assignmentExpression(AstFactory.ide ntifier3("a"), TokenType.PLUS_EQ, AstFactory.identifier3("b"));
2918 ResolutionCopier.copyResolutionData(fromNode, toNode); 2916 ResolutionCopier.copyResolutionData(fromNode, toNode);
2919 expect(toNode.propagatedElement, same(propagatedElement)); 2917 expect(toNode.propagatedElement, same(propagatedElement));
2920 expect(toNode.propagatedType, same(propagatedType)); 2918 expect(toNode.propagatedType, same(propagatedType));
2921 expect(toNode.staticElement, same(staticElement)); 2919 expect(toNode.staticElement, same(staticElement));
2922 expect(toNode.staticType, same(staticType)); 2920 expect(toNode.staticType, same(staticType));
2923 } 2921 }
2924 2922
2925 void test_visitBinaryExpression() { 2923 void test_visitBinaryExpression() {
2926 BinaryExpression fromNode = AstFactory.binaryExpression(AstFactory.identifie r3("a"), TokenType.PLUS, AstFactory.identifier3("b")); 2924 BinaryExpression fromNode = AstFactory.binaryExpression(AstFactory.identifie r3("a"), TokenType.PLUS, AstFactory.identifier3("b"));
2927 DartType propagatedType = ElementFactory.classElement2("C", []).type; 2925 DartType propagatedType = ElementFactory.classElement2("C").type;
2928 MethodElement propagatedElement = ElementFactory.methodElement("+", propagat edType, []); 2926 MethodElement propagatedElement = ElementFactory.methodElement("+", propagat edType);
2929 fromNode.propagatedElement = propagatedElement; 2927 fromNode.propagatedElement = propagatedElement;
2930 fromNode.propagatedType = propagatedType; 2928 fromNode.propagatedType = propagatedType;
2931 DartType staticType = ElementFactory.classElement2("C", []).type; 2929 DartType staticType = ElementFactory.classElement2("C").type;
2932 MethodElement staticElement = ElementFactory.methodElement("+", staticType, []); 2930 MethodElement staticElement = ElementFactory.methodElement("+", staticType);
2933 fromNode.staticElement = staticElement; 2931 fromNode.staticElement = staticElement;
2934 fromNode.staticType = staticType; 2932 fromNode.staticType = staticType;
2935 BinaryExpression toNode = AstFactory.binaryExpression(AstFactory.identifier3 ("a"), TokenType.PLUS, AstFactory.identifier3("b")); 2933 BinaryExpression toNode = AstFactory.binaryExpression(AstFactory.identifier3 ("a"), TokenType.PLUS, AstFactory.identifier3("b"));
2936 ResolutionCopier.copyResolutionData(fromNode, toNode); 2934 ResolutionCopier.copyResolutionData(fromNode, toNode);
2937 expect(toNode.propagatedElement, same(propagatedElement)); 2935 expect(toNode.propagatedElement, same(propagatedElement));
2938 expect(toNode.propagatedType, same(propagatedType)); 2936 expect(toNode.propagatedType, same(propagatedType));
2939 expect(toNode.staticElement, same(staticElement)); 2937 expect(toNode.staticElement, same(staticElement));
2940 expect(toNode.staticType, same(staticType)); 2938 expect(toNode.staticType, same(staticType));
2941 } 2939 }
2942 2940
2943 void test_visitBooleanLiteral() { 2941 void test_visitBooleanLiteral() {
2944 BooleanLiteral fromNode = AstFactory.booleanLiteral(true); 2942 BooleanLiteral fromNode = AstFactory.booleanLiteral(true);
2945 DartType propagatedType = ElementFactory.classElement2("C", []).type; 2943 DartType propagatedType = ElementFactory.classElement2("C").type;
2946 fromNode.propagatedType = propagatedType; 2944 fromNode.propagatedType = propagatedType;
2947 DartType staticType = ElementFactory.classElement2("C", []).type; 2945 DartType staticType = ElementFactory.classElement2("C").type;
2948 fromNode.staticType = staticType; 2946 fromNode.staticType = staticType;
2949 BooleanLiteral toNode = AstFactory.booleanLiteral(true); 2947 BooleanLiteral toNode = AstFactory.booleanLiteral(true);
2950 ResolutionCopier.copyResolutionData(fromNode, toNode); 2948 ResolutionCopier.copyResolutionData(fromNode, toNode);
2951 expect(toNode.propagatedType, same(propagatedType)); 2949 expect(toNode.propagatedType, same(propagatedType));
2952 expect(toNode.staticType, same(staticType)); 2950 expect(toNode.staticType, same(staticType));
2953 } 2951 }
2954 2952
2955 void test_visitCascadeExpression() { 2953 void test_visitCascadeExpression() {
2956 CascadeExpression fromNode = AstFactory.cascadeExpression(AstFactory.identif ier3("a"), [AstFactory.identifier3("b")]); 2954 CascadeExpression fromNode = AstFactory.cascadeExpression(AstFactory.identif ier3("a"), [AstFactory.identifier3("b")]);
2957 DartType propagatedType = ElementFactory.classElement2("C", []).type; 2955 DartType propagatedType = ElementFactory.classElement2("C").type;
2958 fromNode.propagatedType = propagatedType; 2956 fromNode.propagatedType = propagatedType;
2959 DartType staticType = ElementFactory.classElement2("C", []).type; 2957 DartType staticType = ElementFactory.classElement2("C").type;
2960 fromNode.staticType = staticType; 2958 fromNode.staticType = staticType;
2961 CascadeExpression toNode = AstFactory.cascadeExpression(AstFactory.identifie r3("a"), [AstFactory.identifier3("b")]); 2959 CascadeExpression toNode = AstFactory.cascadeExpression(AstFactory.identifie r3("a"), [AstFactory.identifier3("b")]);
2962 ResolutionCopier.copyResolutionData(fromNode, toNode); 2960 ResolutionCopier.copyResolutionData(fromNode, toNode);
2963 expect(toNode.propagatedType, same(propagatedType)); 2961 expect(toNode.propagatedType, same(propagatedType));
2964 expect(toNode.staticType, same(staticType)); 2962 expect(toNode.staticType, same(staticType));
2965 } 2963 }
2966 2964
2967 void test_visitCompilationUnit() { 2965 void test_visitCompilationUnit() {
2968 CompilationUnit fromNode = AstFactory.compilationUnit(); 2966 CompilationUnit fromNode = AstFactory.compilationUnit();
2969 CompilationUnitElement element = new CompilationUnitElementImpl("test.dart") ; 2967 CompilationUnitElement element = new CompilationUnitElementImpl("test.dart") ;
2970 fromNode.element = element; 2968 fromNode.element = element;
2971 CompilationUnit toNode = AstFactory.compilationUnit(); 2969 CompilationUnit toNode = AstFactory.compilationUnit();
2972 ResolutionCopier.copyResolutionData(fromNode, toNode); 2970 ResolutionCopier.copyResolutionData(fromNode, toNode);
2973 expect(toNode.element, same(element)); 2971 expect(toNode.element, same(element));
2974 } 2972 }
2975 2973
2976 void test_visitConditionalExpression() { 2974 void test_visitConditionalExpression() {
2977 ConditionalExpression fromNode = AstFactory.conditionalExpression(AstFactory .identifier3("c"), AstFactory.identifier3("a"), AstFactory.identifier3("b")); 2975 ConditionalExpression fromNode = AstFactory.conditionalExpression(AstFactory .identifier3("c"), AstFactory.identifier3("a"), AstFactory.identifier3("b"));
2978 DartType propagatedType = ElementFactory.classElement2("C", []).type; 2976 DartType propagatedType = ElementFactory.classElement2("C").type;
2979 fromNode.propagatedType = propagatedType; 2977 fromNode.propagatedType = propagatedType;
2980 DartType staticType = ElementFactory.classElement2("C", []).type; 2978 DartType staticType = ElementFactory.classElement2("C").type;
2981 fromNode.staticType = staticType; 2979 fromNode.staticType = staticType;
2982 ConditionalExpression toNode = AstFactory.conditionalExpression(AstFactory.i dentifier3("c"), AstFactory.identifier3("a"), AstFactory.identifier3("b")); 2980 ConditionalExpression toNode = AstFactory.conditionalExpression(AstFactory.i dentifier3("c"), AstFactory.identifier3("a"), AstFactory.identifier3("b"));
2983 ResolutionCopier.copyResolutionData(fromNode, toNode); 2981 ResolutionCopier.copyResolutionData(fromNode, toNode);
2984 expect(toNode.propagatedType, same(propagatedType)); 2982 expect(toNode.propagatedType, same(propagatedType));
2985 expect(toNode.staticType, same(staticType)); 2983 expect(toNode.staticType, same(staticType));
2986 } 2984 }
2987 2985
2988 void test_visitConstructorDeclaration() { 2986 void test_visitConstructorDeclaration() {
2989 String className = "A"; 2987 String className = "A";
2990 String constructorName = "c"; 2988 String constructorName = "c";
2991 ConstructorDeclaration fromNode = AstFactory.constructorDeclaration(AstFacto ry.identifier3(className), constructorName, AstFactory.formalParameterList([]), null); 2989 ConstructorDeclaration fromNode = AstFactory.constructorDeclaration(AstFacto ry.identifier3(className), constructorName, AstFactory.formalParameterList(), nu ll);
2992 ConstructorElement element = ElementFactory.constructorElement2(ElementFacto ry.classElement2(className, []), constructorName, []); 2990 ConstructorElement element = ElementFactory.constructorElement2(ElementFacto ry.classElement2(className), constructorName);
2993 fromNode.element = element; 2991 fromNode.element = element;
2994 ConstructorDeclaration toNode = AstFactory.constructorDeclaration(AstFactory .identifier3(className), constructorName, AstFactory.formalParameterList([]), nu ll); 2992 ConstructorDeclaration toNode = AstFactory.constructorDeclaration(AstFactory .identifier3(className), constructorName, AstFactory.formalParameterList(), null );
2995 ResolutionCopier.copyResolutionData(fromNode, toNode); 2993 ResolutionCopier.copyResolutionData(fromNode, toNode);
2996 expect(toNode.element, same(element)); 2994 expect(toNode.element, same(element));
2997 } 2995 }
2998 2996
2999 void test_visitConstructorName() { 2997 void test_visitConstructorName() {
3000 ConstructorName fromNode = AstFactory.constructorName(AstFactory.typeName4(" A", []), "c"); 2998 ConstructorName fromNode = AstFactory.constructorName(AstFactory.typeName4(" A"), "c");
3001 ConstructorElement staticElement = ElementFactory.constructorElement2(Elemen tFactory.classElement2("A", []), "c", []); 2999 ConstructorElement staticElement = ElementFactory.constructorElement2(Elemen tFactory.classElement2("A"), "c");
3002 fromNode.staticElement = staticElement; 3000 fromNode.staticElement = staticElement;
3003 ConstructorName toNode = AstFactory.constructorName(AstFactory.typeName4("A" , []), "c"); 3001 ConstructorName toNode = AstFactory.constructorName(AstFactory.typeName4("A" ), "c");
3004 ResolutionCopier.copyResolutionData(fromNode, toNode); 3002 ResolutionCopier.copyResolutionData(fromNode, toNode);
3005 expect(toNode.staticElement, same(staticElement)); 3003 expect(toNode.staticElement, same(staticElement));
3006 } 3004 }
3007 3005
3008 void test_visitDoubleLiteral() { 3006 void test_visitDoubleLiteral() {
3009 DoubleLiteral fromNode = AstFactory.doubleLiteral(1.0); 3007 DoubleLiteral fromNode = AstFactory.doubleLiteral(1.0);
3010 DartType propagatedType = ElementFactory.classElement2("C", []).type; 3008 DartType propagatedType = ElementFactory.classElement2("C").type;
3011 fromNode.propagatedType = propagatedType; 3009 fromNode.propagatedType = propagatedType;
3012 DartType staticType = ElementFactory.classElement2("C", []).type; 3010 DartType staticType = ElementFactory.classElement2("C").type;
3013 fromNode.staticType = staticType; 3011 fromNode.staticType = staticType;
3014 DoubleLiteral toNode = AstFactory.doubleLiteral(1.0); 3012 DoubleLiteral toNode = AstFactory.doubleLiteral(1.0);
3015 ResolutionCopier.copyResolutionData(fromNode, toNode); 3013 ResolutionCopier.copyResolutionData(fromNode, toNode);
3016 expect(toNode.propagatedType, same(propagatedType)); 3014 expect(toNode.propagatedType, same(propagatedType));
3017 expect(toNode.staticType, same(staticType)); 3015 expect(toNode.staticType, same(staticType));
3018 } 3016 }
3019 3017
3020 void test_visitExportDirective() { 3018 void test_visitExportDirective() {
3021 ExportDirective fromNode = AstFactory.exportDirective2("dart:uri", []); 3019 ExportDirective fromNode = AstFactory.exportDirective2("dart:uri");
3022 ExportElement element = new ExportElementImpl(); 3020 ExportElement element = new ExportElementImpl();
3023 fromNode.element = element; 3021 fromNode.element = element;
3024 ExportDirective toNode = AstFactory.exportDirective2("dart:uri", []); 3022 ExportDirective toNode = AstFactory.exportDirective2("dart:uri");
3025 ResolutionCopier.copyResolutionData(fromNode, toNode); 3023 ResolutionCopier.copyResolutionData(fromNode, toNode);
3026 expect(toNode.element, same(element)); 3024 expect(toNode.element, same(element));
3027 } 3025 }
3028 3026
3029 void test_visitFunctionExpression() { 3027 void test_visitFunctionExpression() {
3030 FunctionExpression fromNode = AstFactory.functionExpression2(AstFactory.form alParameterList([]), AstFactory.emptyFunctionBody()); 3028 FunctionExpression fromNode = AstFactory.functionExpression2(AstFactory.form alParameterList(), AstFactory.emptyFunctionBody());
3031 MethodElement element = ElementFactory.methodElement("m", ElementFactory.cla ssElement2("C", []).type, []); 3029 MethodElement element = ElementFactory.methodElement("m", ElementFactory.cla ssElement2("C").type);
3032 fromNode.element = element; 3030 fromNode.element = element;
3033 DartType propagatedType = ElementFactory.classElement2("C", []).type; 3031 DartType propagatedType = ElementFactory.classElement2("C").type;
3034 fromNode.propagatedType = propagatedType; 3032 fromNode.propagatedType = propagatedType;
3035 DartType staticType = ElementFactory.classElement2("C", []).type; 3033 DartType staticType = ElementFactory.classElement2("C").type;
3036 fromNode.staticType = staticType; 3034 fromNode.staticType = staticType;
3037 FunctionExpression toNode = AstFactory.functionExpression2(AstFactory.formal ParameterList([]), AstFactory.emptyFunctionBody()); 3035 FunctionExpression toNode = AstFactory.functionExpression2(AstFactory.formal ParameterList(), AstFactory.emptyFunctionBody());
3038 ResolutionCopier.copyResolutionData(fromNode, toNode); 3036 ResolutionCopier.copyResolutionData(fromNode, toNode);
3039 expect(toNode.element, same(element)); 3037 expect(toNode.element, same(element));
3040 expect(toNode.propagatedType, same(propagatedType)); 3038 expect(toNode.propagatedType, same(propagatedType));
3041 expect(toNode.staticType, same(staticType)); 3039 expect(toNode.staticType, same(staticType));
3042 } 3040 }
3043 3041
3044 void test_visitFunctionExpressionInvocation() { 3042 void test_visitFunctionExpressionInvocation() {
3045 FunctionExpressionInvocation fromNode = AstFactory.functionExpressionInvocat ion(AstFactory.identifier3("f"), []); 3043 FunctionExpressionInvocation fromNode = AstFactory.functionExpressionInvocat ion(AstFactory.identifier3("f"));
3046 MethodElement propagatedElement = ElementFactory.methodElement("m", ElementF actory.classElement2("C", []).type, []); 3044 MethodElement propagatedElement = ElementFactory.methodElement("m", ElementF actory.classElement2("C").type);
3047 fromNode.propagatedElement = propagatedElement; 3045 fromNode.propagatedElement = propagatedElement;
3048 DartType propagatedType = ElementFactory.classElement2("C", []).type; 3046 DartType propagatedType = ElementFactory.classElement2("C").type;
3049 fromNode.propagatedType = propagatedType; 3047 fromNode.propagatedType = propagatedType;
3050 MethodElement staticElement = ElementFactory.methodElement("m", ElementFacto ry.classElement2("C", []).type, []); 3048 MethodElement staticElement = ElementFactory.methodElement("m", ElementFacto ry.classElement2("C").type);
3051 fromNode.staticElement = staticElement; 3049 fromNode.staticElement = staticElement;
3052 DartType staticType = ElementFactory.classElement2("C", []).type; 3050 DartType staticType = ElementFactory.classElement2("C").type;
3053 fromNode.staticType = staticType; 3051 fromNode.staticType = staticType;
3054 FunctionExpressionInvocation toNode = AstFactory.functionExpressionInvocatio n(AstFactory.identifier3("f"), []); 3052 FunctionExpressionInvocation toNode = AstFactory.functionExpressionInvocatio n(AstFactory.identifier3("f"));
3055 ResolutionCopier.copyResolutionData(fromNode, toNode); 3053 ResolutionCopier.copyResolutionData(fromNode, toNode);
3056 expect(toNode.propagatedElement, same(propagatedElement)); 3054 expect(toNode.propagatedElement, same(propagatedElement));
3057 expect(toNode.propagatedType, same(propagatedType)); 3055 expect(toNode.propagatedType, same(propagatedType));
3058 expect(toNode.staticElement, same(staticElement)); 3056 expect(toNode.staticElement, same(staticElement));
3059 expect(toNode.staticType, same(staticType)); 3057 expect(toNode.staticType, same(staticType));
3060 } 3058 }
3061 3059
3062 void test_visitImportDirective() { 3060 void test_visitImportDirective() {
3063 ImportDirective fromNode = AstFactory.importDirective3("dart:uri", null, []) ; 3061 ImportDirective fromNode = AstFactory.importDirective3("dart:uri", null);
3064 ImportElement element = new ImportElementImpl(0); 3062 ImportElement element = new ImportElementImpl(0);
3065 fromNode.element = element; 3063 fromNode.element = element;
3066 ImportDirective toNode = AstFactory.importDirective3("dart:uri", null, []); 3064 ImportDirective toNode = AstFactory.importDirective3("dart:uri", null);
3067 ResolutionCopier.copyResolutionData(fromNode, toNode); 3065 ResolutionCopier.copyResolutionData(fromNode, toNode);
3068 expect(toNode.element, same(element)); 3066 expect(toNode.element, same(element));
3069 } 3067 }
3070 3068
3071 void test_visitIndexExpression() { 3069 void test_visitIndexExpression() {
3072 IndexExpression fromNode = AstFactory.indexExpression(AstFactory.identifier3 ("a"), AstFactory.integer(0)); 3070 IndexExpression fromNode = AstFactory.indexExpression(AstFactory.identifier3 ("a"), AstFactory.integer(0));
3073 MethodElement propagatedElement = ElementFactory.methodElement("m", ElementF actory.classElement2("C", []).type, []); 3071 MethodElement propagatedElement = ElementFactory.methodElement("m", ElementF actory.classElement2("C").type);
3074 MethodElement staticElement = ElementFactory.methodElement("m", ElementFacto ry.classElement2("C", []).type, []); 3072 MethodElement staticElement = ElementFactory.methodElement("m", ElementFacto ry.classElement2("C").type);
3075 AuxiliaryElements auxiliaryElements = new AuxiliaryElements(staticElement, p ropagatedElement); 3073 AuxiliaryElements auxiliaryElements = new AuxiliaryElements(staticElement, p ropagatedElement);
3076 fromNode.auxiliaryElements = auxiliaryElements; 3074 fromNode.auxiliaryElements = auxiliaryElements;
3077 fromNode.propagatedElement = propagatedElement; 3075 fromNode.propagatedElement = propagatedElement;
3078 DartType propagatedType = ElementFactory.classElement2("C", []).type; 3076 DartType propagatedType = ElementFactory.classElement2("C").type;
3079 fromNode.propagatedType = propagatedType; 3077 fromNode.propagatedType = propagatedType;
3080 fromNode.staticElement = staticElement; 3078 fromNode.staticElement = staticElement;
3081 DartType staticType = ElementFactory.classElement2("C", []).type; 3079 DartType staticType = ElementFactory.classElement2("C").type;
3082 fromNode.staticType = staticType; 3080 fromNode.staticType = staticType;
3083 IndexExpression toNode = AstFactory.indexExpression(AstFactory.identifier3(" a"), AstFactory.integer(0)); 3081 IndexExpression toNode = AstFactory.indexExpression(AstFactory.identifier3(" a"), AstFactory.integer(0));
3084 ResolutionCopier.copyResolutionData(fromNode, toNode); 3082 ResolutionCopier.copyResolutionData(fromNode, toNode);
3085 expect(toNode.auxiliaryElements, same(auxiliaryElements)); 3083 expect(toNode.auxiliaryElements, same(auxiliaryElements));
3086 expect(toNode.propagatedElement, same(propagatedElement)); 3084 expect(toNode.propagatedElement, same(propagatedElement));
3087 expect(toNode.propagatedType, same(propagatedType)); 3085 expect(toNode.propagatedType, same(propagatedType));
3088 expect(toNode.staticElement, same(staticElement)); 3086 expect(toNode.staticElement, same(staticElement));
3089 expect(toNode.staticType, same(staticType)); 3087 expect(toNode.staticType, same(staticType));
3090 } 3088 }
3091 3089
3092 void test_visitInstanceCreationExpression() { 3090 void test_visitInstanceCreationExpression() {
3093 InstanceCreationExpression fromNode = AstFactory.instanceCreationExpression2 (Keyword.NEW, AstFactory.typeName4("C", []), []); 3091 InstanceCreationExpression fromNode = AstFactory.instanceCreationExpression2 (Keyword.NEW, AstFactory.typeName4("C"));
3094 DartType propagatedType = ElementFactory.classElement2("C", []).type; 3092 DartType propagatedType = ElementFactory.classElement2("C").type;
3095 fromNode.propagatedType = propagatedType; 3093 fromNode.propagatedType = propagatedType;
3096 ConstructorElement staticElement = ElementFactory.constructorElement2(Elemen tFactory.classElement2("C", []), null, []); 3094 ConstructorElement staticElement = ElementFactory.constructorElement2(Elemen tFactory.classElement2("C"), null);
3097 fromNode.staticElement = staticElement; 3095 fromNode.staticElement = staticElement;
3098 DartType staticType = ElementFactory.classElement2("C", []).type; 3096 DartType staticType = ElementFactory.classElement2("C").type;
3099 fromNode.staticType = staticType; 3097 fromNode.staticType = staticType;
3100 InstanceCreationExpression toNode = AstFactory.instanceCreationExpression2(K eyword.NEW, AstFactory.typeName4("C", []), []); 3098 InstanceCreationExpression toNode = AstFactory.instanceCreationExpression2(K eyword.NEW, AstFactory.typeName4("C"));
3101 ResolutionCopier.copyResolutionData(fromNode, toNode); 3099 ResolutionCopier.copyResolutionData(fromNode, toNode);
3102 expect(toNode.propagatedType, same(propagatedType)); 3100 expect(toNode.propagatedType, same(propagatedType));
3103 expect(toNode.staticElement, same(staticElement)); 3101 expect(toNode.staticElement, same(staticElement));
3104 expect(toNode.staticType, same(staticType)); 3102 expect(toNode.staticType, same(staticType));
3105 } 3103 }
3106 3104
3107 void test_visitIntegerLiteral() { 3105 void test_visitIntegerLiteral() {
3108 IntegerLiteral fromNode = AstFactory.integer(2); 3106 IntegerLiteral fromNode = AstFactory.integer(2);
3109 DartType propagatedType = ElementFactory.classElement2("C", []).type; 3107 DartType propagatedType = ElementFactory.classElement2("C").type;
3110 fromNode.propagatedType = propagatedType; 3108 fromNode.propagatedType = propagatedType;
3111 DartType staticType = ElementFactory.classElement2("C", []).type; 3109 DartType staticType = ElementFactory.classElement2("C").type;
3112 fromNode.staticType = staticType; 3110 fromNode.staticType = staticType;
3113 IntegerLiteral toNode = AstFactory.integer(2); 3111 IntegerLiteral toNode = AstFactory.integer(2);
3114 ResolutionCopier.copyResolutionData(fromNode, toNode); 3112 ResolutionCopier.copyResolutionData(fromNode, toNode);
3115 expect(toNode.propagatedType, same(propagatedType)); 3113 expect(toNode.propagatedType, same(propagatedType));
3116 expect(toNode.staticType, same(staticType)); 3114 expect(toNode.staticType, same(staticType));
3117 } 3115 }
3118 3116
3119 void test_visitIsExpression() { 3117 void test_visitIsExpression() {
3120 IsExpression fromNode = AstFactory.isExpression(AstFactory.identifier3("x"), false, AstFactory.typeName4("A", [])); 3118 IsExpression fromNode = AstFactory.isExpression(AstFactory.identifier3("x"), false, AstFactory.typeName4("A"));
3121 DartType propagatedType = ElementFactory.classElement2("C", []).type; 3119 DartType propagatedType = ElementFactory.classElement2("C").type;
3122 fromNode.propagatedType = propagatedType; 3120 fromNode.propagatedType = propagatedType;
3123 DartType staticType = ElementFactory.classElement2("C", []).type; 3121 DartType staticType = ElementFactory.classElement2("C").type;
3124 fromNode.staticType = staticType; 3122 fromNode.staticType = staticType;
3125 IsExpression toNode = AstFactory.isExpression(AstFactory.identifier3("x"), f alse, AstFactory.typeName4("A", [])); 3123 IsExpression toNode = AstFactory.isExpression(AstFactory.identifier3("x"), f alse, AstFactory.typeName4("A"));
3126 ResolutionCopier.copyResolutionData(fromNode, toNode); 3124 ResolutionCopier.copyResolutionData(fromNode, toNode);
3127 expect(toNode.propagatedType, same(propagatedType)); 3125 expect(toNode.propagatedType, same(propagatedType));
3128 expect(toNode.staticType, same(staticType)); 3126 expect(toNode.staticType, same(staticType));
3129 } 3127 }
3130 3128
3131 void test_visitLibraryIdentifier() { 3129 void test_visitLibraryIdentifier() {
3132 LibraryIdentifier fromNode = AstFactory.libraryIdentifier([AstFactory.identi fier3("lib")]); 3130 LibraryIdentifier fromNode = AstFactory.libraryIdentifier([AstFactory.identi fier3("lib")]);
3133 DartType propagatedType = ElementFactory.classElement2("C", []).type; 3131 DartType propagatedType = ElementFactory.classElement2("C").type;
3134 fromNode.propagatedType = propagatedType; 3132 fromNode.propagatedType = propagatedType;
3135 DartType staticType = ElementFactory.classElement2("C", []).type; 3133 DartType staticType = ElementFactory.classElement2("C").type;
3136 fromNode.staticType = staticType; 3134 fromNode.staticType = staticType;
3137 LibraryIdentifier toNode = AstFactory.libraryIdentifier([AstFactory.identifi er3("lib")]); 3135 LibraryIdentifier toNode = AstFactory.libraryIdentifier([AstFactory.identifi er3("lib")]);
3138 ResolutionCopier.copyResolutionData(fromNode, toNode); 3136 ResolutionCopier.copyResolutionData(fromNode, toNode);
3139 expect(toNode.propagatedType, same(propagatedType)); 3137 expect(toNode.propagatedType, same(propagatedType));
3140 expect(toNode.staticType, same(staticType)); 3138 expect(toNode.staticType, same(staticType));
3141 } 3139 }
3142 3140
3143 void test_visitListLiteral() { 3141 void test_visitListLiteral() {
3144 ListLiteral fromNode = AstFactory.listLiteral([]); 3142 ListLiteral fromNode = AstFactory.listLiteral();
3145 DartType propagatedType = ElementFactory.classElement2("C", []).type; 3143 DartType propagatedType = ElementFactory.classElement2("C").type;
3146 fromNode.propagatedType = propagatedType; 3144 fromNode.propagatedType = propagatedType;
3147 DartType staticType = ElementFactory.classElement2("C", []).type; 3145 DartType staticType = ElementFactory.classElement2("C").type;
3148 fromNode.staticType = staticType; 3146 fromNode.staticType = staticType;
3149 ListLiteral toNode = AstFactory.listLiteral([]); 3147 ListLiteral toNode = AstFactory.listLiteral();
3150 ResolutionCopier.copyResolutionData(fromNode, toNode); 3148 ResolutionCopier.copyResolutionData(fromNode, toNode);
3151 expect(toNode.propagatedType, same(propagatedType)); 3149 expect(toNode.propagatedType, same(propagatedType));
3152 expect(toNode.staticType, same(staticType)); 3150 expect(toNode.staticType, same(staticType));
3153 } 3151 }
3154 3152
3155 void test_visitMapLiteral() { 3153 void test_visitMapLiteral() {
3156 MapLiteral fromNode = AstFactory.mapLiteral2([]); 3154 MapLiteral fromNode = AstFactory.mapLiteral2();
3157 DartType propagatedType = ElementFactory.classElement2("C", []).type; 3155 DartType propagatedType = ElementFactory.classElement2("C").type;
3158 fromNode.propagatedType = propagatedType; 3156 fromNode.propagatedType = propagatedType;
3159 DartType staticType = ElementFactory.classElement2("C", []).type; 3157 DartType staticType = ElementFactory.classElement2("C").type;
3160 fromNode.staticType = staticType; 3158 fromNode.staticType = staticType;
3161 MapLiteral toNode = AstFactory.mapLiteral2([]); 3159 MapLiteral toNode = AstFactory.mapLiteral2();
3162 ResolutionCopier.copyResolutionData(fromNode, toNode); 3160 ResolutionCopier.copyResolutionData(fromNode, toNode);
3163 expect(toNode.propagatedType, same(propagatedType)); 3161 expect(toNode.propagatedType, same(propagatedType));
3164 expect(toNode.staticType, same(staticType)); 3162 expect(toNode.staticType, same(staticType));
3165 } 3163 }
3166 3164
3167 void test_visitMethodInvocation() { 3165 void test_visitMethodInvocation() {
3168 MethodInvocation fromNode = AstFactory.methodInvocation2("m", []); 3166 MethodInvocation fromNode = AstFactory.methodInvocation2("m");
3169 DartType propagatedType = ElementFactory.classElement2("C", []).type; 3167 DartType propagatedType = ElementFactory.classElement2("C").type;
3170 fromNode.propagatedType = propagatedType; 3168 fromNode.propagatedType = propagatedType;
3171 DartType staticType = ElementFactory.classElement2("C", []).type; 3169 DartType staticType = ElementFactory.classElement2("C").type;
3172 fromNode.staticType = staticType; 3170 fromNode.staticType = staticType;
3173 MethodInvocation toNode = AstFactory.methodInvocation2("m", []); 3171 MethodInvocation toNode = AstFactory.methodInvocation2("m");
3174 ResolutionCopier.copyResolutionData(fromNode, toNode); 3172 ResolutionCopier.copyResolutionData(fromNode, toNode);
3175 expect(toNode.propagatedType, same(propagatedType)); 3173 expect(toNode.propagatedType, same(propagatedType));
3176 expect(toNode.staticType, same(staticType)); 3174 expect(toNode.staticType, same(staticType));
3177 } 3175 }
3178 3176
3179 void test_visitNamedExpression() { 3177 void test_visitNamedExpression() {
3180 NamedExpression fromNode = AstFactory.namedExpression2("n", AstFactory.integ er(0)); 3178 NamedExpression fromNode = AstFactory.namedExpression2("n", AstFactory.integ er(0));
3181 DartType propagatedType = ElementFactory.classElement2("C", []).type; 3179 DartType propagatedType = ElementFactory.classElement2("C").type;
3182 fromNode.propagatedType = propagatedType; 3180 fromNode.propagatedType = propagatedType;
3183 DartType staticType = ElementFactory.classElement2("C", []).type; 3181 DartType staticType = ElementFactory.classElement2("C").type;
3184 fromNode.staticType = staticType; 3182 fromNode.staticType = staticType;
3185 NamedExpression toNode = AstFactory.namedExpression2("n", AstFactory.integer (0)); 3183 NamedExpression toNode = AstFactory.namedExpression2("n", AstFactory.integer (0));
3186 ResolutionCopier.copyResolutionData(fromNode, toNode); 3184 ResolutionCopier.copyResolutionData(fromNode, toNode);
3187 expect(toNode.propagatedType, same(propagatedType)); 3185 expect(toNode.propagatedType, same(propagatedType));
3188 expect(toNode.staticType, same(staticType)); 3186 expect(toNode.staticType, same(staticType));
3189 } 3187 }
3190 3188
3191 void test_visitNullLiteral() { 3189 void test_visitNullLiteral() {
3192 NullLiteral fromNode = AstFactory.nullLiteral(); 3190 NullLiteral fromNode = AstFactory.nullLiteral();
3193 DartType propagatedType = ElementFactory.classElement2("C", []).type; 3191 DartType propagatedType = ElementFactory.classElement2("C").type;
3194 fromNode.propagatedType = propagatedType; 3192 fromNode.propagatedType = propagatedType;
3195 DartType staticType = ElementFactory.classElement2("C", []).type; 3193 DartType staticType = ElementFactory.classElement2("C").type;
3196 fromNode.staticType = staticType; 3194 fromNode.staticType = staticType;
3197 NullLiteral toNode = AstFactory.nullLiteral(); 3195 NullLiteral toNode = AstFactory.nullLiteral();
3198 ResolutionCopier.copyResolutionData(fromNode, toNode); 3196 ResolutionCopier.copyResolutionData(fromNode, toNode);
3199 expect(toNode.propagatedType, same(propagatedType)); 3197 expect(toNode.propagatedType, same(propagatedType));
3200 expect(toNode.staticType, same(staticType)); 3198 expect(toNode.staticType, same(staticType));
3201 } 3199 }
3202 3200
3203 void test_visitParenthesizedExpression() { 3201 void test_visitParenthesizedExpression() {
3204 ParenthesizedExpression fromNode = AstFactory.parenthesizedExpression(AstFac tory.integer(0)); 3202 ParenthesizedExpression fromNode = AstFactory.parenthesizedExpression(AstFac tory.integer(0));
3205 DartType propagatedType = ElementFactory.classElement2("C", []).type; 3203 DartType propagatedType = ElementFactory.classElement2("C").type;
3206 fromNode.propagatedType = propagatedType; 3204 fromNode.propagatedType = propagatedType;
3207 DartType staticType = ElementFactory.classElement2("C", []).type; 3205 DartType staticType = ElementFactory.classElement2("C").type;
3208 fromNode.staticType = staticType; 3206 fromNode.staticType = staticType;
3209 ParenthesizedExpression toNode = AstFactory.parenthesizedExpression(AstFacto ry.integer(0)); 3207 ParenthesizedExpression toNode = AstFactory.parenthesizedExpression(AstFacto ry.integer(0));
3210 ResolutionCopier.copyResolutionData(fromNode, toNode); 3208 ResolutionCopier.copyResolutionData(fromNode, toNode);
3211 expect(toNode.propagatedType, same(propagatedType)); 3209 expect(toNode.propagatedType, same(propagatedType));
3212 expect(toNode.staticType, same(staticType)); 3210 expect(toNode.staticType, same(staticType));
3213 } 3211 }
3214 3212
3215 void test_visitPartDirective() { 3213 void test_visitPartDirective() {
3216 PartDirective fromNode = AstFactory.partDirective2("part.dart"); 3214 PartDirective fromNode = AstFactory.partDirective2("part.dart");
3217 LibraryElement element = new LibraryElementImpl.forNode(null, AstFactory.lib raryIdentifier2(["lib"])); 3215 LibraryElement element = new LibraryElementImpl.forNode(null, AstFactory.lib raryIdentifier2(["lib"]));
3218 fromNode.element = element; 3216 fromNode.element = element;
3219 PartDirective toNode = AstFactory.partDirective2("part.dart"); 3217 PartDirective toNode = AstFactory.partDirective2("part.dart");
3220 ResolutionCopier.copyResolutionData(fromNode, toNode); 3218 ResolutionCopier.copyResolutionData(fromNode, toNode);
3221 expect(toNode.element, same(element)); 3219 expect(toNode.element, same(element));
3222 } 3220 }
3223 3221
3224 void test_visitPartOfDirective() { 3222 void test_visitPartOfDirective() {
3225 PartOfDirective fromNode = AstFactory.partOfDirective(AstFactory.libraryIden tifier2(["lib"])); 3223 PartOfDirective fromNode = AstFactory.partOfDirective(AstFactory.libraryIden tifier2(["lib"]));
3226 LibraryElement element = new LibraryElementImpl.forNode(null, AstFactory.lib raryIdentifier2(["lib"])); 3224 LibraryElement element = new LibraryElementImpl.forNode(null, AstFactory.lib raryIdentifier2(["lib"]));
3227 fromNode.element = element; 3225 fromNode.element = element;
3228 PartOfDirective toNode = AstFactory.partOfDirective(AstFactory.libraryIdenti fier2(["lib"])); 3226 PartOfDirective toNode = AstFactory.partOfDirective(AstFactory.libraryIdenti fier2(["lib"]));
3229 ResolutionCopier.copyResolutionData(fromNode, toNode); 3227 ResolutionCopier.copyResolutionData(fromNode, toNode);
3230 expect(toNode.element, same(element)); 3228 expect(toNode.element, same(element));
3231 } 3229 }
3232 3230
3233 void test_visitPostfixExpression() { 3231 void test_visitPostfixExpression() {
3234 String variableName = "x"; 3232 String variableName = "x";
3235 PostfixExpression fromNode = AstFactory.postfixExpression(AstFactory.identif ier3(variableName), TokenType.PLUS_PLUS); 3233 PostfixExpression fromNode = AstFactory.postfixExpression(AstFactory.identif ier3(variableName), TokenType.PLUS_PLUS);
3236 MethodElement propagatedElement = ElementFactory.methodElement("+", ElementF actory.classElement2("C", []).type, []); 3234 MethodElement propagatedElement = ElementFactory.methodElement("+", ElementF actory.classElement2("C").type);
3237 fromNode.propagatedElement = propagatedElement; 3235 fromNode.propagatedElement = propagatedElement;
3238 DartType propagatedType = ElementFactory.classElement2("C", []).type; 3236 DartType propagatedType = ElementFactory.classElement2("C").type;
3239 fromNode.propagatedType = propagatedType; 3237 fromNode.propagatedType = propagatedType;
3240 MethodElement staticElement = ElementFactory.methodElement("+", ElementFacto ry.classElement2("C", []).type, []); 3238 MethodElement staticElement = ElementFactory.methodElement("+", ElementFacto ry.classElement2("C").type);
3241 fromNode.staticElement = staticElement; 3239 fromNode.staticElement = staticElement;
3242 DartType staticType = ElementFactory.classElement2("C", []).type; 3240 DartType staticType = ElementFactory.classElement2("C").type;
3243 fromNode.staticType = staticType; 3241 fromNode.staticType = staticType;
3244 PostfixExpression toNode = AstFactory.postfixExpression(AstFactory.identifie r3(variableName), TokenType.PLUS_PLUS); 3242 PostfixExpression toNode = AstFactory.postfixExpression(AstFactory.identifie r3(variableName), TokenType.PLUS_PLUS);
3245 ResolutionCopier.copyResolutionData(fromNode, toNode); 3243 ResolutionCopier.copyResolutionData(fromNode, toNode);
3246 expect(toNode.propagatedElement, same(propagatedElement)); 3244 expect(toNode.propagatedElement, same(propagatedElement));
3247 expect(toNode.propagatedType, same(propagatedType)); 3245 expect(toNode.propagatedType, same(propagatedType));
3248 expect(toNode.staticElement, same(staticElement)); 3246 expect(toNode.staticElement, same(staticElement));
3249 expect(toNode.staticType, same(staticType)); 3247 expect(toNode.staticType, same(staticType));
3250 } 3248 }
3251 3249
3252 void test_visitPrefixedIdentifier() { 3250 void test_visitPrefixedIdentifier() {
3253 PrefixedIdentifier fromNode = AstFactory.identifier5("p", "f"); 3251 PrefixedIdentifier fromNode = AstFactory.identifier5("p", "f");
3254 DartType propagatedType = ElementFactory.classElement2("C", []).type; 3252 DartType propagatedType = ElementFactory.classElement2("C").type;
3255 fromNode.propagatedType = propagatedType; 3253 fromNode.propagatedType = propagatedType;
3256 DartType staticType = ElementFactory.classElement2("C", []).type; 3254 DartType staticType = ElementFactory.classElement2("C").type;
3257 fromNode.staticType = staticType; 3255 fromNode.staticType = staticType;
3258 PrefixedIdentifier toNode = AstFactory.identifier5("p", "f"); 3256 PrefixedIdentifier toNode = AstFactory.identifier5("p", "f");
3259 ResolutionCopier.copyResolutionData(fromNode, toNode); 3257 ResolutionCopier.copyResolutionData(fromNode, toNode);
3260 expect(toNode.propagatedType, same(propagatedType)); 3258 expect(toNode.propagatedType, same(propagatedType));
3261 expect(toNode.staticType, same(staticType)); 3259 expect(toNode.staticType, same(staticType));
3262 } 3260 }
3263 3261
3264 void test_visitPrefixExpression() { 3262 void test_visitPrefixExpression() {
3265 PrefixExpression fromNode = AstFactory.prefixExpression(TokenType.PLUS_PLUS, AstFactory.identifier3("x")); 3263 PrefixExpression fromNode = AstFactory.prefixExpression(TokenType.PLUS_PLUS, AstFactory.identifier3("x"));
3266 MethodElement propagatedElement = ElementFactory.methodElement("+", ElementF actory.classElement2("C", []).type, []); 3264 MethodElement propagatedElement = ElementFactory.methodElement("+", ElementF actory.classElement2("C").type);
3267 DartType propagatedType = ElementFactory.classElement2("C", []).type; 3265 DartType propagatedType = ElementFactory.classElement2("C").type;
3268 fromNode.propagatedElement = propagatedElement; 3266 fromNode.propagatedElement = propagatedElement;
3269 fromNode.propagatedType = propagatedType; 3267 fromNode.propagatedType = propagatedType;
3270 DartType staticType = ElementFactory.classElement2("C", []).type; 3268 DartType staticType = ElementFactory.classElement2("C").type;
3271 MethodElement staticElement = ElementFactory.methodElement("+", ElementFacto ry.classElement2("C", []).type, []); 3269 MethodElement staticElement = ElementFactory.methodElement("+", ElementFacto ry.classElement2("C").type);
3272 fromNode.staticElement = staticElement; 3270 fromNode.staticElement = staticElement;
3273 fromNode.staticType = staticType; 3271 fromNode.staticType = staticType;
3274 PrefixExpression toNode = AstFactory.prefixExpression(TokenType.PLUS_PLUS, A stFactory.identifier3("x")); 3272 PrefixExpression toNode = AstFactory.prefixExpression(TokenType.PLUS_PLUS, A stFactory.identifier3("x"));
3275 ResolutionCopier.copyResolutionData(fromNode, toNode); 3273 ResolutionCopier.copyResolutionData(fromNode, toNode);
3276 expect(toNode.propagatedElement, same(propagatedElement)); 3274 expect(toNode.propagatedElement, same(propagatedElement));
3277 expect(toNode.propagatedType, same(propagatedType)); 3275 expect(toNode.propagatedType, same(propagatedType));
3278 expect(toNode.staticElement, same(staticElement)); 3276 expect(toNode.staticElement, same(staticElement));
3279 expect(toNode.staticType, same(staticType)); 3277 expect(toNode.staticType, same(staticType));
3280 } 3278 }
3281 3279
3282 void test_visitPropertyAccess() { 3280 void test_visitPropertyAccess() {
3283 PropertyAccess fromNode = AstFactory.propertyAccess2(AstFactory.identifier3( "x"), "y"); 3281 PropertyAccess fromNode = AstFactory.propertyAccess2(AstFactory.identifier3( "x"), "y");
3284 DartType propagatedType = ElementFactory.classElement2("C", []).type; 3282 DartType propagatedType = ElementFactory.classElement2("C").type;
3285 fromNode.propagatedType = propagatedType; 3283 fromNode.propagatedType = propagatedType;
3286 DartType staticType = ElementFactory.classElement2("C", []).type; 3284 DartType staticType = ElementFactory.classElement2("C").type;
3287 fromNode.staticType = staticType; 3285 fromNode.staticType = staticType;
3288 PropertyAccess toNode = AstFactory.propertyAccess2(AstFactory.identifier3("x "), "y"); 3286 PropertyAccess toNode = AstFactory.propertyAccess2(AstFactory.identifier3("x "), "y");
3289 ResolutionCopier.copyResolutionData(fromNode, toNode); 3287 ResolutionCopier.copyResolutionData(fromNode, toNode);
3290 expect(toNode.propagatedType, same(propagatedType)); 3288 expect(toNode.propagatedType, same(propagatedType));
3291 expect(toNode.staticType, same(staticType)); 3289 expect(toNode.staticType, same(staticType));
3292 } 3290 }
3293 3291
3294 void test_visitRedirectingConstructorInvocation() { 3292 void test_visitRedirectingConstructorInvocation() {
3295 RedirectingConstructorInvocation fromNode = AstFactory.redirectingConstructo rInvocation([]); 3293 RedirectingConstructorInvocation fromNode = AstFactory.redirectingConstructo rInvocation();
3296 ConstructorElement staticElement = ElementFactory.constructorElement2(Elemen tFactory.classElement2("C", []), null, []); 3294 ConstructorElement staticElement = ElementFactory.constructorElement2(Elemen tFactory.classElement2("C"), null);
3297 fromNode.staticElement = staticElement; 3295 fromNode.staticElement = staticElement;
3298 RedirectingConstructorInvocation toNode = AstFactory.redirectingConstructorI nvocation([]); 3296 RedirectingConstructorInvocation toNode = AstFactory.redirectingConstructorI nvocation();
3299 ResolutionCopier.copyResolutionData(fromNode, toNode); 3297 ResolutionCopier.copyResolutionData(fromNode, toNode);
3300 expect(toNode.staticElement, same(staticElement)); 3298 expect(toNode.staticElement, same(staticElement));
3301 } 3299 }
3302 3300
3303 void test_visitRethrowExpression() { 3301 void test_visitRethrowExpression() {
3304 RethrowExpression fromNode = AstFactory.rethrowExpression(); 3302 RethrowExpression fromNode = AstFactory.rethrowExpression();
3305 DartType propagatedType = ElementFactory.classElement2("C", []).type; 3303 DartType propagatedType = ElementFactory.classElement2("C").type;
3306 fromNode.propagatedType = propagatedType; 3304 fromNode.propagatedType = propagatedType;
3307 DartType staticType = ElementFactory.classElement2("C", []).type; 3305 DartType staticType = ElementFactory.classElement2("C").type;
3308 fromNode.staticType = staticType; 3306 fromNode.staticType = staticType;
3309 RethrowExpression toNode = AstFactory.rethrowExpression(); 3307 RethrowExpression toNode = AstFactory.rethrowExpression();
3310 ResolutionCopier.copyResolutionData(fromNode, toNode); 3308 ResolutionCopier.copyResolutionData(fromNode, toNode);
3311 expect(toNode.propagatedType, same(propagatedType)); 3309 expect(toNode.propagatedType, same(propagatedType));
3312 expect(toNode.staticType, same(staticType)); 3310 expect(toNode.staticType, same(staticType));
3313 } 3311 }
3314 3312
3315 void test_visitSimpleIdentifier() { 3313 void test_visitSimpleIdentifier() {
3316 SimpleIdentifier fromNode = AstFactory.identifier3("x"); 3314 SimpleIdentifier fromNode = AstFactory.identifier3("x");
3317 MethodElement propagatedElement = ElementFactory.methodElement("m", ElementF actory.classElement2("C", []).type, []); 3315 MethodElement propagatedElement = ElementFactory.methodElement("m", ElementF actory.classElement2("C").type);
3318 MethodElement staticElement = ElementFactory.methodElement("m", ElementFacto ry.classElement2("C", []).type, []); 3316 MethodElement staticElement = ElementFactory.methodElement("m", ElementFacto ry.classElement2("C").type);
3319 AuxiliaryElements auxiliaryElements = new AuxiliaryElements(staticElement, p ropagatedElement); 3317 AuxiliaryElements auxiliaryElements = new AuxiliaryElements(staticElement, p ropagatedElement);
3320 fromNode.auxiliaryElements = auxiliaryElements; 3318 fromNode.auxiliaryElements = auxiliaryElements;
3321 fromNode.propagatedElement = propagatedElement; 3319 fromNode.propagatedElement = propagatedElement;
3322 DartType propagatedType = ElementFactory.classElement2("C", []).type; 3320 DartType propagatedType = ElementFactory.classElement2("C").type;
3323 fromNode.propagatedType = propagatedType; 3321 fromNode.propagatedType = propagatedType;
3324 fromNode.staticElement = staticElement; 3322 fromNode.staticElement = staticElement;
3325 DartType staticType = ElementFactory.classElement2("C", []).type; 3323 DartType staticType = ElementFactory.classElement2("C").type;
3326 fromNode.staticType = staticType; 3324 fromNode.staticType = staticType;
3327 SimpleIdentifier toNode = AstFactory.identifier3("x"); 3325 SimpleIdentifier toNode = AstFactory.identifier3("x");
3328 ResolutionCopier.copyResolutionData(fromNode, toNode); 3326 ResolutionCopier.copyResolutionData(fromNode, toNode);
3329 expect(toNode.auxiliaryElements, same(auxiliaryElements)); 3327 expect(toNode.auxiliaryElements, same(auxiliaryElements));
3330 expect(toNode.propagatedElement, same(propagatedElement)); 3328 expect(toNode.propagatedElement, same(propagatedElement));
3331 expect(toNode.propagatedType, same(propagatedType)); 3329 expect(toNode.propagatedType, same(propagatedType));
3332 expect(toNode.staticElement, same(staticElement)); 3330 expect(toNode.staticElement, same(staticElement));
3333 expect(toNode.staticType, same(staticType)); 3331 expect(toNode.staticType, same(staticType));
3334 } 3332 }
3335 3333
3336 void test_visitSimpleStringLiteral() { 3334 void test_visitSimpleStringLiteral() {
3337 SimpleStringLiteral fromNode = AstFactory.string2("abc"); 3335 SimpleStringLiteral fromNode = AstFactory.string2("abc");
3338 DartType propagatedType = ElementFactory.classElement2("C", []).type; 3336 DartType propagatedType = ElementFactory.classElement2("C").type;
3339 fromNode.propagatedType = propagatedType; 3337 fromNode.propagatedType = propagatedType;
3340 DartType staticType = ElementFactory.classElement2("C", []).type; 3338 DartType staticType = ElementFactory.classElement2("C").type;
3341 fromNode.staticType = staticType; 3339 fromNode.staticType = staticType;
3342 SimpleStringLiteral toNode = AstFactory.string2("abc"); 3340 SimpleStringLiteral toNode = AstFactory.string2("abc");
3343 ResolutionCopier.copyResolutionData(fromNode, toNode); 3341 ResolutionCopier.copyResolutionData(fromNode, toNode);
3344 expect(toNode.propagatedType, same(propagatedType)); 3342 expect(toNode.propagatedType, same(propagatedType));
3345 expect(toNode.staticType, same(staticType)); 3343 expect(toNode.staticType, same(staticType));
3346 } 3344 }
3347 3345
3348 void test_visitStringInterpolation() { 3346 void test_visitStringInterpolation() {
3349 StringInterpolation fromNode = AstFactory.string([AstFactory.interpolationSt ring("a", "'a'")]); 3347 StringInterpolation fromNode = AstFactory.string([AstFactory.interpolationSt ring("a", "'a'")]);
3350 DartType propagatedType = ElementFactory.classElement2("C", []).type; 3348 DartType propagatedType = ElementFactory.classElement2("C").type;
3351 fromNode.propagatedType = propagatedType; 3349 fromNode.propagatedType = propagatedType;
3352 DartType staticType = ElementFactory.classElement2("C", []).type; 3350 DartType staticType = ElementFactory.classElement2("C").type;
3353 fromNode.staticType = staticType; 3351 fromNode.staticType = staticType;
3354 StringInterpolation toNode = AstFactory.string([AstFactory.interpolationStri ng("a", "'a'")]); 3352 StringInterpolation toNode = AstFactory.string([AstFactory.interpolationStri ng("a", "'a'")]);
3355 ResolutionCopier.copyResolutionData(fromNode, toNode); 3353 ResolutionCopier.copyResolutionData(fromNode, toNode);
3356 expect(toNode.propagatedType, same(propagatedType)); 3354 expect(toNode.propagatedType, same(propagatedType));
3357 expect(toNode.staticType, same(staticType)); 3355 expect(toNode.staticType, same(staticType));
3358 } 3356 }
3359 3357
3360 void test_visitSuperConstructorInvocation() { 3358 void test_visitSuperConstructorInvocation() {
3361 SuperConstructorInvocation fromNode = AstFactory.superConstructorInvocation( []); 3359 SuperConstructorInvocation fromNode = AstFactory.superConstructorInvocation( );
3362 ConstructorElement staticElement = ElementFactory.constructorElement2(Elemen tFactory.classElement2("C", []), null, []); 3360 ConstructorElement staticElement = ElementFactory.constructorElement2(Elemen tFactory.classElement2("C"), null);
3363 fromNode.staticElement = staticElement; 3361 fromNode.staticElement = staticElement;
3364 SuperConstructorInvocation toNode = AstFactory.superConstructorInvocation([] ); 3362 SuperConstructorInvocation toNode = AstFactory.superConstructorInvocation();
3365 ResolutionCopier.copyResolutionData(fromNode, toNode); 3363 ResolutionCopier.copyResolutionData(fromNode, toNode);
3366 expect(toNode.staticElement, same(staticElement)); 3364 expect(toNode.staticElement, same(staticElement));
3367 } 3365 }
3368 3366
3369 void test_visitSuperExpression() { 3367 void test_visitSuperExpression() {
3370 SuperExpression fromNode = AstFactory.superExpression(); 3368 SuperExpression fromNode = AstFactory.superExpression();
3371 DartType propagatedType = ElementFactory.classElement2("C", []).type; 3369 DartType propagatedType = ElementFactory.classElement2("C").type;
3372 fromNode.propagatedType = propagatedType; 3370 fromNode.propagatedType = propagatedType;
3373 DartType staticType = ElementFactory.classElement2("C", []).type; 3371 DartType staticType = ElementFactory.classElement2("C").type;
3374 fromNode.staticType = staticType; 3372 fromNode.staticType = staticType;
3375 SuperExpression toNode = AstFactory.superExpression(); 3373 SuperExpression toNode = AstFactory.superExpression();
3376 ResolutionCopier.copyResolutionData(fromNode, toNode); 3374 ResolutionCopier.copyResolutionData(fromNode, toNode);
3377 expect(toNode.propagatedType, same(propagatedType)); 3375 expect(toNode.propagatedType, same(propagatedType));
3378 expect(toNode.staticType, same(staticType)); 3376 expect(toNode.staticType, same(staticType));
3379 } 3377 }
3380 3378
3381 void test_visitSymbolLiteral() { 3379 void test_visitSymbolLiteral() {
3382 SymbolLiteral fromNode = AstFactory.symbolLiteral(["s"]); 3380 SymbolLiteral fromNode = AstFactory.symbolLiteral(["s"]);
3383 DartType propagatedType = ElementFactory.classElement2("C", []).type; 3381 DartType propagatedType = ElementFactory.classElement2("C").type;
3384 fromNode.propagatedType = propagatedType; 3382 fromNode.propagatedType = propagatedType;
3385 DartType staticType = ElementFactory.classElement2("C", []).type; 3383 DartType staticType = ElementFactory.classElement2("C").type;
3386 fromNode.staticType = staticType; 3384 fromNode.staticType = staticType;
3387 SymbolLiteral toNode = AstFactory.symbolLiteral(["s"]); 3385 SymbolLiteral toNode = AstFactory.symbolLiteral(["s"]);
3388 ResolutionCopier.copyResolutionData(fromNode, toNode); 3386 ResolutionCopier.copyResolutionData(fromNode, toNode);
3389 expect(toNode.propagatedType, same(propagatedType)); 3387 expect(toNode.propagatedType, same(propagatedType));
3390 expect(toNode.staticType, same(staticType)); 3388 expect(toNode.staticType, same(staticType));
3391 } 3389 }
3392 3390
3393 void test_visitThisExpression() { 3391 void test_visitThisExpression() {
3394 ThisExpression fromNode = AstFactory.thisExpression(); 3392 ThisExpression fromNode = AstFactory.thisExpression();
3395 DartType propagatedType = ElementFactory.classElement2("C", []).type; 3393 DartType propagatedType = ElementFactory.classElement2("C").type;
3396 fromNode.propagatedType = propagatedType; 3394 fromNode.propagatedType = propagatedType;
3397 DartType staticType = ElementFactory.classElement2("C", []).type; 3395 DartType staticType = ElementFactory.classElement2("C").type;
3398 fromNode.staticType = staticType; 3396 fromNode.staticType = staticType;
3399 ThisExpression toNode = AstFactory.thisExpression(); 3397 ThisExpression toNode = AstFactory.thisExpression();
3400 ResolutionCopier.copyResolutionData(fromNode, toNode); 3398 ResolutionCopier.copyResolutionData(fromNode, toNode);
3401 expect(toNode.propagatedType, same(propagatedType)); 3399 expect(toNode.propagatedType, same(propagatedType));
3402 expect(toNode.staticType, same(staticType)); 3400 expect(toNode.staticType, same(staticType));
3403 } 3401 }
3404 3402
3405 void test_visitThrowExpression() { 3403 void test_visitThrowExpression() {
3406 ThrowExpression fromNode = AstFactory.throwExpression(); 3404 ThrowExpression fromNode = AstFactory.throwExpression();
3407 DartType propagatedType = ElementFactory.classElement2("C", []).type; 3405 DartType propagatedType = ElementFactory.classElement2("C").type;
3408 fromNode.propagatedType = propagatedType; 3406 fromNode.propagatedType = propagatedType;
3409 DartType staticType = ElementFactory.classElement2("C", []).type; 3407 DartType staticType = ElementFactory.classElement2("C").type;
3410 fromNode.staticType = staticType; 3408 fromNode.staticType = staticType;
3411 ThrowExpression toNode = AstFactory.throwExpression(); 3409 ThrowExpression toNode = AstFactory.throwExpression();
3412 ResolutionCopier.copyResolutionData(fromNode, toNode); 3410 ResolutionCopier.copyResolutionData(fromNode, toNode);
3413 expect(toNode.propagatedType, same(propagatedType)); 3411 expect(toNode.propagatedType, same(propagatedType));
3414 expect(toNode.staticType, same(staticType)); 3412 expect(toNode.staticType, same(staticType));
3415 } 3413 }
3416 3414
3417 void test_visitTypeName() { 3415 void test_visitTypeName() {
3418 TypeName fromNode = AstFactory.typeName4("C", []); 3416 TypeName fromNode = AstFactory.typeName4("C");
3419 DartType type = ElementFactory.classElement2("C", []).type; 3417 DartType type = ElementFactory.classElement2("C").type;
3420 fromNode.type = type; 3418 fromNode.type = type;
3421 TypeName toNode = AstFactory.typeName4("C", []); 3419 TypeName toNode = AstFactory.typeName4("C");
3422 ResolutionCopier.copyResolutionData(fromNode, toNode); 3420 ResolutionCopier.copyResolutionData(fromNode, toNode);
3423 expect(toNode.type, same(type)); 3421 expect(toNode.type, same(type));
3424 } 3422 }
3425 } 3423 }
3426 3424
3427 /** 3425 /**
3428 * The class `SimpleParserTest` defines parser tests that test individual parsin g method. The 3426 * The class `SimpleParserTest` defines parser tests that test individual parsin g method. The
3429 * code fragments should be as minimal as possible in order to test the method, but should not test 3427 * code fragments should be as minimal as possible in order to test the method, but should not test
3430 * the interactions between the method under test and other methods. 3428 * the interactions between the method under test and other methods.
3431 * 3429 *
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after
3530 SimpleIdentifier identifier = _createSyntheticIdentifier(); 3528 SimpleIdentifier identifier = _createSyntheticIdentifier();
3531 expect(identifier.isSynthetic, isTrue); 3529 expect(identifier.isSynthetic, isTrue);
3532 } 3530 }
3533 3531
3534 void test_createSyntheticStringLiteral() { 3532 void test_createSyntheticStringLiteral() {
3535 SimpleStringLiteral literal = _createSyntheticStringLiteral(); 3533 SimpleStringLiteral literal = _createSyntheticStringLiteral();
3536 expect(literal.isSynthetic, isTrue); 3534 expect(literal.isSynthetic, isTrue);
3537 } 3535 }
3538 3536
3539 void test_function_literal_allowed_at_toplevel() { 3537 void test_function_literal_allowed_at_toplevel() {
3540 ParserTestCase.parseCompilationUnit("var x = () {};", []); 3538 ParserTestCase.parseCompilationUnit("var x = () {};");
3541 } 3539 }
3542 3540
3543 void test_function_literal_allowed_in_ArgumentList_in_ConstructorFieldInitiali zer() { 3541 void test_function_literal_allowed_in_ArgumentList_in_ConstructorFieldInitiali zer() {
3544 ParserTestCase.parseCompilationUnit("class C { C() : a = f(() {}); }", []); 3542 ParserTestCase.parseCompilationUnit("class C { C() : a = f(() {}); }");
3545 } 3543 }
3546 3544
3547 void test_function_literal_allowed_in_IndexExpression_in_ConstructorFieldIniti alizer() { 3545 void test_function_literal_allowed_in_IndexExpression_in_ConstructorFieldIniti alizer() {
3548 ParserTestCase.parseCompilationUnit("class C { C() : a = x[() {}]; }", []); 3546 ParserTestCase.parseCompilationUnit("class C { C() : a = x[() {}]; }");
3549 } 3547 }
3550 3548
3551 void test_function_literal_allowed_in_ListLiteral_in_ConstructorFieldInitializ er() { 3549 void test_function_literal_allowed_in_ListLiteral_in_ConstructorFieldInitializ er() {
3552 ParserTestCase.parseCompilationUnit("class C { C() : a = [() {}]; }", []); 3550 ParserTestCase.parseCompilationUnit("class C { C() : a = [() {}]; }");
3553 } 3551 }
3554 3552
3555 void test_function_literal_allowed_in_MapLiteral_in_ConstructorFieldInitialize r() { 3553 void test_function_literal_allowed_in_MapLiteral_in_ConstructorFieldInitialize r() {
3556 ParserTestCase.parseCompilationUnit("class C { C() : a = {'key': () {}}; }", []); 3554 ParserTestCase.parseCompilationUnit("class C { C() : a = {'key': () {}}; }") ;
3557 } 3555 }
3558 3556
3559 void test_function_literal_allowed_in_ParenthesizedExpression_in_ConstructorFi eldInitializer() { 3557 void test_function_literal_allowed_in_ParenthesizedExpression_in_ConstructorFi eldInitializer() {
3560 ParserTestCase.parseCompilationUnit("class C { C() : a = (() {}); }", []); 3558 ParserTestCase.parseCompilationUnit("class C { C() : a = (() {}); }");
3561 } 3559 }
3562 3560
3563 void test_function_literal_allowed_in_StringInterpolation_in_ConstructorFieldI nitializer() { 3561 void test_function_literal_allowed_in_StringInterpolation_in_ConstructorFieldI nitializer() {
3564 ParserTestCase.parseCompilationUnit("class C { C() : a = \"\${(){}}\"; }", [ ]); 3562 ParserTestCase.parseCompilationUnit("class C { C() : a = \"\${(){}}\"; }");
3565 } 3563 }
3566 3564
3567 void test_isFunctionDeclaration_nameButNoReturn_block() { 3565 void test_isFunctionDeclaration_nameButNoReturn_block() {
3568 expect(_isFunctionDeclaration("f() {}"), isTrue); 3566 expect(_isFunctionDeclaration("f() {}"), isTrue);
3569 } 3567 }
3570 3568
3571 void test_isFunctionDeclaration_nameButNoReturn_expression() { 3569 void test_isFunctionDeclaration_nameButNoReturn_expression() {
3572 expect(_isFunctionDeclaration("f() => e"), isTrue); 3570 expect(_isFunctionDeclaration("f() => e"), isTrue);
3573 } 3571 }
3574 3572
(...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after
3719 3717
3720 void test_isSwitchMember_default_unlabeled() { 3718 void test_isSwitchMember_default_unlabeled() {
3721 expect(_isSwitchMember("default"), isTrue); 3719 expect(_isSwitchMember("default"), isTrue);
3722 } 3720 }
3723 3721
3724 void test_isSwitchMember_false() { 3722 void test_isSwitchMember_false() {
3725 expect(_isSwitchMember("break;"), isFalse); 3723 expect(_isSwitchMember("break;"), isFalse);
3726 } 3724 }
3727 3725
3728 void test_parseAdditiveExpression_normal() { 3726 void test_parseAdditiveExpression_normal() {
3729 BinaryExpression expression = ParserTestCase.parse4("parseAdditiveExpression ", "x + y", []); 3727 BinaryExpression expression = ParserTestCase.parse4("parseAdditiveExpression ", "x + y");
3730 expect(expression.leftOperand, isNotNull); 3728 expect(expression.leftOperand, isNotNull);
3731 expect(expression.operator, isNotNull); 3729 expect(expression.operator, isNotNull);
3732 expect(expression.operator.type, TokenType.PLUS); 3730 expect(expression.operator.type, TokenType.PLUS);
3733 expect(expression.rightOperand, isNotNull); 3731 expect(expression.rightOperand, isNotNull);
3734 } 3732 }
3735 3733
3736 void test_parseAdditiveExpression_super() { 3734 void test_parseAdditiveExpression_super() {
3737 BinaryExpression expression = ParserTestCase.parse4("parseAdditiveExpression ", "super + y", []); 3735 BinaryExpression expression = ParserTestCase.parse4("parseAdditiveExpression ", "super + y");
3738 EngineTestCase.assertInstanceOf((obj) => obj is SuperExpression, SuperExpres sion, expression.leftOperand); 3736 EngineTestCase.assertInstanceOf((obj) => obj is SuperExpression, SuperExpres sion, expression.leftOperand);
3739 expect(expression.operator, isNotNull); 3737 expect(expression.operator, isNotNull);
3740 expect(expression.operator.type, TokenType.PLUS); 3738 expect(expression.operator.type, TokenType.PLUS);
3741 expect(expression.rightOperand, isNotNull); 3739 expect(expression.rightOperand, isNotNull);
3742 } 3740 }
3743 3741
3744 void test_parseAnnotation_n1() { 3742 void test_parseAnnotation_n1() {
3745 Annotation annotation = ParserTestCase.parse4("parseAnnotation", "@A", []); 3743 Annotation annotation = ParserTestCase.parse4("parseAnnotation", "@A");
3746 expect(annotation.atSign, isNotNull); 3744 expect(annotation.atSign, isNotNull);
3747 expect(annotation.name, isNotNull); 3745 expect(annotation.name, isNotNull);
3748 expect(annotation.period, isNull); 3746 expect(annotation.period, isNull);
3749 expect(annotation.constructorName, isNull); 3747 expect(annotation.constructorName, isNull);
3750 expect(annotation.arguments, isNull); 3748 expect(annotation.arguments, isNull);
3751 } 3749 }
3752 3750
3753 void test_parseAnnotation_n1_a() { 3751 void test_parseAnnotation_n1_a() {
3754 Annotation annotation = ParserTestCase.parse4("parseAnnotation", "@A(x,y)", []); 3752 Annotation annotation = ParserTestCase.parse4("parseAnnotation", "@A(x,y)");
3755 expect(annotation.atSign, isNotNull); 3753 expect(annotation.atSign, isNotNull);
3756 expect(annotation.name, isNotNull); 3754 expect(annotation.name, isNotNull);
3757 expect(annotation.period, isNull); 3755 expect(annotation.period, isNull);
3758 expect(annotation.constructorName, isNull); 3756 expect(annotation.constructorName, isNull);
3759 expect(annotation.arguments, isNotNull); 3757 expect(annotation.arguments, isNotNull);
3760 } 3758 }
3761 3759
3762 void test_parseAnnotation_n2() { 3760 void test_parseAnnotation_n2() {
3763 Annotation annotation = ParserTestCase.parse4("parseAnnotation", "@A.B", []) ; 3761 Annotation annotation = ParserTestCase.parse4("parseAnnotation", "@A.B");
3764 expect(annotation.atSign, isNotNull); 3762 expect(annotation.atSign, isNotNull);
3765 expect(annotation.name, isNotNull); 3763 expect(annotation.name, isNotNull);
3766 expect(annotation.period, isNull); 3764 expect(annotation.period, isNull);
3767 expect(annotation.constructorName, isNull); 3765 expect(annotation.constructorName, isNull);
3768 expect(annotation.arguments, isNull); 3766 expect(annotation.arguments, isNull);
3769 } 3767 }
3770 3768
3771 void test_parseAnnotation_n2_a() { 3769 void test_parseAnnotation_n2_a() {
3772 Annotation annotation = ParserTestCase.parse4("parseAnnotation", "@A.B(x,y)" , []); 3770 Annotation annotation = ParserTestCase.parse4("parseAnnotation", "@A.B(x,y)" );
3773 expect(annotation.atSign, isNotNull); 3771 expect(annotation.atSign, isNotNull);
3774 expect(annotation.name, isNotNull); 3772 expect(annotation.name, isNotNull);
3775 expect(annotation.period, isNull); 3773 expect(annotation.period, isNull);
3776 expect(annotation.constructorName, isNull); 3774 expect(annotation.constructorName, isNull);
3777 expect(annotation.arguments, isNotNull); 3775 expect(annotation.arguments, isNotNull);
3778 } 3776 }
3779 3777
3780 void test_parseAnnotation_n3() { 3778 void test_parseAnnotation_n3() {
3781 Annotation annotation = ParserTestCase.parse4("parseAnnotation", "@A.B.C", [ ]); 3779 Annotation annotation = ParserTestCase.parse4("parseAnnotation", "@A.B.C");
3782 expect(annotation.atSign, isNotNull); 3780 expect(annotation.atSign, isNotNull);
3783 expect(annotation.name, isNotNull); 3781 expect(annotation.name, isNotNull);
3784 expect(annotation.period, isNotNull); 3782 expect(annotation.period, isNotNull);
3785 expect(annotation.constructorName, isNotNull); 3783 expect(annotation.constructorName, isNotNull);
3786 expect(annotation.arguments, isNull); 3784 expect(annotation.arguments, isNull);
3787 } 3785 }
3788 3786
3789 void test_parseAnnotation_n3_a() { 3787 void test_parseAnnotation_n3_a() {
3790 Annotation annotation = ParserTestCase.parse4("parseAnnotation", "@A.B.C(x,y )", []); 3788 Annotation annotation = ParserTestCase.parse4("parseAnnotation", "@A.B.C(x,y )");
3791 expect(annotation.atSign, isNotNull); 3789 expect(annotation.atSign, isNotNull);
3792 expect(annotation.name, isNotNull); 3790 expect(annotation.name, isNotNull);
3793 expect(annotation.period, isNotNull); 3791 expect(annotation.period, isNotNull);
3794 expect(annotation.constructorName, isNotNull); 3792 expect(annotation.constructorName, isNotNull);
3795 expect(annotation.arguments, isNotNull); 3793 expect(annotation.arguments, isNotNull);
3796 } 3794 }
3797 3795
3798 void test_parseArgument_named() { 3796 void test_parseArgument_named() {
3799 NamedExpression expression = ParserTestCase.parse4("parseArgument", "n: x", []); 3797 NamedExpression expression = ParserTestCase.parse4("parseArgument", "n: x");
3800 Label name = expression.name; 3798 Label name = expression.name;
3801 expect(name, isNotNull); 3799 expect(name, isNotNull);
3802 expect(name.label, isNotNull); 3800 expect(name.label, isNotNull);
3803 expect(name.colon, isNotNull); 3801 expect(name.colon, isNotNull);
3804 expect(expression.expression, isNotNull); 3802 expect(expression.expression, isNotNull);
3805 } 3803 }
3806 3804
3807 void test_parseArgument_unnamed() { 3805 void test_parseArgument_unnamed() {
3808 String lexeme = "x"; 3806 String lexeme = "x";
3809 SimpleIdentifier identifier = ParserTestCase.parse4("parseArgument", lexeme, []); 3807 SimpleIdentifier identifier = ParserTestCase.parse4("parseArgument", lexeme) ;
3810 expect(identifier.name, lexeme); 3808 expect(identifier.name, lexeme);
3811 } 3809 }
3812 3810
3813 void test_parseArgumentList_empty() { 3811 void test_parseArgumentList_empty() {
3814 ArgumentList argumentList = ParserTestCase.parse4("parseArgumentList", "()", []); 3812 ArgumentList argumentList = ParserTestCase.parse4("parseArgumentList", "()") ;
3815 NodeList<Expression> arguments = argumentList.arguments; 3813 NodeList<Expression> arguments = argumentList.arguments;
3816 expect(arguments, hasLength(0)); 3814 expect(arguments, hasLength(0));
3817 } 3815 }
3818 3816
3819 void test_parseArgumentList_mixed() { 3817 void test_parseArgumentList_mixed() {
3820 ArgumentList argumentList = ParserTestCase.parse4("parseArgumentList", "(w, x, y: y, z: z)", []); 3818 ArgumentList argumentList = ParserTestCase.parse4("parseArgumentList", "(w, x, y: y, z: z)");
3821 NodeList<Expression> arguments = argumentList.arguments; 3819 NodeList<Expression> arguments = argumentList.arguments;
3822 expect(arguments, hasLength(4)); 3820 expect(arguments, hasLength(4));
3823 } 3821 }
3824 3822
3825 void test_parseArgumentList_noNamed() { 3823 void test_parseArgumentList_noNamed() {
3826 ArgumentList argumentList = ParserTestCase.parse4("parseArgumentList", "(x, y, z)", []); 3824 ArgumentList argumentList = ParserTestCase.parse4("parseArgumentList", "(x, y, z)");
3827 NodeList<Expression> arguments = argumentList.arguments; 3825 NodeList<Expression> arguments = argumentList.arguments;
3828 expect(arguments, hasLength(3)); 3826 expect(arguments, hasLength(3));
3829 } 3827 }
3830 3828
3831 void test_parseArgumentList_onlyNamed() { 3829 void test_parseArgumentList_onlyNamed() {
3832 ArgumentList argumentList = ParserTestCase.parse4("parseArgumentList", "(x: x, y: y)", []); 3830 ArgumentList argumentList = ParserTestCase.parse4("parseArgumentList", "(x: x, y: y)");
3833 NodeList<Expression> arguments = argumentList.arguments; 3831 NodeList<Expression> arguments = argumentList.arguments;
3834 expect(arguments, hasLength(2)); 3832 expect(arguments, hasLength(2));
3835 } 3833 }
3836 3834
3837 void test_parseAssertStatement() { 3835 void test_parseAssertStatement() {
3838 AssertStatement statement = ParserTestCase.parse4("parseAssertStatement", "a ssert (x);", []); 3836 AssertStatement statement = ParserTestCase.parse4("parseAssertStatement", "a ssert (x);");
3839 expect(statement.keyword, isNotNull); 3837 expect(statement.keyword, isNotNull);
3840 expect(statement.leftParenthesis, isNotNull); 3838 expect(statement.leftParenthesis, isNotNull);
3841 expect(statement.condition, isNotNull); 3839 expect(statement.condition, isNotNull);
3842 expect(statement.rightParenthesis, isNotNull); 3840 expect(statement.rightParenthesis, isNotNull);
3843 expect(statement.semicolon, isNotNull); 3841 expect(statement.semicolon, isNotNull);
3844 } 3842 }
3845 3843
3846 void test_parseAssignableExpression_expression_args_dot() { 3844 void test_parseAssignableExpression_expression_args_dot() {
3847 PropertyAccess propertyAccess = ParserTestCase.parse("parseAssignableExpress ion", <Object> [false], "(x)(y).z"); 3845 PropertyAccess propertyAccess = ParserTestCase.parse("parseAssignableExpress ion", <Object> [false], "(x)(y).z");
3848 FunctionExpressionInvocation invocation = propertyAccess.target as FunctionE xpressionInvocation; 3846 FunctionExpressionInvocation invocation = propertyAccess.target as FunctionE xpressionInvocation;
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
3927 expect(selector.index, isNotNull); 3925 expect(selector.index, isNotNull);
3928 expect(selector.rightBracket, isNotNull); 3926 expect(selector.rightBracket, isNotNull);
3929 } 3927 }
3930 3928
3931 void test_parseAssignableSelector_none() { 3929 void test_parseAssignableSelector_none() {
3932 SimpleIdentifier selector = ParserTestCase.parse("parseAssignableSelector", <Object> [new SimpleIdentifier(null), true], ";"); 3930 SimpleIdentifier selector = ParserTestCase.parse("parseAssignableSelector", <Object> [new SimpleIdentifier(null), true], ";");
3933 expect(selector, isNotNull); 3931 expect(selector, isNotNull);
3934 } 3932 }
3935 3933
3936 void test_parseAwaitExpression() { 3934 void test_parseAwaitExpression() {
3937 AwaitExpression expression = ParserTestCase.parse4("parseAwaitExpression", " await x;", []); 3935 AwaitExpression expression = ParserTestCase.parse4("parseAwaitExpression", " await x;");
3938 expect(expression.awaitKeyword, isNotNull); 3936 expect(expression.awaitKeyword, isNotNull);
3939 expect(expression.expression, isNotNull); 3937 expect(expression.expression, isNotNull);
3940 } 3938 }
3941 3939
3942 void test_parseAwaitExpression_asStatement_inAsync() { 3940 void test_parseAwaitExpression_asStatement_inAsync() {
3943 MethodDeclaration method = ParserTestCase.parse("parseClassMember", <Object> ["C"], "m() async { await x; }"); 3941 MethodDeclaration method = ParserTestCase.parse("parseClassMember", <Object> ["C"], "m() async { await x; }");
3944 FunctionBody body = method.body; 3942 FunctionBody body = method.body;
3945 EngineTestCase.assertInstanceOf((obj) => obj is BlockFunctionBody, BlockFunc tionBody, body); 3943 EngineTestCase.assertInstanceOf((obj) => obj is BlockFunctionBody, BlockFunc tionBody, body);
3946 Statement statement = (body as BlockFunctionBody).block.statements[0]; 3944 Statement statement = (body as BlockFunctionBody).block.statements[0];
3947 EngineTestCase.assertInstanceOf((obj) => obj is ExpressionStatement, Express ionStatement, statement); 3945 EngineTestCase.assertInstanceOf((obj) => obj is ExpressionStatement, Express ionStatement, statement);
(...skipping 17 matching lines...) Expand all
3965 EngineTestCase.assertInstanceOf((obj) => obj is BlockFunctionBody, BlockFunc tionBody, body); 3963 EngineTestCase.assertInstanceOf((obj) => obj is BlockFunctionBody, BlockFunc tionBody, body);
3966 Statement statement = (body as BlockFunctionBody).block.statements[0]; 3964 Statement statement = (body as BlockFunctionBody).block.statements[0];
3967 EngineTestCase.assertInstanceOf((obj) => obj is ReturnStatement, ReturnState ment, statement); 3965 EngineTestCase.assertInstanceOf((obj) => obj is ReturnStatement, ReturnState ment, statement);
3968 Expression expression = (statement as ReturnStatement).expression; 3966 Expression expression = (statement as ReturnStatement).expression;
3969 EngineTestCase.assertInstanceOf((obj) => obj is BinaryExpression, BinaryExpr ession, expression); 3967 EngineTestCase.assertInstanceOf((obj) => obj is BinaryExpression, BinaryExpr ession, expression);
3970 EngineTestCase.assertInstanceOf((obj) => obj is AwaitExpression, AwaitExpres sion, (expression as BinaryExpression).leftOperand); 3968 EngineTestCase.assertInstanceOf((obj) => obj is AwaitExpression, AwaitExpres sion, (expression as BinaryExpression).leftOperand);
3971 EngineTestCase.assertInstanceOf((obj) => obj is AwaitExpression, AwaitExpres sion, (expression as BinaryExpression).rightOperand); 3969 EngineTestCase.assertInstanceOf((obj) => obj is AwaitExpression, AwaitExpres sion, (expression as BinaryExpression).rightOperand);
3972 } 3970 }
3973 3971
3974 void test_parseBitwiseAndExpression_normal() { 3972 void test_parseBitwiseAndExpression_normal() {
3975 BinaryExpression expression = ParserTestCase.parse4("parseBitwiseAndExpressi on", "x & y", []); 3973 BinaryExpression expression = ParserTestCase.parse4("parseBitwiseAndExpressi on", "x & y");
3976 expect(expression.leftOperand, isNotNull); 3974 expect(expression.leftOperand, isNotNull);
3977 expect(expression.operator, isNotNull); 3975 expect(expression.operator, isNotNull);
3978 expect(expression.operator.type, TokenType.AMPERSAND); 3976 expect(expression.operator.type, TokenType.AMPERSAND);
3979 expect(expression.rightOperand, isNotNull); 3977 expect(expression.rightOperand, isNotNull);
3980 } 3978 }
3981 3979
3982 void test_parseBitwiseAndExpression_super() { 3980 void test_parseBitwiseAndExpression_super() {
3983 BinaryExpression expression = ParserTestCase.parse4("parseBitwiseAndExpressi on", "super & y", []); 3981 BinaryExpression expression = ParserTestCase.parse4("parseBitwiseAndExpressi on", "super & y");
3984 EngineTestCase.assertInstanceOf((obj) => obj is SuperExpression, SuperExpres sion, expression.leftOperand); 3982 EngineTestCase.assertInstanceOf((obj) => obj is SuperExpression, SuperExpres sion, expression.leftOperand);
3985 expect(expression.operator, isNotNull); 3983 expect(expression.operator, isNotNull);
3986 expect(expression.operator.type, TokenType.AMPERSAND); 3984 expect(expression.operator.type, TokenType.AMPERSAND);
3987 expect(expression.rightOperand, isNotNull); 3985 expect(expression.rightOperand, isNotNull);
3988 } 3986 }
3989 3987
3990 void test_parseBitwiseOrExpression_normal() { 3988 void test_parseBitwiseOrExpression_normal() {
3991 BinaryExpression expression = ParserTestCase.parse4("parseBitwiseOrExpressio n", "x | y", []); 3989 BinaryExpression expression = ParserTestCase.parse4("parseBitwiseOrExpressio n", "x | y");
3992 expect(expression.leftOperand, isNotNull); 3990 expect(expression.leftOperand, isNotNull);
3993 expect(expression.operator, isNotNull); 3991 expect(expression.operator, isNotNull);
3994 expect(expression.operator.type, TokenType.BAR); 3992 expect(expression.operator.type, TokenType.BAR);
3995 expect(expression.rightOperand, isNotNull); 3993 expect(expression.rightOperand, isNotNull);
3996 } 3994 }
3997 3995
3998 void test_parseBitwiseOrExpression_super() { 3996 void test_parseBitwiseOrExpression_super() {
3999 BinaryExpression expression = ParserTestCase.parse4("parseBitwiseOrExpressio n", "super | y", []); 3997 BinaryExpression expression = ParserTestCase.parse4("parseBitwiseOrExpressio n", "super | y");
4000 EngineTestCase.assertInstanceOf((obj) => obj is SuperExpression, SuperExpres sion, expression.leftOperand); 3998 EngineTestCase.assertInstanceOf((obj) => obj is SuperExpression, SuperExpres sion, expression.leftOperand);
4001 expect(expression.operator, isNotNull); 3999 expect(expression.operator, isNotNull);
4002 expect(expression.operator.type, TokenType.BAR); 4000 expect(expression.operator.type, TokenType.BAR);
4003 expect(expression.rightOperand, isNotNull); 4001 expect(expression.rightOperand, isNotNull);
4004 } 4002 }
4005 4003
4006 void test_parseBitwiseXorExpression_normal() { 4004 void test_parseBitwiseXorExpression_normal() {
4007 BinaryExpression expression = ParserTestCase.parse4("parseBitwiseXorExpressi on", "x ^ y", []); 4005 BinaryExpression expression = ParserTestCase.parse4("parseBitwiseXorExpressi on", "x ^ y");
4008 expect(expression.leftOperand, isNotNull); 4006 expect(expression.leftOperand, isNotNull);
4009 expect(expression.operator, isNotNull); 4007 expect(expression.operator, isNotNull);
4010 expect(expression.operator.type, TokenType.CARET); 4008 expect(expression.operator.type, TokenType.CARET);
4011 expect(expression.rightOperand, isNotNull); 4009 expect(expression.rightOperand, isNotNull);
4012 } 4010 }
4013 4011
4014 void test_parseBitwiseXorExpression_super() { 4012 void test_parseBitwiseXorExpression_super() {
4015 BinaryExpression expression = ParserTestCase.parse4("parseBitwiseXorExpressi on", "super ^ y", []); 4013 BinaryExpression expression = ParserTestCase.parse4("parseBitwiseXorExpressi on", "super ^ y");
4016 EngineTestCase.assertInstanceOf((obj) => obj is SuperExpression, SuperExpres sion, expression.leftOperand); 4014 EngineTestCase.assertInstanceOf((obj) => obj is SuperExpression, SuperExpres sion, expression.leftOperand);
4017 expect(expression.operator, isNotNull); 4015 expect(expression.operator, isNotNull);
4018 expect(expression.operator.type, TokenType.CARET); 4016 expect(expression.operator.type, TokenType.CARET);
4019 expect(expression.rightOperand, isNotNull); 4017 expect(expression.rightOperand, isNotNull);
4020 } 4018 }
4021 4019
4022 void test_parseBlock_empty() { 4020 void test_parseBlock_empty() {
4023 Block block = ParserTestCase.parse4("parseBlock", "{}", []); 4021 Block block = ParserTestCase.parse4("parseBlock", "{}");
4024 expect(block.leftBracket, isNotNull); 4022 expect(block.leftBracket, isNotNull);
4025 expect(block.statements, hasLength(0)); 4023 expect(block.statements, hasLength(0));
4026 expect(block.rightBracket, isNotNull); 4024 expect(block.rightBracket, isNotNull);
4027 } 4025 }
4028 4026
4029 void test_parseBlock_nonEmpty() { 4027 void test_parseBlock_nonEmpty() {
4030 Block block = ParserTestCase.parse4("parseBlock", "{;}", []); 4028 Block block = ParserTestCase.parse4("parseBlock", "{;}");
4031 expect(block.leftBracket, isNotNull); 4029 expect(block.leftBracket, isNotNull);
4032 expect(block.statements, hasLength(1)); 4030 expect(block.statements, hasLength(1));
4033 expect(block.rightBracket, isNotNull); 4031 expect(block.rightBracket, isNotNull);
4034 } 4032 }
4035 4033
4036 void test_parseBreakStatement_label() { 4034 void test_parseBreakStatement_label() {
4037 BreakStatement statement = ParserTestCase.parse4("parseBreakStatement", "bre ak foo;", []); 4035 BreakStatement statement = ParserTestCase.parse4("parseBreakStatement", "bre ak foo;");
4038 expect(statement.keyword, isNotNull); 4036 expect(statement.keyword, isNotNull);
4039 expect(statement.label, isNotNull); 4037 expect(statement.label, isNotNull);
4040 expect(statement.semicolon, isNotNull); 4038 expect(statement.semicolon, isNotNull);
4041 } 4039 }
4042 4040
4043 void test_parseBreakStatement_noLabel() { 4041 void test_parseBreakStatement_noLabel() {
4044 BreakStatement statement = ParserTestCase.parse4("parseBreakStatement", "bre ak;", [ParserErrorCode.BREAK_OUTSIDE_OF_LOOP]); 4042 BreakStatement statement = ParserTestCase.parse4("parseBreakStatement", "bre ak;", [ParserErrorCode.BREAK_OUTSIDE_OF_LOOP]);
4045 expect(statement.keyword, isNotNull); 4043 expect(statement.keyword, isNotNull);
4046 expect(statement.label, isNull); 4044 expect(statement.label, isNull);
4047 expect(statement.semicolon, isNotNull); 4045 expect(statement.semicolon, isNotNull);
4048 } 4046 }
4049 4047
4050 void test_parseCascadeSection_i() { 4048 void test_parseCascadeSection_i() {
4051 IndexExpression section = ParserTestCase.parse4("parseCascadeSection", "..[i ]", []); 4049 IndexExpression section = ParserTestCase.parse4("parseCascadeSection", "..[i ]");
4052 expect(section.target, isNull); 4050 expect(section.target, isNull);
4053 expect(section.leftBracket, isNotNull); 4051 expect(section.leftBracket, isNotNull);
4054 expect(section.index, isNotNull); 4052 expect(section.index, isNotNull);
4055 expect(section.rightBracket, isNotNull); 4053 expect(section.rightBracket, isNotNull);
4056 } 4054 }
4057 4055
4058 void test_parseCascadeSection_ia() { 4056 void test_parseCascadeSection_ia() {
4059 FunctionExpressionInvocation section = ParserTestCase.parse4("parseCascadeSe ction", "..[i](b)", []); 4057 FunctionExpressionInvocation section = ParserTestCase.parse4("parseCascadeSe ction", "..[i](b)");
4060 EngineTestCase.assertInstanceOf((obj) => obj is IndexExpression, IndexExpres sion, section.function); 4058 EngineTestCase.assertInstanceOf((obj) => obj is IndexExpression, IndexExpres sion, section.function);
4061 expect(section.argumentList, isNotNull); 4059 expect(section.argumentList, isNotNull);
4062 } 4060 }
4063 4061
4064 void test_parseCascadeSection_ii() { 4062 void test_parseCascadeSection_ii() {
4065 MethodInvocation section = ParserTestCase.parse4("parseCascadeSection", "..a (b).c(d)", []); 4063 MethodInvocation section = ParserTestCase.parse4("parseCascadeSection", "..a (b).c(d)");
4066 EngineTestCase.assertInstanceOf((obj) => obj is MethodInvocation, MethodInvo cation, section.target); 4064 EngineTestCase.assertInstanceOf((obj) => obj is MethodInvocation, MethodInvo cation, section.target);
4067 expect(section.period, isNotNull); 4065 expect(section.period, isNotNull);
4068 expect(section.methodName, isNotNull); 4066 expect(section.methodName, isNotNull);
4069 expect(section.argumentList, isNotNull); 4067 expect(section.argumentList, isNotNull);
4070 expect(section.argumentList.arguments, hasLength(1)); 4068 expect(section.argumentList.arguments, hasLength(1));
4071 } 4069 }
4072 4070
4073 void test_parseCascadeSection_p() { 4071 void test_parseCascadeSection_p() {
4074 PropertyAccess section = ParserTestCase.parse4("parseCascadeSection", "..a", []); 4072 PropertyAccess section = ParserTestCase.parse4("parseCascadeSection", "..a") ;
4075 expect(section.target, isNull); 4073 expect(section.target, isNull);
4076 expect(section.operator, isNotNull); 4074 expect(section.operator, isNotNull);
4077 expect(section.propertyName, isNotNull); 4075 expect(section.propertyName, isNotNull);
4078 } 4076 }
4079 4077
4080 void test_parseCascadeSection_p_assign() { 4078 void test_parseCascadeSection_p_assign() {
4081 AssignmentExpression section = ParserTestCase.parse4("parseCascadeSection", "..a = 3", []); 4079 AssignmentExpression section = ParserTestCase.parse4("parseCascadeSection", "..a = 3");
4082 expect(section.leftHandSide, isNotNull); 4080 expect(section.leftHandSide, isNotNull);
4083 expect(section.operator, isNotNull); 4081 expect(section.operator, isNotNull);
4084 Expression rhs = section.rightHandSide; 4082 Expression rhs = section.rightHandSide;
4085 expect(rhs, isNotNull); 4083 expect(rhs, isNotNull);
4086 } 4084 }
4087 4085
4088 void test_parseCascadeSection_p_assign_withCascade() { 4086 void test_parseCascadeSection_p_assign_withCascade() {
4089 AssignmentExpression section = ParserTestCase.parse4("parseCascadeSection", "..a = 3..m()", []); 4087 AssignmentExpression section = ParserTestCase.parse4("parseCascadeSection", "..a = 3..m()");
4090 expect(section.leftHandSide, isNotNull); 4088 expect(section.leftHandSide, isNotNull);
4091 expect(section.operator, isNotNull); 4089 expect(section.operator, isNotNull);
4092 Expression rhs = section.rightHandSide; 4090 Expression rhs = section.rightHandSide;
4093 EngineTestCase.assertInstanceOf((obj) => obj is IntegerLiteral, IntegerLiter al, rhs); 4091 EngineTestCase.assertInstanceOf((obj) => obj is IntegerLiteral, IntegerLiter al, rhs);
4094 } 4092 }
4095 4093
4096 void test_parseCascadeSection_p_builtIn() { 4094 void test_parseCascadeSection_p_builtIn() {
4097 PropertyAccess section = ParserTestCase.parse4("parseCascadeSection", "..as" , []); 4095 PropertyAccess section = ParserTestCase.parse4("parseCascadeSection", "..as" );
4098 expect(section.target, isNull); 4096 expect(section.target, isNull);
4099 expect(section.operator, isNotNull); 4097 expect(section.operator, isNotNull);
4100 expect(section.propertyName, isNotNull); 4098 expect(section.propertyName, isNotNull);
4101 } 4099 }
4102 4100
4103 void test_parseCascadeSection_pa() { 4101 void test_parseCascadeSection_pa() {
4104 MethodInvocation section = ParserTestCase.parse4("parseCascadeSection", "..a (b)", []); 4102 MethodInvocation section = ParserTestCase.parse4("parseCascadeSection", "..a (b)");
4105 expect(section.target, isNull); 4103 expect(section.target, isNull);
4106 expect(section.period, isNotNull); 4104 expect(section.period, isNotNull);
4107 expect(section.methodName, isNotNull); 4105 expect(section.methodName, isNotNull);
4108 expect(section.argumentList, isNotNull); 4106 expect(section.argumentList, isNotNull);
4109 expect(section.argumentList.arguments, hasLength(1)); 4107 expect(section.argumentList.arguments, hasLength(1));
4110 } 4108 }
4111 4109
4112 void test_parseCascadeSection_paa() { 4110 void test_parseCascadeSection_paa() {
4113 FunctionExpressionInvocation section = ParserTestCase.parse4("parseCascadeSe ction", "..a(b)(c)", []); 4111 FunctionExpressionInvocation section = ParserTestCase.parse4("parseCascadeSe ction", "..a(b)(c)");
4114 EngineTestCase.assertInstanceOf((obj) => obj is MethodInvocation, MethodInvo cation, section.function); 4112 EngineTestCase.assertInstanceOf((obj) => obj is MethodInvocation, MethodInvo cation, section.function);
4115 expect(section.argumentList, isNotNull); 4113 expect(section.argumentList, isNotNull);
4116 expect(section.argumentList.arguments, hasLength(1)); 4114 expect(section.argumentList.arguments, hasLength(1));
4117 } 4115 }
4118 4116
4119 void test_parseCascadeSection_paapaa() { 4117 void test_parseCascadeSection_paapaa() {
4120 FunctionExpressionInvocation section = ParserTestCase.parse4("parseCascadeSe ction", "..a(b)(c).d(e)(f)", []); 4118 FunctionExpressionInvocation section = ParserTestCase.parse4("parseCascadeSe ction", "..a(b)(c).d(e)(f)");
4121 EngineTestCase.assertInstanceOf((obj) => obj is MethodInvocation, MethodInvo cation, section.function); 4119 EngineTestCase.assertInstanceOf((obj) => obj is MethodInvocation, MethodInvo cation, section.function);
4122 expect(section.argumentList, isNotNull); 4120 expect(section.argumentList, isNotNull);
4123 expect(section.argumentList.arguments, hasLength(1)); 4121 expect(section.argumentList.arguments, hasLength(1));
4124 } 4122 }
4125 4123
4126 void test_parseCascadeSection_pap() { 4124 void test_parseCascadeSection_pap() {
4127 PropertyAccess section = ParserTestCase.parse4("parseCascadeSection", "..a(b ).c", []); 4125 PropertyAccess section = ParserTestCase.parse4("parseCascadeSection", "..a(b ).c");
4128 expect(section.target, isNotNull); 4126 expect(section.target, isNotNull);
4129 expect(section.operator, isNotNull); 4127 expect(section.operator, isNotNull);
4130 expect(section.propertyName, isNotNull); 4128 expect(section.propertyName, isNotNull);
4131 } 4129 }
4132 4130
4133 void test_parseClassDeclaration_abstract() { 4131 void test_parseClassDeclaration_abstract() {
4134 ClassDeclaration declaration = ParserTestCase.parse("parseClassDeclaration", <Object> [ 4132 ClassDeclaration declaration = ParserTestCase.parse("parseClassDeclaration", <Object> [
4135 emptyCommentAndMetadata(), 4133 emptyCommentAndMetadata(),
4136 TokenFactory.tokenFromKeyword(Keyword.ABSTRACT)], "class A {}"); 4134 TokenFactory.tokenFromKeyword(Keyword.ABSTRACT)], "class A {}");
4137 expect(declaration.documentationComment, isNull); 4135 expect(declaration.documentationComment, isNull);
(...skipping 509 matching lines...) Expand 10 before | Expand all | Expand 10 after
4647 expect(classTypeAlias.name.name, "A"); 4645 expect(classTypeAlias.name.name, "A");
4648 expect(classTypeAlias.equals, isNotNull); 4646 expect(classTypeAlias.equals, isNotNull);
4649 expect(classTypeAlias.abstractKeyword, isNull); 4647 expect(classTypeAlias.abstractKeyword, isNull);
4650 expect(classTypeAlias.superclass.name.name, isNotNull, reason: "B"); 4648 expect(classTypeAlias.superclass.name.name, isNotNull, reason: "B");
4651 expect(classTypeAlias.withClause, isNotNull); 4649 expect(classTypeAlias.withClause, isNotNull);
4652 expect(classTypeAlias.implementsClause, isNotNull); 4650 expect(classTypeAlias.implementsClause, isNotNull);
4653 expect(classTypeAlias.semicolon, isNotNull); 4651 expect(classTypeAlias.semicolon, isNotNull);
4654 } 4652 }
4655 4653
4656 void test_parseCombinators_h() { 4654 void test_parseCombinators_h() {
4657 List<Combinator> combinators = ParserTestCase.parse4("parseCombinators", "hi de a;", []); 4655 List<Combinator> combinators = ParserTestCase.parse4("parseCombinators", "hi de a;");
4658 expect(combinators, hasLength(1)); 4656 expect(combinators, hasLength(1));
4659 HideCombinator combinator = combinators[0] as HideCombinator; 4657 HideCombinator combinator = combinators[0] as HideCombinator;
4660 expect(combinator, isNotNull); 4658 expect(combinator, isNotNull);
4661 expect(combinator.keyword, isNotNull); 4659 expect(combinator.keyword, isNotNull);
4662 expect(combinator.hiddenNames, hasLength(1)); 4660 expect(combinator.hiddenNames, hasLength(1));
4663 } 4661 }
4664 4662
4665 void test_parseCombinators_hs() { 4663 void test_parseCombinators_hs() {
4666 List<Combinator> combinators = ParserTestCase.parse4("parseCombinators", "hi de a show b;", []); 4664 List<Combinator> combinators = ParserTestCase.parse4("parseCombinators", "hi de a show b;");
4667 expect(combinators, hasLength(2)); 4665 expect(combinators, hasLength(2));
4668 HideCombinator hideCombinator = combinators[0] as HideCombinator; 4666 HideCombinator hideCombinator = combinators[0] as HideCombinator;
4669 expect(hideCombinator, isNotNull); 4667 expect(hideCombinator, isNotNull);
4670 expect(hideCombinator.keyword, isNotNull); 4668 expect(hideCombinator.keyword, isNotNull);
4671 expect(hideCombinator.hiddenNames, hasLength(1)); 4669 expect(hideCombinator.hiddenNames, hasLength(1));
4672 ShowCombinator showCombinator = combinators[1] as ShowCombinator; 4670 ShowCombinator showCombinator = combinators[1] as ShowCombinator;
4673 expect(showCombinator, isNotNull); 4671 expect(showCombinator, isNotNull);
4674 expect(showCombinator.keyword, isNotNull); 4672 expect(showCombinator.keyword, isNotNull);
4675 expect(showCombinator.shownNames, hasLength(1)); 4673 expect(showCombinator.shownNames, hasLength(1));
4676 } 4674 }
4677 4675
4678 void test_parseCombinators_hshs() { 4676 void test_parseCombinators_hshs() {
4679 List<Combinator> combinators = ParserTestCase.parse4("parseCombinators", "hi de a show b hide c show d;", []); 4677 List<Combinator> combinators = ParserTestCase.parse4("parseCombinators", "hi de a show b hide c show d;");
4680 expect(combinators, hasLength(4)); 4678 expect(combinators, hasLength(4));
4681 } 4679 }
4682 4680
4683 void test_parseCombinators_s() { 4681 void test_parseCombinators_s() {
4684 List<Combinator> combinators = ParserTestCase.parse4("parseCombinators", "sh ow a;", []); 4682 List<Combinator> combinators = ParserTestCase.parse4("parseCombinators", "sh ow a;");
4685 expect(combinators, hasLength(1)); 4683 expect(combinators, hasLength(1));
4686 ShowCombinator combinator = combinators[0] as ShowCombinator; 4684 ShowCombinator combinator = combinators[0] as ShowCombinator;
4687 expect(combinator, isNotNull); 4685 expect(combinator, isNotNull);
4688 expect(combinator.keyword, isNotNull); 4686 expect(combinator.keyword, isNotNull);
4689 expect(combinator.shownNames, hasLength(1)); 4687 expect(combinator.shownNames, hasLength(1));
4690 } 4688 }
4691 4689
4692 void test_parseCommentAndMetadata_c() { 4690 void test_parseCommentAndMetadata_c() {
4693 CommentAndMetadata commentAndMetadata = ParserTestCase.parse4("parseCommentA ndMetadata", "/** 1 */ void", []); 4691 CommentAndMetadata commentAndMetadata = ParserTestCase.parse4("parseCommentA ndMetadata", "/** 1 */ void");
4694 expect(commentAndMetadata.comment, isNotNull); 4692 expect(commentAndMetadata.comment, isNotNull);
4695 expect(commentAndMetadata.metadata, hasLength(0)); 4693 expect(commentAndMetadata.metadata, hasLength(0));
4696 } 4694 }
4697 4695
4698 void test_parseCommentAndMetadata_cmc() { 4696 void test_parseCommentAndMetadata_cmc() {
4699 CommentAndMetadata commentAndMetadata = ParserTestCase.parse4("parseCommentA ndMetadata", "/** 1 */ @A /** 2 */ void", []); 4697 CommentAndMetadata commentAndMetadata = ParserTestCase.parse4("parseCommentA ndMetadata", "/** 1 */ @A /** 2 */ void");
4700 expect(commentAndMetadata.comment, isNotNull); 4698 expect(commentAndMetadata.comment, isNotNull);
4701 expect(commentAndMetadata.metadata, hasLength(1)); 4699 expect(commentAndMetadata.metadata, hasLength(1));
4702 } 4700 }
4703 4701
4704 void test_parseCommentAndMetadata_cmcm() { 4702 void test_parseCommentAndMetadata_cmcm() {
4705 CommentAndMetadata commentAndMetadata = ParserTestCase.parse4("parseCommentA ndMetadata", "/** 1 */ @A /** 2 */ @B void", []); 4703 CommentAndMetadata commentAndMetadata = ParserTestCase.parse4("parseCommentA ndMetadata", "/** 1 */ @A /** 2 */ @B void");
4706 expect(commentAndMetadata.comment, isNotNull); 4704 expect(commentAndMetadata.comment, isNotNull);
4707 expect(commentAndMetadata.metadata, hasLength(2)); 4705 expect(commentAndMetadata.metadata, hasLength(2));
4708 } 4706 }
4709 4707
4710 void test_parseCommentAndMetadata_cmm() { 4708 void test_parseCommentAndMetadata_cmm() {
4711 CommentAndMetadata commentAndMetadata = ParserTestCase.parse4("parseCommentA ndMetadata", "/** 1 */ @A @B void", []); 4709 CommentAndMetadata commentAndMetadata = ParserTestCase.parse4("parseCommentA ndMetadata", "/** 1 */ @A @B void");
4712 expect(commentAndMetadata.comment, isNotNull); 4710 expect(commentAndMetadata.comment, isNotNull);
4713 expect(commentAndMetadata.metadata, hasLength(2)); 4711 expect(commentAndMetadata.metadata, hasLength(2));
4714 } 4712 }
4715 4713
4716 void test_parseCommentAndMetadata_m() { 4714 void test_parseCommentAndMetadata_m() {
4717 CommentAndMetadata commentAndMetadata = ParserTestCase.parse4("parseCommentA ndMetadata", "@A void", []); 4715 CommentAndMetadata commentAndMetadata = ParserTestCase.parse4("parseCommentA ndMetadata", "@A void");
4718 expect(commentAndMetadata.comment, isNull); 4716 expect(commentAndMetadata.comment, isNull);
4719 expect(commentAndMetadata.metadata, hasLength(1)); 4717 expect(commentAndMetadata.metadata, hasLength(1));
4720 } 4718 }
4721 4719
4722 void test_parseCommentAndMetadata_mcm() { 4720 void test_parseCommentAndMetadata_mcm() {
4723 CommentAndMetadata commentAndMetadata = ParserTestCase.parse4("parseCommentA ndMetadata", "@A /** 1 */ @B void", []); 4721 CommentAndMetadata commentAndMetadata = ParserTestCase.parse4("parseCommentA ndMetadata", "@A /** 1 */ @B void");
4724 expect(commentAndMetadata.comment, isNotNull); 4722 expect(commentAndMetadata.comment, isNotNull);
4725 expect(commentAndMetadata.metadata, hasLength(2)); 4723 expect(commentAndMetadata.metadata, hasLength(2));
4726 } 4724 }
4727 4725
4728 void test_parseCommentAndMetadata_mcmc() { 4726 void test_parseCommentAndMetadata_mcmc() {
4729 CommentAndMetadata commentAndMetadata = ParserTestCase.parse4("parseCommentA ndMetadata", "@A /** 1 */ @B /** 2 */ void", []); 4727 CommentAndMetadata commentAndMetadata = ParserTestCase.parse4("parseCommentA ndMetadata", "@A /** 1 */ @B /** 2 */ void");
4730 expect(commentAndMetadata.comment, isNotNull); 4728 expect(commentAndMetadata.comment, isNotNull);
4731 expect(commentAndMetadata.metadata, hasLength(2)); 4729 expect(commentAndMetadata.metadata, hasLength(2));
4732 } 4730 }
4733 4731
4734 void test_parseCommentAndMetadata_mm() { 4732 void test_parseCommentAndMetadata_mm() {
4735 CommentAndMetadata commentAndMetadata = ParserTestCase.parse4("parseCommentA ndMetadata", "@A @B(x) void", []); 4733 CommentAndMetadata commentAndMetadata = ParserTestCase.parse4("parseCommentA ndMetadata", "@A @B(x) void");
4736 expect(commentAndMetadata.comment, isNull); 4734 expect(commentAndMetadata.comment, isNull);
4737 expect(commentAndMetadata.metadata, hasLength(2)); 4735 expect(commentAndMetadata.metadata, hasLength(2));
4738 } 4736 }
4739 4737
4740 void test_parseCommentAndMetadata_none() { 4738 void test_parseCommentAndMetadata_none() {
4741 CommentAndMetadata commentAndMetadata = ParserTestCase.parse4("parseCommentA ndMetadata", "void", []); 4739 CommentAndMetadata commentAndMetadata = ParserTestCase.parse4("parseCommentA ndMetadata", "void");
4742 expect(commentAndMetadata.comment, isNull); 4740 expect(commentAndMetadata.comment, isNull);
4743 expect(commentAndMetadata.metadata, hasLength(0)); 4741 expect(commentAndMetadata.metadata, hasLength(0));
4744 } 4742 }
4745 4743
4746 void test_parseCommentAndMetadata_singleLine() { 4744 void test_parseCommentAndMetadata_singleLine() {
4747 CommentAndMetadata commentAndMetadata = ParserTestCase.parse4("parseCommentA ndMetadata", r''' 4745 CommentAndMetadata commentAndMetadata = ParserTestCase.parse4("parseCommentA ndMetadata", r'''
4748 /// 1 4746 /// 1
4749 /// 2 4747 /// 2
4750 void''', []); 4748 void''');
4751 expect(commentAndMetadata.comment, isNotNull); 4749 expect(commentAndMetadata.comment, isNotNull);
4752 expect(commentAndMetadata.metadata, hasLength(0)); 4750 expect(commentAndMetadata.metadata, hasLength(0));
4753 } 4751 }
4754 4752
4755 void test_parseCommentReference_new_prefixed() { 4753 void test_parseCommentReference_new_prefixed() {
4756 CommentReference reference = ParserTestCase.parse("parseCommentReference", < Object> ["new a.b", 7], ""); 4754 CommentReference reference = ParserTestCase.parse("parseCommentReference", < Object> ["new a.b", 7], "");
4757 PrefixedIdentifier prefixedIdentifier = EngineTestCase.assertInstanceOf((obj ) => obj is PrefixedIdentifier, PrefixedIdentifier, reference.identifier); 4755 PrefixedIdentifier prefixedIdentifier = EngineTestCase.assertInstanceOf((obj ) => obj is PrefixedIdentifier, PrefixedIdentifier, reference.identifier);
4758 SimpleIdentifier prefix = prefixedIdentifier.prefix; 4756 SimpleIdentifier prefix = prefixedIdentifier.prefix;
4759 expect(prefix.token, isNotNull); 4757 expect(prefix.token, isNotNull);
4760 expect(prefix.name, "a"); 4758 expect(prefix.name, "a");
(...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after
4906 List<Token> tokens = <Token> [new StringToken(TokenType.MULTI_LINE_COMMENT, "/** [a][c] [b] zzz */", 3)]; 4904 List<Token> tokens = <Token> [new StringToken(TokenType.MULTI_LINE_COMMENT, "/** [a][c] [b] zzz */", 3)];
4907 List<CommentReference> references = ParserTestCase.parse("parseCommentRefere nces", <Object> [tokens], ""); 4905 List<CommentReference> references = ParserTestCase.parse("parseCommentRefere nces", <Object> [tokens], "");
4908 expect(references, hasLength(1)); 4906 expect(references, hasLength(1));
4909 CommentReference reference = references[0]; 4907 CommentReference reference = references[0];
4910 expect(reference, isNotNull); 4908 expect(reference, isNotNull);
4911 expect(reference.identifier, isNotNull); 4909 expect(reference.identifier, isNotNull);
4912 expect(reference.offset, 15); 4910 expect(reference.offset, 15);
4913 } 4911 }
4914 4912
4915 void test_parseCompilationUnit_abstractAsPrefix_parameterized() { 4913 void test_parseCompilationUnit_abstractAsPrefix_parameterized() {
4916 CompilationUnit unit = ParserTestCase.parse4("parseCompilationUnit", "abstra ct<dynamic> _abstract = new abstract.A();", []); 4914 CompilationUnit unit = ParserTestCase.parse4("parseCompilationUnit", "abstra ct<dynamic> _abstract = new abstract.A();");
4917 expect(unit.scriptTag, isNull); 4915 expect(unit.scriptTag, isNull);
4918 expect(unit.directives, hasLength(0)); 4916 expect(unit.directives, hasLength(0));
4919 expect(unit.declarations, hasLength(1)); 4917 expect(unit.declarations, hasLength(1));
4920 } 4918 }
4921 4919
4922 void test_parseCompilationUnit_builtIn_asFunctionName() { 4920 void test_parseCompilationUnit_builtIn_asFunctionName() {
4923 ParserTestCase.parse4("parseCompilationUnit", "abstract(x) => 0;", []); 4921 ParserTestCase.parse4("parseCompilationUnit", "abstract(x) => 0;");
4924 ParserTestCase.parse4("parseCompilationUnit", "as(x) => 0;", []); 4922 ParserTestCase.parse4("parseCompilationUnit", "as(x) => 0;");
4925 ParserTestCase.parse4("parseCompilationUnit", "dynamic(x) => 0;", []); 4923 ParserTestCase.parse4("parseCompilationUnit", "dynamic(x) => 0;");
4926 ParserTestCase.parse4("parseCompilationUnit", "export(x) => 0;", []); 4924 ParserTestCase.parse4("parseCompilationUnit", "export(x) => 0;");
4927 ParserTestCase.parse4("parseCompilationUnit", "external(x) => 0;", []); 4925 ParserTestCase.parse4("parseCompilationUnit", "external(x) => 0;");
4928 ParserTestCase.parse4("parseCompilationUnit", "factory(x) => 0;", []); 4926 ParserTestCase.parse4("parseCompilationUnit", "factory(x) => 0;");
4929 ParserTestCase.parse4("parseCompilationUnit", "get(x) => 0;", []); 4927 ParserTestCase.parse4("parseCompilationUnit", "get(x) => 0;");
4930 ParserTestCase.parse4("parseCompilationUnit", "implements(x) => 0;", []); 4928 ParserTestCase.parse4("parseCompilationUnit", "implements(x) => 0;");
4931 ParserTestCase.parse4("parseCompilationUnit", "import(x) => 0;", []); 4929 ParserTestCase.parse4("parseCompilationUnit", "import(x) => 0;");
4932 ParserTestCase.parse4("parseCompilationUnit", "library(x) => 0;", []); 4930 ParserTestCase.parse4("parseCompilationUnit", "library(x) => 0;");
4933 ParserTestCase.parse4("parseCompilationUnit", "operator(x) => 0;", []); 4931 ParserTestCase.parse4("parseCompilationUnit", "operator(x) => 0;");
4934 ParserTestCase.parse4("parseCompilationUnit", "part(x) => 0;", []); 4932 ParserTestCase.parse4("parseCompilationUnit", "part(x) => 0;");
4935 ParserTestCase.parse4("parseCompilationUnit", "set(x) => 0;", []); 4933 ParserTestCase.parse4("parseCompilationUnit", "set(x) => 0;");
4936 ParserTestCase.parse4("parseCompilationUnit", "static(x) => 0;", []); 4934 ParserTestCase.parse4("parseCompilationUnit", "static(x) => 0;");
4937 ParserTestCase.parse4("parseCompilationUnit", "typedef(x) => 0;", []); 4935 ParserTestCase.parse4("parseCompilationUnit", "typedef(x) => 0;");
4938 } 4936 }
4939 4937
4940 void test_parseCompilationUnit_directives_multiple() { 4938 void test_parseCompilationUnit_directives_multiple() {
4941 CompilationUnit unit = ParserTestCase.parse4("parseCompilationUnit", "librar y l;\npart 'a.dart';", []); 4939 CompilationUnit unit = ParserTestCase.parse4("parseCompilationUnit", "librar y l;\npart 'a.dart';");
4942 expect(unit.scriptTag, isNull); 4940 expect(unit.scriptTag, isNull);
4943 expect(unit.directives, hasLength(2)); 4941 expect(unit.directives, hasLength(2));
4944 expect(unit.declarations, hasLength(0)); 4942 expect(unit.declarations, hasLength(0));
4945 } 4943 }
4946 4944
4947 void test_parseCompilationUnit_directives_single() { 4945 void test_parseCompilationUnit_directives_single() {
4948 CompilationUnit unit = ParserTestCase.parse4("parseCompilationUnit", "librar y l;", []); 4946 CompilationUnit unit = ParserTestCase.parse4("parseCompilationUnit", "librar y l;");
4949 expect(unit.scriptTag, isNull); 4947 expect(unit.scriptTag, isNull);
4950 expect(unit.directives, hasLength(1)); 4948 expect(unit.directives, hasLength(1));
4951 expect(unit.declarations, hasLength(0)); 4949 expect(unit.declarations, hasLength(0));
4952 } 4950 }
4953 4951
4954 void test_parseCompilationUnit_empty() { 4952 void test_parseCompilationUnit_empty() {
4955 CompilationUnit unit = ParserTestCase.parse4("parseCompilationUnit", "", []) ; 4953 CompilationUnit unit = ParserTestCase.parse4("parseCompilationUnit", "");
4956 expect(unit.scriptTag, isNull); 4954 expect(unit.scriptTag, isNull);
4957 expect(unit.directives, hasLength(0)); 4955 expect(unit.directives, hasLength(0));
4958 expect(unit.declarations, hasLength(0)); 4956 expect(unit.declarations, hasLength(0));
4959 } 4957 }
4960 4958
4961 void test_parseCompilationUnit_exportAsPrefix() { 4959 void test_parseCompilationUnit_exportAsPrefix() {
4962 CompilationUnit unit = ParserTestCase.parse4("parseCompilationUnit", "export .A _export = new export.A();", []); 4960 CompilationUnit unit = ParserTestCase.parse4("parseCompilationUnit", "export .A _export = new export.A();");
4963 expect(unit.scriptTag, isNull); 4961 expect(unit.scriptTag, isNull);
4964 expect(unit.directives, hasLength(0)); 4962 expect(unit.directives, hasLength(0));
4965 expect(unit.declarations, hasLength(1)); 4963 expect(unit.declarations, hasLength(1));
4966 } 4964 }
4967 4965
4968 void test_parseCompilationUnit_exportAsPrefix_parameterized() { 4966 void test_parseCompilationUnit_exportAsPrefix_parameterized() {
4969 CompilationUnit unit = ParserTestCase.parse4("parseCompilationUnit", "export <dynamic> _export = new export.A();", []); 4967 CompilationUnit unit = ParserTestCase.parse4("parseCompilationUnit", "export <dynamic> _export = new export.A();");
4970 expect(unit.scriptTag, isNull); 4968 expect(unit.scriptTag, isNull);
4971 expect(unit.directives, hasLength(0)); 4969 expect(unit.directives, hasLength(0));
4972 expect(unit.declarations, hasLength(1)); 4970 expect(unit.declarations, hasLength(1));
4973 } 4971 }
4974 4972
4975 void test_parseCompilationUnit_operatorAsPrefix_parameterized() { 4973 void test_parseCompilationUnit_operatorAsPrefix_parameterized() {
4976 CompilationUnit unit = ParserTestCase.parse4("parseCompilationUnit", "operat or<dynamic> _operator = new operator.A();", []); 4974 CompilationUnit unit = ParserTestCase.parse4("parseCompilationUnit", "operat or<dynamic> _operator = new operator.A();");
4977 expect(unit.scriptTag, isNull); 4975 expect(unit.scriptTag, isNull);
4978 expect(unit.directives, hasLength(0)); 4976 expect(unit.directives, hasLength(0));
4979 expect(unit.declarations, hasLength(1)); 4977 expect(unit.declarations, hasLength(1));
4980 } 4978 }
4981 4979
4982 void test_parseCompilationUnit_script() { 4980 void test_parseCompilationUnit_script() {
4983 CompilationUnit unit = ParserTestCase.parse4("parseCompilationUnit", "#! /bi n/dart", []); 4981 CompilationUnit unit = ParserTestCase.parse4("parseCompilationUnit", "#! /bi n/dart");
4984 expect(unit.scriptTag, isNotNull); 4982 expect(unit.scriptTag, isNotNull);
4985 expect(unit.directives, hasLength(0)); 4983 expect(unit.directives, hasLength(0));
4986 expect(unit.declarations, hasLength(0)); 4984 expect(unit.declarations, hasLength(0));
4987 } 4985 }
4988 4986
4989 void test_parseCompilationUnit_skipFunctionBody_withInterpolation() { 4987 void test_parseCompilationUnit_skipFunctionBody_withInterpolation() {
4990 ParserTestCase.parseFunctionBodies = false; 4988 ParserTestCase.parseFunctionBodies = false;
4991 CompilationUnit unit = ParserTestCase.parse4("parseCompilationUnit", "f() { '\${n}'; }", []); 4989 CompilationUnit unit = ParserTestCase.parse4("parseCompilationUnit", "f() { '\${n}'; }");
4992 expect(unit.scriptTag, isNull); 4990 expect(unit.scriptTag, isNull);
4993 expect(unit.declarations, hasLength(1)); 4991 expect(unit.declarations, hasLength(1));
4994 } 4992 }
4995 4993
4996 void test_parseCompilationUnit_topLevelDeclaration() { 4994 void test_parseCompilationUnit_topLevelDeclaration() {
4997 CompilationUnit unit = ParserTestCase.parse4("parseCompilationUnit", "class A {}", []); 4995 CompilationUnit unit = ParserTestCase.parse4("parseCompilationUnit", "class A {}");
4998 expect(unit.scriptTag, isNull); 4996 expect(unit.scriptTag, isNull);
4999 expect(unit.directives, hasLength(0)); 4997 expect(unit.directives, hasLength(0));
5000 expect(unit.declarations, hasLength(1)); 4998 expect(unit.declarations, hasLength(1));
5001 } 4999 }
5002 5000
5003 void test_parseCompilationUnit_typedefAsPrefix() { 5001 void test_parseCompilationUnit_typedefAsPrefix() {
5004 CompilationUnit unit = ParserTestCase.parse4("parseCompilationUnit", "typede f.A _typedef = new typedef.A();", []); 5002 CompilationUnit unit = ParserTestCase.parse4("parseCompilationUnit", "typede f.A _typedef = new typedef.A();");
5005 expect(unit.scriptTag, isNull); 5003 expect(unit.scriptTag, isNull);
5006 expect(unit.directives, hasLength(0)); 5004 expect(unit.directives, hasLength(0));
5007 expect(unit.declarations, hasLength(1)); 5005 expect(unit.declarations, hasLength(1));
5008 } 5006 }
5009 5007
5010 void test_parseCompilationUnitMember_abstractAsPrefix() { 5008 void test_parseCompilationUnitMember_abstractAsPrefix() {
5011 TopLevelVariableDeclaration declaration = ParserTestCase.parse("parseCompila tionUnitMember", <Object> [emptyCommentAndMetadata()], "abstract.A _abstract = n ew abstract.A();"); 5009 TopLevelVariableDeclaration declaration = ParserTestCase.parse("parseCompila tionUnitMember", <Object> [emptyCommentAndMetadata()], "abstract.A _abstract = n ew abstract.A();");
5012 expect(declaration.semicolon, isNotNull); 5010 expect(declaration.semicolon, isNotNull);
5013 expect(declaration.variables, isNotNull); 5011 expect(declaration.variables, isNotNull);
5014 } 5012 }
(...skipping 176 matching lines...) Expand 10 before | Expand all | Expand 10 after
5191 expect(declaration.variables, isNotNull); 5189 expect(declaration.variables, isNotNull);
5192 } 5190 }
5193 5191
5194 void test_parseCompilationUnitMember_variableSet() { 5192 void test_parseCompilationUnitMember_variableSet() {
5195 TopLevelVariableDeclaration declaration = ParserTestCase.parse("parseCompila tionUnitMember", <Object> [emptyCommentAndMetadata()], "String set = null;"); 5193 TopLevelVariableDeclaration declaration = ParserTestCase.parse("parseCompila tionUnitMember", <Object> [emptyCommentAndMetadata()], "String set = null;");
5196 expect(declaration.semicolon, isNotNull); 5194 expect(declaration.semicolon, isNotNull);
5197 expect(declaration.variables, isNotNull); 5195 expect(declaration.variables, isNotNull);
5198 } 5196 }
5199 5197
5200 void test_parseConditionalExpression() { 5198 void test_parseConditionalExpression() {
5201 ConditionalExpression expression = ParserTestCase.parse4("parseConditionalEx pression", "x ? y : z", []); 5199 ConditionalExpression expression = ParserTestCase.parse4("parseConditionalEx pression", "x ? y : z");
5202 expect(expression.condition, isNotNull); 5200 expect(expression.condition, isNotNull);
5203 expect(expression.question, isNotNull); 5201 expect(expression.question, isNotNull);
5204 expect(expression.thenExpression, isNotNull); 5202 expect(expression.thenExpression, isNotNull);
5205 expect(expression.colon, isNotNull); 5203 expect(expression.colon, isNotNull);
5206 expect(expression.elseExpression, isNotNull); 5204 expect(expression.elseExpression, isNotNull);
5207 } 5205 }
5208 5206
5209 void test_parseConstExpression_instanceCreation() { 5207 void test_parseConstExpression_instanceCreation() {
5210 InstanceCreationExpression expression = ParserTestCase.parse4("parseConstExp ression", "const A()", []); 5208 InstanceCreationExpression expression = ParserTestCase.parse4("parseConstExp ression", "const A()");
5211 expect(expression.keyword, isNotNull); 5209 expect(expression.keyword, isNotNull);
5212 ConstructorName name = expression.constructorName; 5210 ConstructorName name = expression.constructorName;
5213 expect(name, isNotNull); 5211 expect(name, isNotNull);
5214 expect(name.type, isNotNull); 5212 expect(name.type, isNotNull);
5215 expect(name.period, isNull); 5213 expect(name.period, isNull);
5216 expect(name.name, isNull); 5214 expect(name.name, isNull);
5217 expect(expression.argumentList, isNotNull); 5215 expect(expression.argumentList, isNotNull);
5218 } 5216 }
5219 5217
5220 void test_parseConstExpression_listLiteral_typed() { 5218 void test_parseConstExpression_listLiteral_typed() {
5221 ListLiteral literal = ParserTestCase.parse4("parseConstExpression", "const < A> []", []); 5219 ListLiteral literal = ParserTestCase.parse4("parseConstExpression", "const < A> []");
5222 expect(literal.constKeyword, isNotNull); 5220 expect(literal.constKeyword, isNotNull);
5223 expect(literal.typeArguments, isNotNull); 5221 expect(literal.typeArguments, isNotNull);
5224 expect(literal.leftBracket, isNotNull); 5222 expect(literal.leftBracket, isNotNull);
5225 expect(literal.elements, hasLength(0)); 5223 expect(literal.elements, hasLength(0));
5226 expect(literal.rightBracket, isNotNull); 5224 expect(literal.rightBracket, isNotNull);
5227 } 5225 }
5228 5226
5229 void test_parseConstExpression_listLiteral_untyped() { 5227 void test_parseConstExpression_listLiteral_untyped() {
5230 ListLiteral literal = ParserTestCase.parse4("parseConstExpression", "const [ ]", []); 5228 ListLiteral literal = ParserTestCase.parse4("parseConstExpression", "const [ ]");
5231 expect(literal.constKeyword, isNotNull); 5229 expect(literal.constKeyword, isNotNull);
5232 expect(literal.typeArguments, isNull); 5230 expect(literal.typeArguments, isNull);
5233 expect(literal.leftBracket, isNotNull); 5231 expect(literal.leftBracket, isNotNull);
5234 expect(literal.elements, hasLength(0)); 5232 expect(literal.elements, hasLength(0));
5235 expect(literal.rightBracket, isNotNull); 5233 expect(literal.rightBracket, isNotNull);
5236 } 5234 }
5237 5235
5238 void test_parseConstExpression_mapLiteral_typed() { 5236 void test_parseConstExpression_mapLiteral_typed() {
5239 MapLiteral literal = ParserTestCase.parse4("parseConstExpression", "const <A , B> {}", []); 5237 MapLiteral literal = ParserTestCase.parse4("parseConstExpression", "const <A , B> {}");
5240 expect(literal.leftBracket, isNotNull); 5238 expect(literal.leftBracket, isNotNull);
5241 expect(literal.entries, hasLength(0)); 5239 expect(literal.entries, hasLength(0));
5242 expect(literal.rightBracket, isNotNull); 5240 expect(literal.rightBracket, isNotNull);
5243 expect(literal.typeArguments, isNotNull); 5241 expect(literal.typeArguments, isNotNull);
5244 } 5242 }
5245 5243
5246 void test_parseConstExpression_mapLiteral_untyped() { 5244 void test_parseConstExpression_mapLiteral_untyped() {
5247 MapLiteral literal = ParserTestCase.parse4("parseConstExpression", "const {} ", []); 5245 MapLiteral literal = ParserTestCase.parse4("parseConstExpression", "const {} ");
5248 expect(literal.leftBracket, isNotNull); 5246 expect(literal.leftBracket, isNotNull);
5249 expect(literal.entries, hasLength(0)); 5247 expect(literal.entries, hasLength(0));
5250 expect(literal.rightBracket, isNotNull); 5248 expect(literal.rightBracket, isNotNull);
5251 expect(literal.typeArguments, isNull); 5249 expect(literal.typeArguments, isNull);
5252 } 5250 }
5253 5251
5254 void test_parseConstructor() { 5252 void test_parseConstructor() {
5255 // TODO(brianwilkerson) Implement tests for this method. 5253 // TODO(brianwilkerson) Implement tests for this method.
5256 // parse("parseConstructor", new Class[] {Parser.CommentAndMetadata.class , 5254 // parse("parseConstructor", new Class[] {Parser.CommentAndMetadata.class ,
5257 // Token.class, Token.class, SimpleIdentifier.class, Token.class, 5255 // Token.class, Token.class, SimpleIdentifier.class, Token.class,
5258 // SimpleIdentifier.class, FormalParameterList.class}, new Object[] { emptyCommentAndMetadata(), 5256 // SimpleIdentifier.class, FormalParameterList.class}, new Object[] { emptyCommentAndMetadata(),
5259 // null, null, null, null, null, null}, ""); 5257 // null, null, null, null, null, null}, "");
5260 } 5258 }
5261 5259
5262 void test_parseConstructor_with_pseudo_function_literal() { 5260 void test_parseConstructor_with_pseudo_function_literal() {
5263 // "(b) {}" should not be misinterpreted as a function literal even though i t looks like one. 5261 // "(b) {}" should not be misinterpreted as a function literal even though i t looks like one.
5264 ClassMember classMember = ParserTestCase.parse("parseClassMember", <Object> ["C"], "C() : a = (b) {}"); 5262 ClassMember classMember = ParserTestCase.parse("parseClassMember", <Object> ["C"], "C() : a = (b) {}");
5265 EngineTestCase.assertInstanceOf((obj) => obj is ConstructorDeclaration, Cons tructorDeclaration, classMember); 5263 EngineTestCase.assertInstanceOf((obj) => obj is ConstructorDeclaration, Cons tructorDeclaration, classMember);
5266 ConstructorDeclaration constructor = classMember as ConstructorDeclaration; 5264 ConstructorDeclaration constructor = classMember as ConstructorDeclaration;
5267 NodeList<ConstructorInitializer> initializers = constructor.initializers; 5265 NodeList<ConstructorInitializer> initializers = constructor.initializers;
5268 expect(initializers, hasLength(1)); 5266 expect(initializers, hasLength(1));
5269 ConstructorInitializer initializer = initializers[0]; 5267 ConstructorInitializer initializer = initializers[0];
5270 EngineTestCase.assertInstanceOf((obj) => obj is ConstructorFieldInitializer, ConstructorFieldInitializer, initializer); 5268 EngineTestCase.assertInstanceOf((obj) => obj is ConstructorFieldInitializer, ConstructorFieldInitializer, initializer);
5271 EngineTestCase.assertInstanceOf((obj) => obj is ParenthesizedExpression, Par enthesizedExpression, (initializer as ConstructorFieldInitializer).expression); 5269 EngineTestCase.assertInstanceOf((obj) => obj is ParenthesizedExpression, Par enthesizedExpression, (initializer as ConstructorFieldInitializer).expression);
5272 EngineTestCase.assertInstanceOf((obj) => obj is BlockFunctionBody, BlockFunc tionBody, constructor.body); 5270 EngineTestCase.assertInstanceOf((obj) => obj is BlockFunctionBody, BlockFunc tionBody, constructor.body);
5273 } 5271 }
5274 5272
5275 void test_parseConstructorFieldInitializer_qualified() { 5273 void test_parseConstructorFieldInitializer_qualified() {
5276 ConstructorFieldInitializer invocation = ParserTestCase.parse4("parseConstru ctorFieldInitializer", "this.a = b", []); 5274 ConstructorFieldInitializer invocation = ParserTestCase.parse4("parseConstru ctorFieldInitializer", "this.a = b");
5277 expect(invocation.equals, isNotNull); 5275 expect(invocation.equals, isNotNull);
5278 expect(invocation.expression, isNotNull); 5276 expect(invocation.expression, isNotNull);
5279 expect(invocation.fieldName, isNotNull); 5277 expect(invocation.fieldName, isNotNull);
5280 expect(invocation.keyword, isNotNull); 5278 expect(invocation.keyword, isNotNull);
5281 expect(invocation.period, isNotNull); 5279 expect(invocation.period, isNotNull);
5282 } 5280 }
5283 5281
5284 void test_parseConstructorFieldInitializer_unqualified() { 5282 void test_parseConstructorFieldInitializer_unqualified() {
5285 ConstructorFieldInitializer invocation = ParserTestCase.parse4("parseConstru ctorFieldInitializer", "a = b", []); 5283 ConstructorFieldInitializer invocation = ParserTestCase.parse4("parseConstru ctorFieldInitializer", "a = b");
5286 expect(invocation.equals, isNotNull); 5284 expect(invocation.equals, isNotNull);
5287 expect(invocation.expression, isNotNull); 5285 expect(invocation.expression, isNotNull);
5288 expect(invocation.fieldName, isNotNull); 5286 expect(invocation.fieldName, isNotNull);
5289 expect(invocation.keyword, isNull); 5287 expect(invocation.keyword, isNull);
5290 expect(invocation.period, isNull); 5288 expect(invocation.period, isNull);
5291 } 5289 }
5292 5290
5293 void test_parseConstructorName_named_noPrefix() { 5291 void test_parseConstructorName_named_noPrefix() {
5294 ConstructorName name = ParserTestCase.parse4("parseConstructorName", "A.n;", []); 5292 ConstructorName name = ParserTestCase.parse4("parseConstructorName", "A.n;") ;
5295 expect(name.type, isNotNull); 5293 expect(name.type, isNotNull);
5296 expect(name.period, isNull); 5294 expect(name.period, isNull);
5297 expect(name.name, isNull); 5295 expect(name.name, isNull);
5298 } 5296 }
5299 5297
5300 void test_parseConstructorName_named_prefixed() { 5298 void test_parseConstructorName_named_prefixed() {
5301 ConstructorName name = ParserTestCase.parse4("parseConstructorName", "p.A.n; ", []); 5299 ConstructorName name = ParserTestCase.parse4("parseConstructorName", "p.A.n; ");
5302 expect(name.type, isNotNull); 5300 expect(name.type, isNotNull);
5303 expect(name.period, isNotNull); 5301 expect(name.period, isNotNull);
5304 expect(name.name, isNotNull); 5302 expect(name.name, isNotNull);
5305 } 5303 }
5306 5304
5307 void test_parseConstructorName_unnamed_noPrefix() { 5305 void test_parseConstructorName_unnamed_noPrefix() {
5308 ConstructorName name = ParserTestCase.parse4("parseConstructorName", "A;", [ ]); 5306 ConstructorName name = ParserTestCase.parse4("parseConstructorName", "A;");
5309 expect(name.type, isNotNull); 5307 expect(name.type, isNotNull);
5310 expect(name.period, isNull); 5308 expect(name.period, isNull);
5311 expect(name.name, isNull); 5309 expect(name.name, isNull);
5312 } 5310 }
5313 5311
5314 void test_parseConstructorName_unnamed_prefixed() { 5312 void test_parseConstructorName_unnamed_prefixed() {
5315 ConstructorName name = ParserTestCase.parse4("parseConstructorName", "p.A;", []); 5313 ConstructorName name = ParserTestCase.parse4("parseConstructorName", "p.A;") ;
5316 expect(name.type, isNotNull); 5314 expect(name.type, isNotNull);
5317 expect(name.period, isNull); 5315 expect(name.period, isNull);
5318 expect(name.name, isNull); 5316 expect(name.name, isNull);
5319 } 5317 }
5320 5318
5321 void test_parseContinueStatement_label() { 5319 void test_parseContinueStatement_label() {
5322 ContinueStatement statement = ParserTestCase.parse4("parseContinueStatement" , "continue foo;", [ParserErrorCode.CONTINUE_OUTSIDE_OF_LOOP]); 5320 ContinueStatement statement = ParserTestCase.parse4("parseContinueStatement" , "continue foo;", [ParserErrorCode.CONTINUE_OUTSIDE_OF_LOOP]);
5323 expect(statement.keyword, isNotNull); 5321 expect(statement.keyword, isNotNull);
5324 expect(statement.label, isNotNull); 5322 expect(statement.label, isNotNull);
5325 expect(statement.semicolon, isNotNull); 5323 expect(statement.semicolon, isNotNull);
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
5366 5364
5367 void test_parseDirective_partOf() { 5365 void test_parseDirective_partOf() {
5368 PartOfDirective directive = ParserTestCase.parse("parseDirective", <Object> [emptyCommentAndMetadata()], "part of l;"); 5366 PartOfDirective directive = ParserTestCase.parse("parseDirective", <Object> [emptyCommentAndMetadata()], "part of l;");
5369 expect(directive.partToken, isNotNull); 5367 expect(directive.partToken, isNotNull);
5370 expect(directive.ofToken, isNotNull); 5368 expect(directive.ofToken, isNotNull);
5371 expect(directive.libraryName, isNotNull); 5369 expect(directive.libraryName, isNotNull);
5372 expect(directive.semicolon, isNotNull); 5370 expect(directive.semicolon, isNotNull);
5373 } 5371 }
5374 5372
5375 void test_parseDirectives_complete() { 5373 void test_parseDirectives_complete() {
5376 CompilationUnit unit = _parseDirectives("#! /bin/dart\nlibrary l;\nclass A { }", []); 5374 CompilationUnit unit = _parseDirectives("#! /bin/dart\nlibrary l;\nclass A { }");
5377 expect(unit.scriptTag, isNotNull); 5375 expect(unit.scriptTag, isNotNull);
5378 expect(unit.directives, hasLength(1)); 5376 expect(unit.directives, hasLength(1));
5379 } 5377 }
5380 5378
5381 void test_parseDirectives_empty() { 5379 void test_parseDirectives_empty() {
5382 CompilationUnit unit = _parseDirectives("", []); 5380 CompilationUnit unit = _parseDirectives("");
5383 expect(unit.scriptTag, isNull); 5381 expect(unit.scriptTag, isNull);
5384 expect(unit.directives, hasLength(0)); 5382 expect(unit.directives, hasLength(0));
5385 } 5383 }
5386 5384
5387 void test_parseDirectives_mixed() { 5385 void test_parseDirectives_mixed() {
5388 CompilationUnit unit = _parseDirectives("library l; class A {} part 'foo.dar t';", []); 5386 CompilationUnit unit = _parseDirectives("library l; class A {} part 'foo.dar t';");
5389 expect(unit.scriptTag, isNull); 5387 expect(unit.scriptTag, isNull);
5390 expect(unit.directives, hasLength(1)); 5388 expect(unit.directives, hasLength(1));
5391 } 5389 }
5392 5390
5393 void test_parseDirectives_multiple() { 5391 void test_parseDirectives_multiple() {
5394 CompilationUnit unit = _parseDirectives("library l;\npart 'a.dart';", []); 5392 CompilationUnit unit = _parseDirectives("library l;\npart 'a.dart';");
5395 expect(unit.scriptTag, isNull); 5393 expect(unit.scriptTag, isNull);
5396 expect(unit.directives, hasLength(2)); 5394 expect(unit.directives, hasLength(2));
5397 } 5395 }
5398 5396
5399 void test_parseDirectives_script() { 5397 void test_parseDirectives_script() {
5400 CompilationUnit unit = _parseDirectives("#! /bin/dart", []); 5398 CompilationUnit unit = _parseDirectives("#! /bin/dart");
5401 expect(unit.scriptTag, isNotNull); 5399 expect(unit.scriptTag, isNotNull);
5402 expect(unit.directives, hasLength(0)); 5400 expect(unit.directives, hasLength(0));
5403 } 5401 }
5404 5402
5405 void test_parseDirectives_single() { 5403 void test_parseDirectives_single() {
5406 CompilationUnit unit = _parseDirectives("library l;", []); 5404 CompilationUnit unit = _parseDirectives("library l;");
5407 expect(unit.scriptTag, isNull); 5405 expect(unit.scriptTag, isNull);
5408 expect(unit.directives, hasLength(1)); 5406 expect(unit.directives, hasLength(1));
5409 } 5407 }
5410 5408
5411 void test_parseDirectives_topLevelDeclaration() { 5409 void test_parseDirectives_topLevelDeclaration() {
5412 CompilationUnit unit = _parseDirectives("class A {}", []); 5410 CompilationUnit unit = _parseDirectives("class A {}");
5413 expect(unit.scriptTag, isNull); 5411 expect(unit.scriptTag, isNull);
5414 expect(unit.directives, hasLength(0)); 5412 expect(unit.directives, hasLength(0));
5415 } 5413 }
5416 5414
5417 void test_parseDocumentationComment_block() { 5415 void test_parseDocumentationComment_block() {
5418 Comment comment = ParserTestCase.parse4("parseDocumentationComment", "/** */ class", []); 5416 Comment comment = ParserTestCase.parse4("parseDocumentationComment", "/** */ class");
5419 expect(comment.isBlock, isFalse); 5417 expect(comment.isBlock, isFalse);
5420 expect(comment.isDocumentation, isTrue); 5418 expect(comment.isDocumentation, isTrue);
5421 expect(comment.isEndOfLine, isFalse); 5419 expect(comment.isEndOfLine, isFalse);
5422 } 5420 }
5423 5421
5424 void test_parseDocumentationComment_block_withReference() { 5422 void test_parseDocumentationComment_block_withReference() {
5425 Comment comment = ParserTestCase.parse4("parseDocumentationComment", "/** [a ] */ class", []); 5423 Comment comment = ParserTestCase.parse4("parseDocumentationComment", "/** [a ] */ class");
5426 expect(comment.isBlock, isFalse); 5424 expect(comment.isBlock, isFalse);
5427 expect(comment.isDocumentation, isTrue); 5425 expect(comment.isDocumentation, isTrue);
5428 expect(comment.isEndOfLine, isFalse); 5426 expect(comment.isEndOfLine, isFalse);
5429 NodeList<CommentReference> references = comment.references; 5427 NodeList<CommentReference> references = comment.references;
5430 expect(references, hasLength(1)); 5428 expect(references, hasLength(1));
5431 CommentReference reference = references[0]; 5429 CommentReference reference = references[0];
5432 expect(reference, isNotNull); 5430 expect(reference, isNotNull);
5433 expect(reference.offset, 5); 5431 expect(reference.offset, 5);
5434 } 5432 }
5435 5433
5436 void test_parseDocumentationComment_endOfLine() { 5434 void test_parseDocumentationComment_endOfLine() {
5437 Comment comment = ParserTestCase.parse4("parseDocumentationComment", "/// \n /// \n class", []); 5435 Comment comment = ParserTestCase.parse4("parseDocumentationComment", "/// \n /// \n class");
5438 expect(comment.isBlock, isFalse); 5436 expect(comment.isBlock, isFalse);
5439 expect(comment.isDocumentation, isTrue); 5437 expect(comment.isDocumentation, isTrue);
5440 expect(comment.isEndOfLine, isFalse); 5438 expect(comment.isEndOfLine, isFalse);
5441 } 5439 }
5442 5440
5443 void test_parseDoStatement() { 5441 void test_parseDoStatement() {
5444 DoStatement statement = ParserTestCase.parse4("parseDoStatement", "do {} whi le (x);", []); 5442 DoStatement statement = ParserTestCase.parse4("parseDoStatement", "do {} whi le (x);");
5445 expect(statement.doKeyword, isNotNull); 5443 expect(statement.doKeyword, isNotNull);
5446 expect(statement.body, isNotNull); 5444 expect(statement.body, isNotNull);
5447 expect(statement.whileKeyword, isNotNull); 5445 expect(statement.whileKeyword, isNotNull);
5448 expect(statement.leftParenthesis, isNotNull); 5446 expect(statement.leftParenthesis, isNotNull);
5449 expect(statement.condition, isNotNull); 5447 expect(statement.condition, isNotNull);
5450 expect(statement.rightParenthesis, isNotNull); 5448 expect(statement.rightParenthesis, isNotNull);
5451 expect(statement.semicolon, isNotNull); 5449 expect(statement.semicolon, isNotNull);
5452 } 5450 }
5453 5451
5454 void test_parseEmptyStatement() { 5452 void test_parseEmptyStatement() {
5455 EmptyStatement statement = ParserTestCase.parse4("parseEmptyStatement", ";", []); 5453 EmptyStatement statement = ParserTestCase.parse4("parseEmptyStatement", ";") ;
5456 expect(statement.semicolon, isNotNull); 5454 expect(statement.semicolon, isNotNull);
5457 } 5455 }
5458 5456
5459 void test_parseEnumDeclaration_one() { 5457 void test_parseEnumDeclaration_one() {
5460 EnumDeclaration declaration = ParserTestCase.parse("parseEnumDeclaration", < Object> [emptyCommentAndMetadata()], "enum E {ONE}"); 5458 EnumDeclaration declaration = ParserTestCase.parse("parseEnumDeclaration", < Object> [emptyCommentAndMetadata()], "enum E {ONE}");
5461 expect(declaration.documentationComment, isNull); 5459 expect(declaration.documentationComment, isNull);
5462 expect(declaration.keyword, isNotNull); 5460 expect(declaration.keyword, isNotNull);
5463 expect(declaration.leftBracket, isNotNull); 5461 expect(declaration.leftBracket, isNotNull);
5464 expect(declaration.name, isNotNull); 5462 expect(declaration.name, isNotNull);
5465 expect(declaration.constants, hasLength(1)); 5463 expect(declaration.constants, hasLength(1));
(...skipping 14 matching lines...) Expand all
5480 EnumDeclaration declaration = ParserTestCase.parse("parseEnumDeclaration", < Object> [emptyCommentAndMetadata()], "enum E {ONE, TWO}"); 5478 EnumDeclaration declaration = ParserTestCase.parse("parseEnumDeclaration", < Object> [emptyCommentAndMetadata()], "enum E {ONE, TWO}");
5481 expect(declaration.documentationComment, isNull); 5479 expect(declaration.documentationComment, isNull);
5482 expect(declaration.keyword, isNotNull); 5480 expect(declaration.keyword, isNotNull);
5483 expect(declaration.leftBracket, isNotNull); 5481 expect(declaration.leftBracket, isNotNull);
5484 expect(declaration.name, isNotNull); 5482 expect(declaration.name, isNotNull);
5485 expect(declaration.constants, hasLength(2)); 5483 expect(declaration.constants, hasLength(2));
5486 expect(declaration.rightBracket, isNotNull); 5484 expect(declaration.rightBracket, isNotNull);
5487 } 5485 }
5488 5486
5489 void test_parseEqualityExpression_normal() { 5487 void test_parseEqualityExpression_normal() {
5490 BinaryExpression expression = ParserTestCase.parse4("parseEqualityExpression ", "x == y", []); 5488 BinaryExpression expression = ParserTestCase.parse4("parseEqualityExpression ", "x == y");
5491 expect(expression.leftOperand, isNotNull); 5489 expect(expression.leftOperand, isNotNull);
5492 expect(expression.operator, isNotNull); 5490 expect(expression.operator, isNotNull);
5493 expect(expression.operator.type, TokenType.EQ_EQ); 5491 expect(expression.operator.type, TokenType.EQ_EQ);
5494 expect(expression.rightOperand, isNotNull); 5492 expect(expression.rightOperand, isNotNull);
5495 } 5493 }
5496 5494
5497 void test_parseEqualityExpression_super() { 5495 void test_parseEqualityExpression_super() {
5498 BinaryExpression expression = ParserTestCase.parse4("parseEqualityExpression ", "super == y", []); 5496 BinaryExpression expression = ParserTestCase.parse4("parseEqualityExpression ", "super == y");
5499 EngineTestCase.assertInstanceOf((obj) => obj is SuperExpression, SuperExpres sion, expression.leftOperand); 5497 EngineTestCase.assertInstanceOf((obj) => obj is SuperExpression, SuperExpres sion, expression.leftOperand);
5500 expect(expression.operator, isNotNull); 5498 expect(expression.operator, isNotNull);
5501 expect(expression.operator.type, TokenType.EQ_EQ); 5499 expect(expression.operator.type, TokenType.EQ_EQ);
5502 expect(expression.rightOperand, isNotNull); 5500 expect(expression.rightOperand, isNotNull);
5503 } 5501 }
5504 5502
5505 void test_parseExportDirective_hide() { 5503 void test_parseExportDirective_hide() {
5506 ExportDirective directive = ParserTestCase.parse("parseExportDirective", <Ob ject> [emptyCommentAndMetadata()], "export 'lib/lib.dart' hide A, B;"); 5504 ExportDirective directive = ParserTestCase.parse("parseExportDirective", <Ob ject> [emptyCommentAndMetadata()], "export 'lib/lib.dart' hide A, B;");
5507 expect(directive.keyword, isNotNull); 5505 expect(directive.keyword, isNotNull);
5508 expect(directive.uri, isNotNull); 5506 expect(directive.uri, isNotNull);
(...skipping 28 matching lines...) Expand all
5537 void test_parseExportDirective_show_hide() { 5535 void test_parseExportDirective_show_hide() {
5538 ExportDirective directive = ParserTestCase.parse("parseExportDirective", <Ob ject> [emptyCommentAndMetadata()], "export 'lib/lib.dart' show B hide A;"); 5536 ExportDirective directive = ParserTestCase.parse("parseExportDirective", <Ob ject> [emptyCommentAndMetadata()], "export 'lib/lib.dart' show B hide A;");
5539 expect(directive.keyword, isNotNull); 5537 expect(directive.keyword, isNotNull);
5540 expect(directive.uri, isNotNull); 5538 expect(directive.uri, isNotNull);
5541 expect(directive.combinators, hasLength(2)); 5539 expect(directive.combinators, hasLength(2));
5542 expect(directive.semicolon, isNotNull); 5540 expect(directive.semicolon, isNotNull);
5543 } 5541 }
5544 5542
5545 void test_parseExpression_assign() { 5543 void test_parseExpression_assign() {
5546 // TODO(brianwilkerson) Implement more tests for this method. 5544 // TODO(brianwilkerson) Implement more tests for this method.
5547 AssignmentExpression expression = ParserTestCase.parse4("parseExpression", " x = y", []); 5545 AssignmentExpression expression = ParserTestCase.parse4("parseExpression", " x = y");
5548 expect(expression.leftHandSide, isNotNull); 5546 expect(expression.leftHandSide, isNotNull);
5549 expect(expression.operator, isNotNull); 5547 expect(expression.operator, isNotNull);
5550 expect(expression.operator.type, TokenType.EQ); 5548 expect(expression.operator.type, TokenType.EQ);
5551 expect(expression.rightHandSide, isNotNull); 5549 expect(expression.rightHandSide, isNotNull);
5552 } 5550 }
5553 5551
5554 void test_parseExpression_comparison() { 5552 void test_parseExpression_comparison() {
5555 BinaryExpression expression = ParserTestCase.parse4("parseExpression", "--a. b == c", []); 5553 BinaryExpression expression = ParserTestCase.parse4("parseExpression", "--a. b == c");
5556 expect(expression.leftOperand, isNotNull); 5554 expect(expression.leftOperand, isNotNull);
5557 expect(expression.operator, isNotNull); 5555 expect(expression.operator, isNotNull);
5558 expect(expression.operator.type, TokenType.EQ_EQ); 5556 expect(expression.operator.type, TokenType.EQ_EQ);
5559 expect(expression.rightOperand, isNotNull); 5557 expect(expression.rightOperand, isNotNull);
5560 } 5558 }
5561 5559
5562 void test_parseExpression_function_async() { 5560 void test_parseExpression_function_async() {
5563 FunctionExpression expression = ParserTestCase.parseExpression("() async {}" , []); 5561 FunctionExpression expression = ParserTestCase.parseExpression("() async {}" );
5564 expect(expression.body, isNotNull); 5562 expect(expression.body, isNotNull);
5565 expect(expression.body.isAsynchronous, isTrue); 5563 expect(expression.body.isAsynchronous, isTrue);
5566 expect(expression.body.isGenerator, isFalse); 5564 expect(expression.body.isGenerator, isFalse);
5567 expect(expression.parameters, isNotNull); 5565 expect(expression.parameters, isNotNull);
5568 } 5566 }
5569 5567
5570 void test_parseExpression_function_asyncStar() { 5568 void test_parseExpression_function_asyncStar() {
5571 FunctionExpression expression = ParserTestCase.parseExpression("() async* {} ", []); 5569 FunctionExpression expression = ParserTestCase.parseExpression("() async* {} ");
5572 expect(expression.body, isNotNull); 5570 expect(expression.body, isNotNull);
5573 expect(expression.body.isAsynchronous, isTrue); 5571 expect(expression.body.isAsynchronous, isTrue);
5574 expect(expression.body.isGenerator, isTrue); 5572 expect(expression.body.isGenerator, isTrue);
5575 expect(expression.parameters, isNotNull); 5573 expect(expression.parameters, isNotNull);
5576 } 5574 }
5577 5575
5578 void test_parseExpression_function_sync() { 5576 void test_parseExpression_function_sync() {
5579 FunctionExpression expression = ParserTestCase.parseExpression("() {}", []); 5577 FunctionExpression expression = ParserTestCase.parseExpression("() {}");
5580 expect(expression.body, isNotNull); 5578 expect(expression.body, isNotNull);
5581 expect(expression.body.isAsynchronous, isFalse); 5579 expect(expression.body.isAsynchronous, isFalse);
5582 expect(expression.body.isGenerator, isFalse); 5580 expect(expression.body.isGenerator, isFalse);
5583 expect(expression.parameters, isNotNull); 5581 expect(expression.parameters, isNotNull);
5584 } 5582 }
5585 5583
5586 void test_parseExpression_function_syncStar() { 5584 void test_parseExpression_function_syncStar() {
5587 FunctionExpression expression = ParserTestCase.parseExpression("() sync* {}" , []); 5585 FunctionExpression expression = ParserTestCase.parseExpression("() sync* {}" );
5588 expect(expression.body, isNotNull); 5586 expect(expression.body, isNotNull);
5589 expect(expression.body.isAsynchronous, isFalse); 5587 expect(expression.body.isAsynchronous, isFalse);
5590 expect(expression.body.isGenerator, isTrue); 5588 expect(expression.body.isGenerator, isTrue);
5591 expect(expression.parameters, isNotNull); 5589 expect(expression.parameters, isNotNull);
5592 } 5590 }
5593 5591
5594 void test_parseExpression_invokeFunctionExpression() { 5592 void test_parseExpression_invokeFunctionExpression() {
5595 FunctionExpressionInvocation invocation = ParserTestCase.parse4("parseExpres sion", "(a) {return a + a;} (3)", []); 5593 FunctionExpressionInvocation invocation = ParserTestCase.parse4("parseExpres sion", "(a) {return a + a;} (3)");
5596 EngineTestCase.assertInstanceOf((obj) => obj is FunctionExpression, Function Expression, invocation.function); 5594 EngineTestCase.assertInstanceOf((obj) => obj is FunctionExpression, Function Expression, invocation.function);
5597 FunctionExpression expression = invocation.function as FunctionExpression; 5595 FunctionExpression expression = invocation.function as FunctionExpression;
5598 expect(expression.parameters, isNotNull); 5596 expect(expression.parameters, isNotNull);
5599 expect(expression.body, isNotNull); 5597 expect(expression.body, isNotNull);
5600 ArgumentList list = invocation.argumentList; 5598 ArgumentList list = invocation.argumentList;
5601 expect(list, isNotNull); 5599 expect(list, isNotNull);
5602 expect(list.arguments, hasLength(1)); 5600 expect(list.arguments, hasLength(1));
5603 } 5601 }
5604 5602
5605 void test_parseExpression_superMethodInvocation() { 5603 void test_parseExpression_superMethodInvocation() {
5606 MethodInvocation invocation = ParserTestCase.parse4("parseExpression", "supe r.m()", []); 5604 MethodInvocation invocation = ParserTestCase.parse4("parseExpression", "supe r.m()");
5607 expect(invocation.target, isNotNull); 5605 expect(invocation.target, isNotNull);
5608 expect(invocation.methodName, isNotNull); 5606 expect(invocation.methodName, isNotNull);
5609 expect(invocation.argumentList, isNotNull); 5607 expect(invocation.argumentList, isNotNull);
5610 } 5608 }
5611 5609
5612 void test_parseExpressionList_multiple() { 5610 void test_parseExpressionList_multiple() {
5613 List<Expression> result = ParserTestCase.parse4("parseExpressionList", "1, 2 , 3", []); 5611 List<Expression> result = ParserTestCase.parse4("parseExpressionList", "1, 2 , 3");
5614 expect(result, hasLength(3)); 5612 expect(result, hasLength(3));
5615 } 5613 }
5616 5614
5617 void test_parseExpressionList_single() { 5615 void test_parseExpressionList_single() {
5618 List<Expression> result = ParserTestCase.parse4("parseExpressionList", "1", []); 5616 List<Expression> result = ParserTestCase.parse4("parseExpressionList", "1");
5619 expect(result, hasLength(1)); 5617 expect(result, hasLength(1));
5620 } 5618 }
5621 5619
5622 void test_parseExpressionWithoutCascade_assign() { 5620 void test_parseExpressionWithoutCascade_assign() {
5623 // TODO(brianwilkerson) Implement more tests for this method. 5621 // TODO(brianwilkerson) Implement more tests for this method.
5624 AssignmentExpression expression = ParserTestCase.parse4("parseExpressionWith outCascade", "x = y", []); 5622 AssignmentExpression expression = ParserTestCase.parse4("parseExpressionWith outCascade", "x = y");
5625 expect(expression.leftHandSide, isNotNull); 5623 expect(expression.leftHandSide, isNotNull);
5626 expect(expression.operator, isNotNull); 5624 expect(expression.operator, isNotNull);
5627 expect(expression.operator.type, TokenType.EQ); 5625 expect(expression.operator.type, TokenType.EQ);
5628 expect(expression.rightHandSide, isNotNull); 5626 expect(expression.rightHandSide, isNotNull);
5629 } 5627 }
5630 5628
5631 void test_parseExpressionWithoutCascade_comparison() { 5629 void test_parseExpressionWithoutCascade_comparison() {
5632 BinaryExpression expression = ParserTestCase.parse4("parseExpressionWithoutC ascade", "--a.b == c", []); 5630 BinaryExpression expression = ParserTestCase.parse4("parseExpressionWithoutC ascade", "--a.b == c");
5633 expect(expression.leftOperand, isNotNull); 5631 expect(expression.leftOperand, isNotNull);
5634 expect(expression.operator, isNotNull); 5632 expect(expression.operator, isNotNull);
5635 expect(expression.operator.type, TokenType.EQ_EQ); 5633 expect(expression.operator.type, TokenType.EQ_EQ);
5636 expect(expression.rightOperand, isNotNull); 5634 expect(expression.rightOperand, isNotNull);
5637 } 5635 }
5638 5636
5639 void test_parseExpressionWithoutCascade_superMethodInvocation() { 5637 void test_parseExpressionWithoutCascade_superMethodInvocation() {
5640 MethodInvocation invocation = ParserTestCase.parse4("parseExpressionWithoutC ascade", "super.m()", []); 5638 MethodInvocation invocation = ParserTestCase.parse4("parseExpressionWithoutC ascade", "super.m()");
5641 expect(invocation.target, isNotNull); 5639 expect(invocation.target, isNotNull);
5642 expect(invocation.methodName, isNotNull); 5640 expect(invocation.methodName, isNotNull);
5643 expect(invocation.argumentList, isNotNull); 5641 expect(invocation.argumentList, isNotNull);
5644 } 5642 }
5645 5643
5646 void test_parseExtendsClause() { 5644 void test_parseExtendsClause() {
5647 ExtendsClause clause = ParserTestCase.parse4("parseExtendsClause", "extends B", []); 5645 ExtendsClause clause = ParserTestCase.parse4("parseExtendsClause", "extends B");
5648 expect(clause.keyword, isNotNull); 5646 expect(clause.keyword, isNotNull);
5649 expect(clause.superclass, isNotNull); 5647 expect(clause.superclass, isNotNull);
5650 EngineTestCase.assertInstanceOf((obj) => obj is TypeName, TypeName, clause.s uperclass); 5648 EngineTestCase.assertInstanceOf((obj) => obj is TypeName, TypeName, clause.s uperclass);
5651 } 5649 }
5652 5650
5653 void test_parseFinalConstVarOrType_const_noType() { 5651 void test_parseFinalConstVarOrType_const_noType() {
5654 FinalConstVarOrType result = ParserTestCase.parse("parseFinalConstVarOrType" , <Object> [false], "const"); 5652 FinalConstVarOrType result = ParserTestCase.parse("parseFinalConstVarOrType" , <Object> [false], "const");
5655 Token keyword = result.keyword; 5653 Token keyword = result.keyword;
5656 expect(keyword, isNotNull); 5654 expect(keyword, isNotNull);
5657 expect(keyword.type, TokenType.KEYWORD); 5655 expect(keyword.type, TokenType.KEYWORD);
(...skipping 187 matching lines...) Expand 10 before | Expand all | Expand 10 after
5845 expect(simpleParameter.identifier, isNotNull); 5843 expect(simpleParameter.identifier, isNotNull);
5846 expect(simpleParameter.keyword, isNotNull); 5844 expect(simpleParameter.keyword, isNotNull);
5847 expect(simpleParameter.type, isNull); 5845 expect(simpleParameter.type, isNull);
5848 expect(simpleParameter.kind, kind); 5846 expect(simpleParameter.kind, kind);
5849 expect(parameter.separator, isNotNull); 5847 expect(parameter.separator, isNotNull);
5850 expect(parameter.defaultValue, isNotNull); 5848 expect(parameter.defaultValue, isNotNull);
5851 expect(parameter.kind, kind); 5849 expect(parameter.kind, kind);
5852 } 5850 }
5853 5851
5854 void test_parseFormalParameterList_empty() { 5852 void test_parseFormalParameterList_empty() {
5855 FormalParameterList parameterList = ParserTestCase.parse4("parseFormalParame terList", "()", []); 5853 FormalParameterList parameterList = ParserTestCase.parse4("parseFormalParame terList", "()");
5856 expect(parameterList.leftParenthesis, isNotNull); 5854 expect(parameterList.leftParenthesis, isNotNull);
5857 expect(parameterList.leftDelimiter, isNull); 5855 expect(parameterList.leftDelimiter, isNull);
5858 expect(parameterList.parameters, hasLength(0)); 5856 expect(parameterList.parameters, hasLength(0));
5859 expect(parameterList.rightDelimiter, isNull); 5857 expect(parameterList.rightDelimiter, isNull);
5860 expect(parameterList.rightParenthesis, isNotNull); 5858 expect(parameterList.rightParenthesis, isNotNull);
5861 } 5859 }
5862 5860
5863 void test_parseFormalParameterList_named_multiple() { 5861 void test_parseFormalParameterList_named_multiple() {
5864 FormalParameterList parameterList = ParserTestCase.parse4("parseFormalParame terList", "({A a : 1, B b, C c : 3})", []); 5862 FormalParameterList parameterList = ParserTestCase.parse4("parseFormalParame terList", "({A a : 1, B b, C c : 3})");
5865 expect(parameterList.leftParenthesis, isNotNull); 5863 expect(parameterList.leftParenthesis, isNotNull);
5866 expect(parameterList.leftDelimiter, isNotNull); 5864 expect(parameterList.leftDelimiter, isNotNull);
5867 expect(parameterList.parameters, hasLength(3)); 5865 expect(parameterList.parameters, hasLength(3));
5868 expect(parameterList.rightDelimiter, isNotNull); 5866 expect(parameterList.rightDelimiter, isNotNull);
5869 expect(parameterList.rightParenthesis, isNotNull); 5867 expect(parameterList.rightParenthesis, isNotNull);
5870 } 5868 }
5871 5869
5872 void test_parseFormalParameterList_named_single() { 5870 void test_parseFormalParameterList_named_single() {
5873 FormalParameterList parameterList = ParserTestCase.parse4("parseFormalParame terList", "({A a})", []); 5871 FormalParameterList parameterList = ParserTestCase.parse4("parseFormalParame terList", "({A a})");
5874 expect(parameterList.leftParenthesis, isNotNull); 5872 expect(parameterList.leftParenthesis, isNotNull);
5875 expect(parameterList.leftDelimiter, isNotNull); 5873 expect(parameterList.leftDelimiter, isNotNull);
5876 expect(parameterList.parameters, hasLength(1)); 5874 expect(parameterList.parameters, hasLength(1));
5877 expect(parameterList.rightDelimiter, isNotNull); 5875 expect(parameterList.rightDelimiter, isNotNull);
5878 expect(parameterList.rightParenthesis, isNotNull); 5876 expect(parameterList.rightParenthesis, isNotNull);
5879 } 5877 }
5880 5878
5881 void test_parseFormalParameterList_normal_multiple() { 5879 void test_parseFormalParameterList_normal_multiple() {
5882 FormalParameterList parameterList = ParserTestCase.parse4("parseFormalParame terList", "(A a, B b, C c)", []); 5880 FormalParameterList parameterList = ParserTestCase.parse4("parseFormalParame terList", "(A a, B b, C c)");
5883 expect(parameterList.leftParenthesis, isNotNull); 5881 expect(parameterList.leftParenthesis, isNotNull);
5884 expect(parameterList.leftDelimiter, isNull); 5882 expect(parameterList.leftDelimiter, isNull);
5885 expect(parameterList.parameters, hasLength(3)); 5883 expect(parameterList.parameters, hasLength(3));
5886 expect(parameterList.rightDelimiter, isNull); 5884 expect(parameterList.rightDelimiter, isNull);
5887 expect(parameterList.rightParenthesis, isNotNull); 5885 expect(parameterList.rightParenthesis, isNotNull);
5888 } 5886 }
5889 5887
5890 void test_parseFormalParameterList_normal_named() { 5888 void test_parseFormalParameterList_normal_named() {
5891 FormalParameterList parameterList = ParserTestCase.parse4("parseFormalParame terList", "(A a, {B b})", []); 5889 FormalParameterList parameterList = ParserTestCase.parse4("parseFormalParame terList", "(A a, {B b})");
5892 expect(parameterList.leftParenthesis, isNotNull); 5890 expect(parameterList.leftParenthesis, isNotNull);
5893 expect(parameterList.leftDelimiter, isNotNull); 5891 expect(parameterList.leftDelimiter, isNotNull);
5894 expect(parameterList.parameters, hasLength(2)); 5892 expect(parameterList.parameters, hasLength(2));
5895 expect(parameterList.rightDelimiter, isNotNull); 5893 expect(parameterList.rightDelimiter, isNotNull);
5896 expect(parameterList.rightParenthesis, isNotNull); 5894 expect(parameterList.rightParenthesis, isNotNull);
5897 } 5895 }
5898 5896
5899 void test_parseFormalParameterList_normal_positional() { 5897 void test_parseFormalParameterList_normal_positional() {
5900 FormalParameterList parameterList = ParserTestCase.parse4("parseFormalParame terList", "(A a, [B b])", []); 5898 FormalParameterList parameterList = ParserTestCase.parse4("parseFormalParame terList", "(A a, [B b])");
5901 expect(parameterList.leftParenthesis, isNotNull); 5899 expect(parameterList.leftParenthesis, isNotNull);
5902 expect(parameterList.leftDelimiter, isNotNull); 5900 expect(parameterList.leftDelimiter, isNotNull);
5903 expect(parameterList.parameters, hasLength(2)); 5901 expect(parameterList.parameters, hasLength(2));
5904 expect(parameterList.rightDelimiter, isNotNull); 5902 expect(parameterList.rightDelimiter, isNotNull);
5905 expect(parameterList.rightParenthesis, isNotNull); 5903 expect(parameterList.rightParenthesis, isNotNull);
5906 } 5904 }
5907 5905
5908 void test_parseFormalParameterList_normal_single() { 5906 void test_parseFormalParameterList_normal_single() {
5909 FormalParameterList parameterList = ParserTestCase.parse4("parseFormalParame terList", "(A a)", []); 5907 FormalParameterList parameterList = ParserTestCase.parse4("parseFormalParame terList", "(A a)");
5910 expect(parameterList.leftParenthesis, isNotNull); 5908 expect(parameterList.leftParenthesis, isNotNull);
5911 expect(parameterList.leftDelimiter, isNull); 5909 expect(parameterList.leftDelimiter, isNull);
5912 expect(parameterList.parameters, hasLength(1)); 5910 expect(parameterList.parameters, hasLength(1));
5913 expect(parameterList.rightDelimiter, isNull); 5911 expect(parameterList.rightDelimiter, isNull);
5914 expect(parameterList.rightParenthesis, isNotNull); 5912 expect(parameterList.rightParenthesis, isNotNull);
5915 } 5913 }
5916 5914
5917 void test_parseFormalParameterList_positional_multiple() { 5915 void test_parseFormalParameterList_positional_multiple() {
5918 FormalParameterList parameterList = ParserTestCase.parse4("parseFormalParame terList", "([A a = null, B b, C c = null])", []); 5916 FormalParameterList parameterList = ParserTestCase.parse4("parseFormalParame terList", "([A a = null, B b, C c = null])");
5919 expect(parameterList.leftParenthesis, isNotNull); 5917 expect(parameterList.leftParenthesis, isNotNull);
5920 expect(parameterList.leftDelimiter, isNotNull); 5918 expect(parameterList.leftDelimiter, isNotNull);
5921 expect(parameterList.parameters, hasLength(3)); 5919 expect(parameterList.parameters, hasLength(3));
5922 expect(parameterList.rightDelimiter, isNotNull); 5920 expect(parameterList.rightDelimiter, isNotNull);
5923 expect(parameterList.rightParenthesis, isNotNull); 5921 expect(parameterList.rightParenthesis, isNotNull);
5924 } 5922 }
5925 5923
5926 void test_parseFormalParameterList_positional_single() { 5924 void test_parseFormalParameterList_positional_single() {
5927 FormalParameterList parameterList = ParserTestCase.parse4("parseFormalParame terList", "([A a = null])", []); 5925 FormalParameterList parameterList = ParserTestCase.parse4("parseFormalParame terList", "([A a = null])");
5928 expect(parameterList.leftParenthesis, isNotNull); 5926 expect(parameterList.leftParenthesis, isNotNull);
5929 expect(parameterList.leftDelimiter, isNotNull); 5927 expect(parameterList.leftDelimiter, isNotNull);
5930 expect(parameterList.parameters, hasLength(1)); 5928 expect(parameterList.parameters, hasLength(1));
5931 expect(parameterList.rightDelimiter, isNotNull); 5929 expect(parameterList.rightDelimiter, isNotNull);
5932 expect(parameterList.rightParenthesis, isNotNull); 5930 expect(parameterList.rightParenthesis, isNotNull);
5933 } 5931 }
5934 5932
5935 void test_parseForStatement_each_await() { 5933 void test_parseForStatement_each_await() {
5936 ForEachStatement statement = ParserTestCase.parse4("parseForStatement", "awa it for (element in list) {}", []); 5934 ForEachStatement statement = ParserTestCase.parse4("parseForStatement", "awa it for (element in list) {}");
5937 expect(statement.awaitKeyword, isNotNull); 5935 expect(statement.awaitKeyword, isNotNull);
5938 expect(statement.forKeyword, isNotNull); 5936 expect(statement.forKeyword, isNotNull);
5939 expect(statement.leftParenthesis, isNotNull); 5937 expect(statement.leftParenthesis, isNotNull);
5940 expect(statement.loopVariable, isNull); 5938 expect(statement.loopVariable, isNull);
5941 expect(statement.identifier, isNotNull); 5939 expect(statement.identifier, isNotNull);
5942 expect(statement.inKeyword, isNotNull); 5940 expect(statement.inKeyword, isNotNull);
5943 expect(statement.iterable, isNotNull); 5941 expect(statement.iterable, isNotNull);
5944 expect(statement.rightParenthesis, isNotNull); 5942 expect(statement.rightParenthesis, isNotNull);
5945 expect(statement.body, isNotNull); 5943 expect(statement.body, isNotNull);
5946 } 5944 }
5947 5945
5948 void test_parseForStatement_each_identifier() { 5946 void test_parseForStatement_each_identifier() {
5949 ForEachStatement statement = ParserTestCase.parse4("parseForStatement", "for (element in list) {}", []); 5947 ForEachStatement statement = ParserTestCase.parse4("parseForStatement", "for (element in list) {}");
5950 expect(statement.awaitKeyword, isNull); 5948 expect(statement.awaitKeyword, isNull);
5951 expect(statement.forKeyword, isNotNull); 5949 expect(statement.forKeyword, isNotNull);
5952 expect(statement.leftParenthesis, isNotNull); 5950 expect(statement.leftParenthesis, isNotNull);
5953 expect(statement.loopVariable, isNull); 5951 expect(statement.loopVariable, isNull);
5954 expect(statement.identifier, isNotNull); 5952 expect(statement.identifier, isNotNull);
5955 expect(statement.inKeyword, isNotNull); 5953 expect(statement.inKeyword, isNotNull);
5956 expect(statement.iterable, isNotNull); 5954 expect(statement.iterable, isNotNull);
5957 expect(statement.rightParenthesis, isNotNull); 5955 expect(statement.rightParenthesis, isNotNull);
5958 expect(statement.body, isNotNull); 5956 expect(statement.body, isNotNull);
5959 } 5957 }
5960 5958
5961 void test_parseForStatement_each_noType_metadata() { 5959 void test_parseForStatement_each_noType_metadata() {
5962 ForEachStatement statement = ParserTestCase.parse4("parseForStatement", "for (@A var element in list) {}", []); 5960 ForEachStatement statement = ParserTestCase.parse4("parseForStatement", "for (@A var element in list) {}");
5963 expect(statement.awaitKeyword, isNull); 5961 expect(statement.awaitKeyword, isNull);
5964 expect(statement.forKeyword, isNotNull); 5962 expect(statement.forKeyword, isNotNull);
5965 expect(statement.leftParenthesis, isNotNull); 5963 expect(statement.leftParenthesis, isNotNull);
5966 expect(statement.loopVariable, isNotNull); 5964 expect(statement.loopVariable, isNotNull);
5967 expect(statement.loopVariable.metadata, hasLength(1)); 5965 expect(statement.loopVariable.metadata, hasLength(1));
5968 expect(statement.identifier, isNull); 5966 expect(statement.identifier, isNull);
5969 expect(statement.inKeyword, isNotNull); 5967 expect(statement.inKeyword, isNotNull);
5970 expect(statement.iterable, isNotNull); 5968 expect(statement.iterable, isNotNull);
5971 expect(statement.rightParenthesis, isNotNull); 5969 expect(statement.rightParenthesis, isNotNull);
5972 expect(statement.body, isNotNull); 5970 expect(statement.body, isNotNull);
5973 } 5971 }
5974 5972
5975 void test_parseForStatement_each_type() { 5973 void test_parseForStatement_each_type() {
5976 ForEachStatement statement = ParserTestCase.parse4("parseForStatement", "for (A element in list) {}", []); 5974 ForEachStatement statement = ParserTestCase.parse4("parseForStatement", "for (A element in list) {}");
5977 expect(statement.awaitKeyword, isNull); 5975 expect(statement.awaitKeyword, isNull);
5978 expect(statement.forKeyword, isNotNull); 5976 expect(statement.forKeyword, isNotNull);
5979 expect(statement.leftParenthesis, isNotNull); 5977 expect(statement.leftParenthesis, isNotNull);
5980 expect(statement.loopVariable, isNotNull); 5978 expect(statement.loopVariable, isNotNull);
5981 expect(statement.identifier, isNull); 5979 expect(statement.identifier, isNull);
5982 expect(statement.inKeyword, isNotNull); 5980 expect(statement.inKeyword, isNotNull);
5983 expect(statement.iterable, isNotNull); 5981 expect(statement.iterable, isNotNull);
5984 expect(statement.rightParenthesis, isNotNull); 5982 expect(statement.rightParenthesis, isNotNull);
5985 expect(statement.body, isNotNull); 5983 expect(statement.body, isNotNull);
5986 } 5984 }
5987 5985
5988 void test_parseForStatement_each_var() { 5986 void test_parseForStatement_each_var() {
5989 ForEachStatement statement = ParserTestCase.parse4("parseForStatement", "for (var element in list) {}", []); 5987 ForEachStatement statement = ParserTestCase.parse4("parseForStatement", "for (var element in list) {}");
5990 expect(statement.awaitKeyword, isNull); 5988 expect(statement.awaitKeyword, isNull);
5991 expect(statement.forKeyword, isNotNull); 5989 expect(statement.forKeyword, isNotNull);
5992 expect(statement.leftParenthesis, isNotNull); 5990 expect(statement.leftParenthesis, isNotNull);
5993 expect(statement.loopVariable, isNotNull); 5991 expect(statement.loopVariable, isNotNull);
5994 expect(statement.identifier, isNull); 5992 expect(statement.identifier, isNull);
5995 expect(statement.inKeyword, isNotNull); 5993 expect(statement.inKeyword, isNotNull);
5996 expect(statement.iterable, isNotNull); 5994 expect(statement.iterable, isNotNull);
5997 expect(statement.rightParenthesis, isNotNull); 5995 expect(statement.rightParenthesis, isNotNull);
5998 expect(statement.body, isNotNull); 5996 expect(statement.body, isNotNull);
5999 } 5997 }
6000 5998
6001 void test_parseForStatement_loop_c() { 5999 void test_parseForStatement_loop_c() {
6002 ForStatement statement = ParserTestCase.parse4("parseForStatement", "for (; i < count;) {}", []); 6000 ForStatement statement = ParserTestCase.parse4("parseForStatement", "for (; i < count;) {}");
6003 expect(statement.forKeyword, isNotNull); 6001 expect(statement.forKeyword, isNotNull);
6004 expect(statement.leftParenthesis, isNotNull); 6002 expect(statement.leftParenthesis, isNotNull);
6005 expect(statement.variables, isNull); 6003 expect(statement.variables, isNull);
6006 expect(statement.initialization, isNull); 6004 expect(statement.initialization, isNull);
6007 expect(statement.leftSeparator, isNotNull); 6005 expect(statement.leftSeparator, isNotNull);
6008 expect(statement.condition, isNotNull); 6006 expect(statement.condition, isNotNull);
6009 expect(statement.rightSeparator, isNotNull); 6007 expect(statement.rightSeparator, isNotNull);
6010 expect(statement.updaters, hasLength(0)); 6008 expect(statement.updaters, hasLength(0));
6011 expect(statement.rightParenthesis, isNotNull); 6009 expect(statement.rightParenthesis, isNotNull);
6012 expect(statement.body, isNotNull); 6010 expect(statement.body, isNotNull);
6013 } 6011 }
6014 6012
6015 void test_parseForStatement_loop_cu() { 6013 void test_parseForStatement_loop_cu() {
6016 ForStatement statement = ParserTestCase.parse4("parseForStatement", "for (; i < count; i++) {}", []); 6014 ForStatement statement = ParserTestCase.parse4("parseForStatement", "for (; i < count; i++) {}");
6017 expect(statement.forKeyword, isNotNull); 6015 expect(statement.forKeyword, isNotNull);
6018 expect(statement.leftParenthesis, isNotNull); 6016 expect(statement.leftParenthesis, isNotNull);
6019 expect(statement.variables, isNull); 6017 expect(statement.variables, isNull);
6020 expect(statement.initialization, isNull); 6018 expect(statement.initialization, isNull);
6021 expect(statement.leftSeparator, isNotNull); 6019 expect(statement.leftSeparator, isNotNull);
6022 expect(statement.condition, isNotNull); 6020 expect(statement.condition, isNotNull);
6023 expect(statement.rightSeparator, isNotNull); 6021 expect(statement.rightSeparator, isNotNull);
6024 expect(statement.updaters, hasLength(1)); 6022 expect(statement.updaters, hasLength(1));
6025 expect(statement.rightParenthesis, isNotNull); 6023 expect(statement.rightParenthesis, isNotNull);
6026 expect(statement.body, isNotNull); 6024 expect(statement.body, isNotNull);
6027 } 6025 }
6028 6026
6029 void test_parseForStatement_loop_ecu() { 6027 void test_parseForStatement_loop_ecu() {
6030 ForStatement statement = ParserTestCase.parse4("parseForStatement", "for (i- -; i < count; i++) {}", []); 6028 ForStatement statement = ParserTestCase.parse4("parseForStatement", "for (i- -; i < count; i++) {}");
6031 expect(statement.forKeyword, isNotNull); 6029 expect(statement.forKeyword, isNotNull);
6032 expect(statement.leftParenthesis, isNotNull); 6030 expect(statement.leftParenthesis, isNotNull);
6033 expect(statement.variables, isNull); 6031 expect(statement.variables, isNull);
6034 expect(statement.initialization, isNotNull); 6032 expect(statement.initialization, isNotNull);
6035 expect(statement.leftSeparator, isNotNull); 6033 expect(statement.leftSeparator, isNotNull);
6036 expect(statement.condition, isNotNull); 6034 expect(statement.condition, isNotNull);
6037 expect(statement.rightSeparator, isNotNull); 6035 expect(statement.rightSeparator, isNotNull);
6038 expect(statement.updaters, hasLength(1)); 6036 expect(statement.updaters, hasLength(1));
6039 expect(statement.rightParenthesis, isNotNull); 6037 expect(statement.rightParenthesis, isNotNull);
6040 expect(statement.body, isNotNull); 6038 expect(statement.body, isNotNull);
6041 } 6039 }
6042 6040
6043 void test_parseForStatement_loop_i() { 6041 void test_parseForStatement_loop_i() {
6044 ForStatement statement = ParserTestCase.parse4("parseForStatement", "for (va r i = 0;;) {}", []); 6042 ForStatement statement = ParserTestCase.parse4("parseForStatement", "for (va r i = 0;;) {}");
6045 expect(statement.forKeyword, isNotNull); 6043 expect(statement.forKeyword, isNotNull);
6046 expect(statement.leftParenthesis, isNotNull); 6044 expect(statement.leftParenthesis, isNotNull);
6047 VariableDeclarationList variables = statement.variables; 6045 VariableDeclarationList variables = statement.variables;
6048 expect(variables, isNotNull); 6046 expect(variables, isNotNull);
6049 expect(variables.metadata, hasLength(0)); 6047 expect(variables.metadata, hasLength(0));
6050 expect(variables.variables, hasLength(1)); 6048 expect(variables.variables, hasLength(1));
6051 expect(statement.initialization, isNull); 6049 expect(statement.initialization, isNull);
6052 expect(statement.leftSeparator, isNotNull); 6050 expect(statement.leftSeparator, isNotNull);
6053 expect(statement.condition, isNull); 6051 expect(statement.condition, isNull);
6054 expect(statement.rightSeparator, isNotNull); 6052 expect(statement.rightSeparator, isNotNull);
6055 expect(statement.updaters, hasLength(0)); 6053 expect(statement.updaters, hasLength(0));
6056 expect(statement.rightParenthesis, isNotNull); 6054 expect(statement.rightParenthesis, isNotNull);
6057 expect(statement.body, isNotNull); 6055 expect(statement.body, isNotNull);
6058 } 6056 }
6059 6057
6060 void test_parseForStatement_loop_i_withMetadata() { 6058 void test_parseForStatement_loop_i_withMetadata() {
6061 ForStatement statement = ParserTestCase.parse4("parseForStatement", "for (@A var i = 0;;) {}", []); 6059 ForStatement statement = ParserTestCase.parse4("parseForStatement", "for (@A var i = 0;;) {}");
6062 expect(statement.forKeyword, isNotNull); 6060 expect(statement.forKeyword, isNotNull);
6063 expect(statement.leftParenthesis, isNotNull); 6061 expect(statement.leftParenthesis, isNotNull);
6064 VariableDeclarationList variables = statement.variables; 6062 VariableDeclarationList variables = statement.variables;
6065 expect(variables, isNotNull); 6063 expect(variables, isNotNull);
6066 expect(variables.metadata, hasLength(1)); 6064 expect(variables.metadata, hasLength(1));
6067 expect(variables.variables, hasLength(1)); 6065 expect(variables.variables, hasLength(1));
6068 expect(statement.initialization, isNull); 6066 expect(statement.initialization, isNull);
6069 expect(statement.leftSeparator, isNotNull); 6067 expect(statement.leftSeparator, isNotNull);
6070 expect(statement.condition, isNull); 6068 expect(statement.condition, isNull);
6071 expect(statement.rightSeparator, isNotNull); 6069 expect(statement.rightSeparator, isNotNull);
6072 expect(statement.updaters, hasLength(0)); 6070 expect(statement.updaters, hasLength(0));
6073 expect(statement.rightParenthesis, isNotNull); 6071 expect(statement.rightParenthesis, isNotNull);
6074 expect(statement.body, isNotNull); 6072 expect(statement.body, isNotNull);
6075 } 6073 }
6076 6074
6077 void test_parseForStatement_loop_ic() { 6075 void test_parseForStatement_loop_ic() {
6078 ForStatement statement = ParserTestCase.parse4("parseForStatement", "for (va r i = 0; i < count;) {}", []); 6076 ForStatement statement = ParserTestCase.parse4("parseForStatement", "for (va r i = 0; i < count;) {}");
6079 expect(statement.forKeyword, isNotNull); 6077 expect(statement.forKeyword, isNotNull);
6080 expect(statement.leftParenthesis, isNotNull); 6078 expect(statement.leftParenthesis, isNotNull);
6081 VariableDeclarationList variables = statement.variables; 6079 VariableDeclarationList variables = statement.variables;
6082 expect(variables, isNotNull); 6080 expect(variables, isNotNull);
6083 expect(variables.variables, hasLength(1)); 6081 expect(variables.variables, hasLength(1));
6084 expect(statement.initialization, isNull); 6082 expect(statement.initialization, isNull);
6085 expect(statement.leftSeparator, isNotNull); 6083 expect(statement.leftSeparator, isNotNull);
6086 expect(statement.condition, isNotNull); 6084 expect(statement.condition, isNotNull);
6087 expect(statement.rightSeparator, isNotNull); 6085 expect(statement.rightSeparator, isNotNull);
6088 expect(statement.updaters, hasLength(0)); 6086 expect(statement.updaters, hasLength(0));
6089 expect(statement.rightParenthesis, isNotNull); 6087 expect(statement.rightParenthesis, isNotNull);
6090 expect(statement.body, isNotNull); 6088 expect(statement.body, isNotNull);
6091 } 6089 }
6092 6090
6093 void test_parseForStatement_loop_icu() { 6091 void test_parseForStatement_loop_icu() {
6094 ForStatement statement = ParserTestCase.parse4("parseForStatement", "for (va r i = 0; i < count; i++) {}", []); 6092 ForStatement statement = ParserTestCase.parse4("parseForStatement", "for (va r i = 0; i < count; i++) {}");
6095 expect(statement.forKeyword, isNotNull); 6093 expect(statement.forKeyword, isNotNull);
6096 expect(statement.leftParenthesis, isNotNull); 6094 expect(statement.leftParenthesis, isNotNull);
6097 VariableDeclarationList variables = statement.variables; 6095 VariableDeclarationList variables = statement.variables;
6098 expect(variables, isNotNull); 6096 expect(variables, isNotNull);
6099 expect(variables.variables, hasLength(1)); 6097 expect(variables.variables, hasLength(1));
6100 expect(statement.initialization, isNull); 6098 expect(statement.initialization, isNull);
6101 expect(statement.leftSeparator, isNotNull); 6099 expect(statement.leftSeparator, isNotNull);
6102 expect(statement.condition, isNotNull); 6100 expect(statement.condition, isNotNull);
6103 expect(statement.rightSeparator, isNotNull); 6101 expect(statement.rightSeparator, isNotNull);
6104 expect(statement.updaters, hasLength(1)); 6102 expect(statement.updaters, hasLength(1));
6105 expect(statement.rightParenthesis, isNotNull); 6103 expect(statement.rightParenthesis, isNotNull);
6106 expect(statement.body, isNotNull); 6104 expect(statement.body, isNotNull);
6107 } 6105 }
6108 6106
6109 void test_parseForStatement_loop_iicuu() { 6107 void test_parseForStatement_loop_iicuu() {
6110 ForStatement statement = ParserTestCase.parse4("parseForStatement", "for (in t i = 0, j = count; i < j; i++, j--) {}", []); 6108 ForStatement statement = ParserTestCase.parse4("parseForStatement", "for (in t i = 0, j = count; i < j; i++, j--) {}");
6111 expect(statement.forKeyword, isNotNull); 6109 expect(statement.forKeyword, isNotNull);
6112 expect(statement.leftParenthesis, isNotNull); 6110 expect(statement.leftParenthesis, isNotNull);
6113 VariableDeclarationList variables = statement.variables; 6111 VariableDeclarationList variables = statement.variables;
6114 expect(variables, isNotNull); 6112 expect(variables, isNotNull);
6115 expect(variables.variables, hasLength(2)); 6113 expect(variables.variables, hasLength(2));
6116 expect(statement.initialization, isNull); 6114 expect(statement.initialization, isNull);
6117 expect(statement.leftSeparator, isNotNull); 6115 expect(statement.leftSeparator, isNotNull);
6118 expect(statement.condition, isNotNull); 6116 expect(statement.condition, isNotNull);
6119 expect(statement.rightSeparator, isNotNull); 6117 expect(statement.rightSeparator, isNotNull);
6120 expect(statement.updaters, hasLength(2)); 6118 expect(statement.updaters, hasLength(2));
6121 expect(statement.rightParenthesis, isNotNull); 6119 expect(statement.rightParenthesis, isNotNull);
6122 expect(statement.body, isNotNull); 6120 expect(statement.body, isNotNull);
6123 } 6121 }
6124 6122
6125 void test_parseForStatement_loop_iu() { 6123 void test_parseForStatement_loop_iu() {
6126 ForStatement statement = ParserTestCase.parse4("parseForStatement", "for (va r i = 0;; i++) {}", []); 6124 ForStatement statement = ParserTestCase.parse4("parseForStatement", "for (va r i = 0;; i++) {}");
6127 expect(statement.forKeyword, isNotNull); 6125 expect(statement.forKeyword, isNotNull);
6128 expect(statement.leftParenthesis, isNotNull); 6126 expect(statement.leftParenthesis, isNotNull);
6129 VariableDeclarationList variables = statement.variables; 6127 VariableDeclarationList variables = statement.variables;
6130 expect(variables, isNotNull); 6128 expect(variables, isNotNull);
6131 expect(variables.variables, hasLength(1)); 6129 expect(variables.variables, hasLength(1));
6132 expect(statement.initialization, isNull); 6130 expect(statement.initialization, isNull);
6133 expect(statement.leftSeparator, isNotNull); 6131 expect(statement.leftSeparator, isNotNull);
6134 expect(statement.condition, isNull); 6132 expect(statement.condition, isNull);
6135 expect(statement.rightSeparator, isNotNull); 6133 expect(statement.rightSeparator, isNotNull);
6136 expect(statement.updaters, hasLength(1)); 6134 expect(statement.updaters, hasLength(1));
6137 expect(statement.rightParenthesis, isNotNull); 6135 expect(statement.rightParenthesis, isNotNull);
6138 expect(statement.body, isNotNull); 6136 expect(statement.body, isNotNull);
6139 } 6137 }
6140 6138
6141 void test_parseForStatement_loop_u() { 6139 void test_parseForStatement_loop_u() {
6142 ForStatement statement = ParserTestCase.parse4("parseForStatement", "for (;; i++) {}", []); 6140 ForStatement statement = ParserTestCase.parse4("parseForStatement", "for (;; i++) {}");
6143 expect(statement.forKeyword, isNotNull); 6141 expect(statement.forKeyword, isNotNull);
6144 expect(statement.leftParenthesis, isNotNull); 6142 expect(statement.leftParenthesis, isNotNull);
6145 expect(statement.variables, isNull); 6143 expect(statement.variables, isNull);
6146 expect(statement.initialization, isNull); 6144 expect(statement.initialization, isNull);
6147 expect(statement.leftSeparator, isNotNull); 6145 expect(statement.leftSeparator, isNotNull);
6148 expect(statement.condition, isNull); 6146 expect(statement.condition, isNull);
6149 expect(statement.rightSeparator, isNotNull); 6147 expect(statement.rightSeparator, isNotNull);
6150 expect(statement.updaters, hasLength(1)); 6148 expect(statement.updaters, hasLength(1));
6151 expect(statement.rightParenthesis, isNotNull); 6149 expect(statement.rightParenthesis, isNotNull);
6152 expect(statement.body, isNotNull); 6150 expect(statement.body, isNotNull);
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after
6250 6248
6251 void test_parseFunctionBody_skip_expression() { 6249 void test_parseFunctionBody_skip_expression() {
6252 ParserTestCase.parseFunctionBodies = false; 6250 ParserTestCase.parseFunctionBodies = false;
6253 FunctionBody functionBody = ParserTestCase.parse("parseFunctionBody", <Objec t> [false, null, false], "=> y;"); 6251 FunctionBody functionBody = ParserTestCase.parse("parseFunctionBody", <Objec t> [false, null, false], "=> y;");
6254 EngineTestCase.assertInstanceOf((obj) => obj is EmptyFunctionBody, EmptyFunc tionBody, functionBody); 6252 EngineTestCase.assertInstanceOf((obj) => obj is EmptyFunctionBody, EmptyFunc tionBody, functionBody);
6255 } 6253 }
6256 6254
6257 void test_parseFunctionDeclaration_function() { 6255 void test_parseFunctionDeclaration_function() {
6258 Comment comment = Comment.createDocumentationComment(new List<Token>(0)); 6256 Comment comment = Comment.createDocumentationComment(new List<Token>(0));
6259 TypeName returnType = new TypeName(new SimpleIdentifier(null), null); 6257 TypeName returnType = new TypeName(new SimpleIdentifier(null), null);
6260 FunctionDeclaration declaration = ParserTestCase.parse("parseFunctionDeclara tion", <Object> [commentAndMetadata(comment, []), null, returnType], "f() {}"); 6258 FunctionDeclaration declaration = ParserTestCase.parse("parseFunctionDeclara tion", <Object> [commentAndMetadata(comment), null, returnType], "f() {}");
6261 expect(declaration.documentationComment, comment); 6259 expect(declaration.documentationComment, comment);
6262 expect(declaration.returnType, returnType); 6260 expect(declaration.returnType, returnType);
6263 expect(declaration.name, isNotNull); 6261 expect(declaration.name, isNotNull);
6264 FunctionExpression expression = declaration.functionExpression; 6262 FunctionExpression expression = declaration.functionExpression;
6265 expect(expression, isNotNull); 6263 expect(expression, isNotNull);
6266 expect(expression.body, isNotNull); 6264 expect(expression.body, isNotNull);
6267 expect(expression.parameters, isNotNull); 6265 expect(expression.parameters, isNotNull);
6268 expect(declaration.propertyKeyword, isNull); 6266 expect(declaration.propertyKeyword, isNull);
6269 } 6267 }
6270 6268
6271 void test_parseFunctionDeclaration_getter() { 6269 void test_parseFunctionDeclaration_getter() {
6272 Comment comment = Comment.createDocumentationComment(new List<Token>(0)); 6270 Comment comment = Comment.createDocumentationComment(new List<Token>(0));
6273 TypeName returnType = new TypeName(new SimpleIdentifier(null), null); 6271 TypeName returnType = new TypeName(new SimpleIdentifier(null), null);
6274 FunctionDeclaration declaration = ParserTestCase.parse("parseFunctionDeclara tion", <Object> [commentAndMetadata(comment, []), null, returnType], "get p => 0 ;"); 6272 FunctionDeclaration declaration = ParserTestCase.parse("parseFunctionDeclara tion", <Object> [commentAndMetadata(comment), null, returnType], "get p => 0;");
6275 expect(declaration.documentationComment, comment); 6273 expect(declaration.documentationComment, comment);
6276 expect(declaration.returnType, returnType); 6274 expect(declaration.returnType, returnType);
6277 expect(declaration.name, isNotNull); 6275 expect(declaration.name, isNotNull);
6278 FunctionExpression expression = declaration.functionExpression; 6276 FunctionExpression expression = declaration.functionExpression;
6279 expect(expression, isNotNull); 6277 expect(expression, isNotNull);
6280 expect(expression.body, isNotNull); 6278 expect(expression.body, isNotNull);
6281 expect(expression.parameters, isNull); 6279 expect(expression.parameters, isNull);
6282 expect(declaration.propertyKeyword, isNotNull); 6280 expect(declaration.propertyKeyword, isNotNull);
6283 } 6281 }
6284 6282
6285 void test_parseFunctionDeclaration_setter() { 6283 void test_parseFunctionDeclaration_setter() {
6286 Comment comment = Comment.createDocumentationComment(new List<Token>(0)); 6284 Comment comment = Comment.createDocumentationComment(new List<Token>(0));
6287 TypeName returnType = new TypeName(new SimpleIdentifier(null), null); 6285 TypeName returnType = new TypeName(new SimpleIdentifier(null), null);
6288 FunctionDeclaration declaration = ParserTestCase.parse("parseFunctionDeclara tion", <Object> [commentAndMetadata(comment, []), null, returnType], "set p(v) { }"); 6286 FunctionDeclaration declaration = ParserTestCase.parse("parseFunctionDeclara tion", <Object> [commentAndMetadata(comment), null, returnType], "set p(v) {}");
6289 expect(declaration.documentationComment, comment); 6287 expect(declaration.documentationComment, comment);
6290 expect(declaration.returnType, returnType); 6288 expect(declaration.returnType, returnType);
6291 expect(declaration.name, isNotNull); 6289 expect(declaration.name, isNotNull);
6292 FunctionExpression expression = declaration.functionExpression; 6290 FunctionExpression expression = declaration.functionExpression;
6293 expect(expression, isNotNull); 6291 expect(expression, isNotNull);
6294 expect(expression.body, isNotNull); 6292 expect(expression.body, isNotNull);
6295 expect(expression.parameters, isNotNull); 6293 expect(expression.parameters, isNotNull);
6296 expect(declaration.propertyKeyword, isNotNull); 6294 expect(declaration.propertyKeyword, isNotNull);
6297 } 6295 }
6298 6296
6299 void test_parseFunctionDeclarationStatement() { 6297 void test_parseFunctionDeclarationStatement() {
6300 FunctionDeclarationStatement statement = ParserTestCase.parse4("parseFunctio nDeclarationStatement", "void f(int p) => p * 2;", []); 6298 FunctionDeclarationStatement statement = ParserTestCase.parse4("parseFunctio nDeclarationStatement", "void f(int p) => p * 2;");
6301 expect(statement.functionDeclaration, isNotNull); 6299 expect(statement.functionDeclaration, isNotNull);
6302 } 6300 }
6303 6301
6304 void test_parseFunctionExpression_body_inExpression() { 6302 void test_parseFunctionExpression_body_inExpression() {
6305 FunctionExpression expression = ParserTestCase.parse4("parseFunctionExpressi on", "(int i) => i++", []); 6303 FunctionExpression expression = ParserTestCase.parse4("parseFunctionExpressi on", "(int i) => i++");
6306 expect(expression.body, isNotNull); 6304 expect(expression.body, isNotNull);
6307 expect(expression.parameters, isNotNull); 6305 expect(expression.parameters, isNotNull);
6308 expect((expression.body as ExpressionFunctionBody).semicolon, isNull); 6306 expect((expression.body as ExpressionFunctionBody).semicolon, isNull);
6309 } 6307 }
6310 6308
6311 void test_parseGetter_nonStatic() { 6309 void test_parseGetter_nonStatic() {
6312 Comment comment = Comment.createDocumentationComment(new List<Token>(0)); 6310 Comment comment = Comment.createDocumentationComment(new List<Token>(0));
6313 TypeName returnType = new TypeName(new SimpleIdentifier(null), null); 6311 TypeName returnType = new TypeName(new SimpleIdentifier(null), null);
6314 MethodDeclaration method = ParserTestCase.parse("parseGetter", <Object> [com mentAndMetadata(comment, []), null, null, returnType], "get a;"); 6312 MethodDeclaration method = ParserTestCase.parse("parseGetter", <Object> [com mentAndMetadata(comment), null, null, returnType], "get a;");
6315 expect(method.body, isNotNull); 6313 expect(method.body, isNotNull);
6316 expect(method.documentationComment, comment); 6314 expect(method.documentationComment, comment);
6317 expect(method.externalKeyword, isNull); 6315 expect(method.externalKeyword, isNull);
6318 expect(method.modifierKeyword, isNull); 6316 expect(method.modifierKeyword, isNull);
6319 expect(method.name, isNotNull); 6317 expect(method.name, isNotNull);
6320 expect(method.operatorKeyword, isNull); 6318 expect(method.operatorKeyword, isNull);
6321 expect(method.parameters, isNull); 6319 expect(method.parameters, isNull);
6322 expect(method.propertyKeyword, isNotNull); 6320 expect(method.propertyKeyword, isNotNull);
6323 expect(method.returnType, returnType); 6321 expect(method.returnType, returnType);
6324 } 6322 }
6325 6323
6326 void test_parseGetter_static() { 6324 void test_parseGetter_static() {
6327 Comment comment = Comment.createDocumentationComment(new List<Token>(0)); 6325 Comment comment = Comment.createDocumentationComment(new List<Token>(0));
6328 Token staticKeyword = TokenFactory.tokenFromKeyword(Keyword.STATIC); 6326 Token staticKeyword = TokenFactory.tokenFromKeyword(Keyword.STATIC);
6329 TypeName returnType = new TypeName(new SimpleIdentifier(null), null); 6327 TypeName returnType = new TypeName(new SimpleIdentifier(null), null);
6330 MethodDeclaration method = ParserTestCase.parse("parseGetter", <Object> [ 6328 MethodDeclaration method = ParserTestCase.parse("parseGetter", <Object> [
6331 commentAndMetadata(comment, []), 6329 commentAndMetadata(comment),
6332 null, 6330 null,
6333 staticKeyword, 6331 staticKeyword,
6334 returnType], "get a => 42;"); 6332 returnType], "get a => 42;");
6335 expect(method.body, isNotNull); 6333 expect(method.body, isNotNull);
6336 expect(method.documentationComment, comment); 6334 expect(method.documentationComment, comment);
6337 expect(method.externalKeyword, isNull); 6335 expect(method.externalKeyword, isNull);
6338 expect(method.modifierKeyword, staticKeyword); 6336 expect(method.modifierKeyword, staticKeyword);
6339 expect(method.name, isNotNull); 6337 expect(method.name, isNotNull);
6340 expect(method.operatorKeyword, isNull); 6338 expect(method.operatorKeyword, isNull);
6341 expect(method.parameters, isNull); 6339 expect(method.parameters, isNull);
6342 expect(method.propertyKeyword, isNotNull); 6340 expect(method.propertyKeyword, isNotNull);
6343 expect(method.returnType, returnType); 6341 expect(method.returnType, returnType);
6344 } 6342 }
6345 6343
6346 void test_parseIdentifierList_multiple() { 6344 void test_parseIdentifierList_multiple() {
6347 List<SimpleIdentifier> list = ParserTestCase.parse4("parseIdentifierList", " a, b, c", []); 6345 List<SimpleIdentifier> list = ParserTestCase.parse4("parseIdentifierList", " a, b, c");
6348 expect(list, hasLength(3)); 6346 expect(list, hasLength(3));
6349 } 6347 }
6350 6348
6351 void test_parseIdentifierList_single() { 6349 void test_parseIdentifierList_single() {
6352 List<SimpleIdentifier> list = ParserTestCase.parse4("parseIdentifierList", " a", []); 6350 List<SimpleIdentifier> list = ParserTestCase.parse4("parseIdentifierList", " a");
6353 expect(list, hasLength(1)); 6351 expect(list, hasLength(1));
6354 } 6352 }
6355 6353
6356 void test_parseIfStatement_else_block() { 6354 void test_parseIfStatement_else_block() {
6357 IfStatement statement = ParserTestCase.parse4("parseIfStatement", "if (x) {} else {}", []); 6355 IfStatement statement = ParserTestCase.parse4("parseIfStatement", "if (x) {} else {}");
6358 expect(statement.ifKeyword, isNotNull); 6356 expect(statement.ifKeyword, isNotNull);
6359 expect(statement.leftParenthesis, isNotNull); 6357 expect(statement.leftParenthesis, isNotNull);
6360 expect(statement.condition, isNotNull); 6358 expect(statement.condition, isNotNull);
6361 expect(statement.rightParenthesis, isNotNull); 6359 expect(statement.rightParenthesis, isNotNull);
6362 expect(statement.thenStatement, isNotNull); 6360 expect(statement.thenStatement, isNotNull);
6363 expect(statement.elseKeyword, isNotNull); 6361 expect(statement.elseKeyword, isNotNull);
6364 expect(statement.elseStatement, isNotNull); 6362 expect(statement.elseStatement, isNotNull);
6365 } 6363 }
6366 6364
6367 void test_parseIfStatement_else_statement() { 6365 void test_parseIfStatement_else_statement() {
6368 IfStatement statement = ParserTestCase.parse4("parseIfStatement", "if (x) f( x); else f(y);", []); 6366 IfStatement statement = ParserTestCase.parse4("parseIfStatement", "if (x) f( x); else f(y);");
6369 expect(statement.ifKeyword, isNotNull); 6367 expect(statement.ifKeyword, isNotNull);
6370 expect(statement.leftParenthesis, isNotNull); 6368 expect(statement.leftParenthesis, isNotNull);
6371 expect(statement.condition, isNotNull); 6369 expect(statement.condition, isNotNull);
6372 expect(statement.rightParenthesis, isNotNull); 6370 expect(statement.rightParenthesis, isNotNull);
6373 expect(statement.thenStatement, isNotNull); 6371 expect(statement.thenStatement, isNotNull);
6374 expect(statement.elseKeyword, isNotNull); 6372 expect(statement.elseKeyword, isNotNull);
6375 expect(statement.elseStatement, isNotNull); 6373 expect(statement.elseStatement, isNotNull);
6376 } 6374 }
6377 6375
6378 void test_parseIfStatement_noElse_block() { 6376 void test_parseIfStatement_noElse_block() {
6379 IfStatement statement = ParserTestCase.parse4("parseIfStatement", "if (x) {} ", []); 6377 IfStatement statement = ParserTestCase.parse4("parseIfStatement", "if (x) {} ");
6380 expect(statement.ifKeyword, isNotNull); 6378 expect(statement.ifKeyword, isNotNull);
6381 expect(statement.leftParenthesis, isNotNull); 6379 expect(statement.leftParenthesis, isNotNull);
6382 expect(statement.condition, isNotNull); 6380 expect(statement.condition, isNotNull);
6383 expect(statement.rightParenthesis, isNotNull); 6381 expect(statement.rightParenthesis, isNotNull);
6384 expect(statement.thenStatement, isNotNull); 6382 expect(statement.thenStatement, isNotNull);
6385 expect(statement.elseKeyword, isNull); 6383 expect(statement.elseKeyword, isNull);
6386 expect(statement.elseStatement, isNull); 6384 expect(statement.elseStatement, isNull);
6387 } 6385 }
6388 6386
6389 void test_parseIfStatement_noElse_statement() { 6387 void test_parseIfStatement_noElse_statement() {
6390 IfStatement statement = ParserTestCase.parse4("parseIfStatement", "if (x) f( x);", []); 6388 IfStatement statement = ParserTestCase.parse4("parseIfStatement", "if (x) f( x);");
6391 expect(statement.ifKeyword, isNotNull); 6389 expect(statement.ifKeyword, isNotNull);
6392 expect(statement.leftParenthesis, isNotNull); 6390 expect(statement.leftParenthesis, isNotNull);
6393 expect(statement.condition, isNotNull); 6391 expect(statement.condition, isNotNull);
6394 expect(statement.rightParenthesis, isNotNull); 6392 expect(statement.rightParenthesis, isNotNull);
6395 expect(statement.thenStatement, isNotNull); 6393 expect(statement.thenStatement, isNotNull);
6396 expect(statement.elseKeyword, isNull); 6394 expect(statement.elseKeyword, isNull);
6397 expect(statement.elseStatement, isNull); 6395 expect(statement.elseStatement, isNull);
6398 } 6396 }
6399 6397
6400 void test_parseImplementsClause_multiple() { 6398 void test_parseImplementsClause_multiple() {
6401 ImplementsClause clause = ParserTestCase.parse4("parseImplementsClause", "im plements A, B, C", []); 6399 ImplementsClause clause = ParserTestCase.parse4("parseImplementsClause", "im plements A, B, C");
6402 expect(clause.interfaces, hasLength(3)); 6400 expect(clause.interfaces, hasLength(3));
6403 expect(clause.keyword, isNotNull); 6401 expect(clause.keyword, isNotNull);
6404 } 6402 }
6405 6403
6406 void test_parseImplementsClause_single() { 6404 void test_parseImplementsClause_single() {
6407 ImplementsClause clause = ParserTestCase.parse4("parseImplementsClause", "im plements A", []); 6405 ImplementsClause clause = ParserTestCase.parse4("parseImplementsClause", "im plements A");
6408 expect(clause.interfaces, hasLength(1)); 6406 expect(clause.interfaces, hasLength(1));
6409 expect(clause.keyword, isNotNull); 6407 expect(clause.keyword, isNotNull);
6410 } 6408 }
6411 6409
6412 void test_parseImportDirective_deferred() { 6410 void test_parseImportDirective_deferred() {
6413 ImportDirective directive = ParserTestCase.parse("parseImportDirective", <Ob ject> [emptyCommentAndMetadata()], "import 'lib/lib.dart' deferred as a;"); 6411 ImportDirective directive = ParserTestCase.parse("parseImportDirective", <Ob ject> [emptyCommentAndMetadata()], "import 'lib/lib.dart' deferred as a;");
6414 expect(directive.keyword, isNotNull); 6412 expect(directive.keyword, isNotNull);
6415 expect(directive.uri, isNotNull); 6413 expect(directive.uri, isNotNull);
6416 expect(directive.deferredToken, isNotNull); 6414 expect(directive.deferredToken, isNotNull);
6417 expect(directive.asToken, isNotNull); 6415 expect(directive.asToken, isNotNull);
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
6484 expect(directive.prefix, isNull); 6482 expect(directive.prefix, isNull);
6485 expect(directive.combinators, hasLength(1)); 6483 expect(directive.combinators, hasLength(1));
6486 expect(directive.semicolon, isNotNull); 6484 expect(directive.semicolon, isNotNull);
6487 } 6485 }
6488 6486
6489 void test_parseInitializedIdentifierList_type() { 6487 void test_parseInitializedIdentifierList_type() {
6490 Comment comment = Comment.createDocumentationComment(new List<Token>(0)); 6488 Comment comment = Comment.createDocumentationComment(new List<Token>(0));
6491 Token staticKeyword = TokenFactory.tokenFromKeyword(Keyword.STATIC); 6489 Token staticKeyword = TokenFactory.tokenFromKeyword(Keyword.STATIC);
6492 TypeName type = new TypeName(new SimpleIdentifier(null), null); 6490 TypeName type = new TypeName(new SimpleIdentifier(null), null);
6493 FieldDeclaration declaration = ParserTestCase.parse("parseInitializedIdentif ierList", <Object> [ 6491 FieldDeclaration declaration = ParserTestCase.parse("parseInitializedIdentif ierList", <Object> [
6494 commentAndMetadata(comment, []), 6492 commentAndMetadata(comment),
6495 staticKeyword, 6493 staticKeyword,
6496 null, 6494 null,
6497 type], "a = 1, b, c = 3;"); 6495 type], "a = 1, b, c = 3;");
6498 expect(declaration.documentationComment, comment); 6496 expect(declaration.documentationComment, comment);
6499 VariableDeclarationList fields = declaration.fields; 6497 VariableDeclarationList fields = declaration.fields;
6500 expect(fields, isNotNull); 6498 expect(fields, isNotNull);
6501 expect(fields.keyword, isNull); 6499 expect(fields.keyword, isNull);
6502 expect(fields.type, type); 6500 expect(fields.type, type);
6503 expect(fields.variables, hasLength(3)); 6501 expect(fields.variables, hasLength(3));
6504 expect(declaration.staticKeyword, staticKeyword); 6502 expect(declaration.staticKeyword, staticKeyword);
6505 expect(declaration.semicolon, isNotNull); 6503 expect(declaration.semicolon, isNotNull);
6506 } 6504 }
6507 6505
6508 void test_parseInitializedIdentifierList_var() { 6506 void test_parseInitializedIdentifierList_var() {
6509 Comment comment = Comment.createDocumentationComment(new List<Token>(0)); 6507 Comment comment = Comment.createDocumentationComment(new List<Token>(0));
6510 Token staticKeyword = TokenFactory.tokenFromKeyword(Keyword.STATIC); 6508 Token staticKeyword = TokenFactory.tokenFromKeyword(Keyword.STATIC);
6511 Token varKeyword = TokenFactory.tokenFromKeyword(Keyword.VAR); 6509 Token varKeyword = TokenFactory.tokenFromKeyword(Keyword.VAR);
6512 FieldDeclaration declaration = ParserTestCase.parse("parseInitializedIdentif ierList", <Object> [ 6510 FieldDeclaration declaration = ParserTestCase.parse("parseInitializedIdentif ierList", <Object> [
6513 commentAndMetadata(comment, []), 6511 commentAndMetadata(comment),
6514 staticKeyword, 6512 staticKeyword,
6515 varKeyword, 6513 varKeyword,
6516 null], "a = 1, b, c = 3;"); 6514 null], "a = 1, b, c = 3;");
6517 expect(declaration.documentationComment, comment); 6515 expect(declaration.documentationComment, comment);
6518 VariableDeclarationList fields = declaration.fields; 6516 VariableDeclarationList fields = declaration.fields;
6519 expect(fields, isNotNull); 6517 expect(fields, isNotNull);
6520 expect(fields.keyword, varKeyword); 6518 expect(fields.keyword, varKeyword);
6521 expect(fields.type, isNull); 6519 expect(fields.type, isNull);
6522 expect(fields.variables, hasLength(3)); 6520 expect(fields.variables, hasLength(3));
6523 expect(declaration.staticKeyword, staticKeyword); 6521 expect(declaration.staticKeyword, staticKeyword);
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
6574 6572
6575 void test_parseLibraryDirective() { 6573 void test_parseLibraryDirective() {
6576 LibraryDirective directive = ParserTestCase.parse("parseLibraryDirective", < Object> [emptyCommentAndMetadata()], "library l;"); 6574 LibraryDirective directive = ParserTestCase.parse("parseLibraryDirective", < Object> [emptyCommentAndMetadata()], "library l;");
6577 expect(directive.libraryToken, isNotNull); 6575 expect(directive.libraryToken, isNotNull);
6578 expect(directive.name, isNotNull); 6576 expect(directive.name, isNotNull);
6579 expect(directive.semicolon, isNotNull); 6577 expect(directive.semicolon, isNotNull);
6580 } 6578 }
6581 6579
6582 void test_parseLibraryIdentifier_multiple() { 6580 void test_parseLibraryIdentifier_multiple() {
6583 String name = "a.b.c"; 6581 String name = "a.b.c";
6584 LibraryIdentifier identifier = ParserTestCase.parse4("parseLibraryIdentifier ", name, []); 6582 LibraryIdentifier identifier = ParserTestCase.parse4("parseLibraryIdentifier ", name);
6585 expect(identifier.name, name); 6583 expect(identifier.name, name);
6586 } 6584 }
6587 6585
6588 void test_parseLibraryIdentifier_single() { 6586 void test_parseLibraryIdentifier_single() {
6589 String name = "a"; 6587 String name = "a";
6590 LibraryIdentifier identifier = ParserTestCase.parse4("parseLibraryIdentifier ", name, []); 6588 LibraryIdentifier identifier = ParserTestCase.parse4("parseLibraryIdentifier ", name);
6591 expect(identifier.name, name); 6589 expect(identifier.name, name);
6592 } 6590 }
6593 6591
6594 void test_parseListLiteral_empty_oneToken() { 6592 void test_parseListLiteral_empty_oneToken() {
6595 Token token = TokenFactory.tokenFromKeyword(Keyword.CONST); 6593 Token token = TokenFactory.tokenFromKeyword(Keyword.CONST);
6596 TypeArgumentList typeArguments = null; 6594 TypeArgumentList typeArguments = null;
6597 ListLiteral literal = ParserTestCase.parse("parseListLiteral", <Object> [tok en, typeArguments], "[]"); 6595 ListLiteral literal = ParserTestCase.parse("parseListLiteral", <Object> [tok en, typeArguments], "[]");
6598 expect(literal.constKeyword, token); 6596 expect(literal.constKeyword, token);
6599 expect(literal.typeArguments, typeArguments); 6597 expect(literal.typeArguments, typeArguments);
6600 expect(literal.leftBracket, isNotNull); 6598 expect(literal.leftBracket, isNotNull);
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
6661 void test_parseListOrMapLiteral_map_type() { 6659 void test_parseListOrMapLiteral_map_type() {
6662 MapLiteral literal = ParserTestCase.parse("parseListOrMapLiteral", <Object> [null], "<String, int> {'1' : 1}"); 6660 MapLiteral literal = ParserTestCase.parse("parseListOrMapLiteral", <Object> [null], "<String, int> {'1' : 1}");
6663 expect(literal.constKeyword, isNull); 6661 expect(literal.constKeyword, isNull);
6664 expect(literal.typeArguments, isNotNull); 6662 expect(literal.typeArguments, isNotNull);
6665 expect(literal.leftBracket, isNotNull); 6663 expect(literal.leftBracket, isNotNull);
6666 expect(literal.entries, hasLength(1)); 6664 expect(literal.entries, hasLength(1));
6667 expect(literal.rightBracket, isNotNull); 6665 expect(literal.rightBracket, isNotNull);
6668 } 6666 }
6669 6667
6670 void test_parseLogicalAndExpression() { 6668 void test_parseLogicalAndExpression() {
6671 BinaryExpression expression = ParserTestCase.parse4("parseLogicalAndExpressi on", "x && y", []); 6669 BinaryExpression expression = ParserTestCase.parse4("parseLogicalAndExpressi on", "x && y");
6672 expect(expression.leftOperand, isNotNull); 6670 expect(expression.leftOperand, isNotNull);
6673 expect(expression.operator, isNotNull); 6671 expect(expression.operator, isNotNull);
6674 expect(expression.operator.type, TokenType.AMPERSAND_AMPERSAND); 6672 expect(expression.operator.type, TokenType.AMPERSAND_AMPERSAND);
6675 expect(expression.rightOperand, isNotNull); 6673 expect(expression.rightOperand, isNotNull);
6676 } 6674 }
6677 6675
6678 void test_parseLogicalOrExpression() { 6676 void test_parseLogicalOrExpression() {
6679 BinaryExpression expression = ParserTestCase.parse4("parseLogicalOrExpressio n", "x || y", []); 6677 BinaryExpression expression = ParserTestCase.parse4("parseLogicalOrExpressio n", "x || y");
6680 expect(expression.leftOperand, isNotNull); 6678 expect(expression.leftOperand, isNotNull);
6681 expect(expression.operator, isNotNull); 6679 expect(expression.operator, isNotNull);
6682 expect(expression.operator.type, TokenType.BAR_BAR); 6680 expect(expression.operator.type, TokenType.BAR_BAR);
6683 expect(expression.rightOperand, isNotNull); 6681 expect(expression.rightOperand, isNotNull);
6684 } 6682 }
6685 6683
6686 void test_parseMapLiteral_empty() { 6684 void test_parseMapLiteral_empty() {
6687 Token token = TokenFactory.tokenFromKeyword(Keyword.CONST); 6685 Token token = TokenFactory.tokenFromKeyword(Keyword.CONST);
6688 TypeArgumentList typeArguments = AstFactory.typeArgumentList([ 6686 TypeArgumentList typeArguments = AstFactory.typeArgumentList([
6689 AstFactory.typeName4("String", []), 6687 AstFactory.typeName4("String"),
6690 AstFactory.typeName4("int", [])]); 6688 AstFactory.typeName4("int")]);
6691 MapLiteral literal = ParserTestCase.parse("parseMapLiteral", <Object> [token , typeArguments], "{}"); 6689 MapLiteral literal = ParserTestCase.parse("parseMapLiteral", <Object> [token , typeArguments], "{}");
6692 expect(literal.constKeyword, token); 6690 expect(literal.constKeyword, token);
6693 expect(literal.typeArguments, typeArguments); 6691 expect(literal.typeArguments, typeArguments);
6694 expect(literal.leftBracket, isNotNull); 6692 expect(literal.leftBracket, isNotNull);
6695 expect(literal.entries, hasLength(0)); 6693 expect(literal.entries, hasLength(0));
6696 expect(literal.rightBracket, isNotNull); 6694 expect(literal.rightBracket, isNotNull);
6697 } 6695 }
6698 6696
6699 void test_parseMapLiteral_multiple() { 6697 void test_parseMapLiteral_multiple() {
6700 MapLiteral literal = ParserTestCase.parse("parseMapLiteral", <Object> [null, null], "{'a' : b, 'x' : y}"); 6698 MapLiteral literal = ParserTestCase.parse("parseMapLiteral", <Object> [null, null], "{'a' : b, 'x' : y}");
6701 expect(literal.leftBracket, isNotNull); 6699 expect(literal.leftBracket, isNotNull);
6702 expect(literal.entries, hasLength(2)); 6700 expect(literal.entries, hasLength(2));
6703 expect(literal.rightBracket, isNotNull); 6701 expect(literal.rightBracket, isNotNull);
6704 } 6702 }
6705 6703
6706 void test_parseMapLiteral_single() { 6704 void test_parseMapLiteral_single() {
6707 MapLiteral literal = ParserTestCase.parse("parseMapLiteral", <Object> [null, null], "{'x' : y}"); 6705 MapLiteral literal = ParserTestCase.parse("parseMapLiteral", <Object> [null, null], "{'x' : y}");
6708 expect(literal.leftBracket, isNotNull); 6706 expect(literal.leftBracket, isNotNull);
6709 expect(literal.entries, hasLength(1)); 6707 expect(literal.entries, hasLength(1));
6710 expect(literal.rightBracket, isNotNull); 6708 expect(literal.rightBracket, isNotNull);
6711 } 6709 }
6712 6710
6713 void test_parseMapLiteralEntry_complex() { 6711 void test_parseMapLiteralEntry_complex() {
6714 MapLiteralEntry entry = ParserTestCase.parse4("parseMapLiteralEntry", "2 + 2 : y", []); 6712 MapLiteralEntry entry = ParserTestCase.parse4("parseMapLiteralEntry", "2 + 2 : y");
6715 expect(entry.key, isNotNull); 6713 expect(entry.key, isNotNull);
6716 expect(entry.separator, isNotNull); 6714 expect(entry.separator, isNotNull);
6717 expect(entry.value, isNotNull); 6715 expect(entry.value, isNotNull);
6718 } 6716 }
6719 6717
6720 void test_parseMapLiteralEntry_int() { 6718 void test_parseMapLiteralEntry_int() {
6721 MapLiteralEntry entry = ParserTestCase.parse4("parseMapLiteralEntry", "0 : y ", []); 6719 MapLiteralEntry entry = ParserTestCase.parse4("parseMapLiteralEntry", "0 : y ");
6722 expect(entry.key, isNotNull); 6720 expect(entry.key, isNotNull);
6723 expect(entry.separator, isNotNull); 6721 expect(entry.separator, isNotNull);
6724 expect(entry.value, isNotNull); 6722 expect(entry.value, isNotNull);
6725 } 6723 }
6726 6724
6727 void test_parseMapLiteralEntry_string() { 6725 void test_parseMapLiteralEntry_string() {
6728 MapLiteralEntry entry = ParserTestCase.parse4("parseMapLiteralEntry", "'x' : y", []); 6726 MapLiteralEntry entry = ParserTestCase.parse4("parseMapLiteralEntry", "'x' : y");
6729 expect(entry.key, isNotNull); 6727 expect(entry.key, isNotNull);
6730 expect(entry.separator, isNotNull); 6728 expect(entry.separator, isNotNull);
6731 expect(entry.value, isNotNull); 6729 expect(entry.value, isNotNull);
6732 } 6730 }
6733 6731
6734 void test_parseModifiers_abstract() { 6732 void test_parseModifiers_abstract() {
6735 Modifiers modifiers = ParserTestCase.parse4("parseModifiers", "abstract A", []); 6733 Modifiers modifiers = ParserTestCase.parse4("parseModifiers", "abstract A");
6736 expect(modifiers.abstractKeyword, isNotNull); 6734 expect(modifiers.abstractKeyword, isNotNull);
6737 } 6735 }
6738 6736
6739 void test_parseModifiers_const() { 6737 void test_parseModifiers_const() {
6740 Modifiers modifiers = ParserTestCase.parse4("parseModifiers", "const A", []) ; 6738 Modifiers modifiers = ParserTestCase.parse4("parseModifiers", "const A");
6741 expect(modifiers.constKeyword, isNotNull); 6739 expect(modifiers.constKeyword, isNotNull);
6742 } 6740 }
6743 6741
6744 void test_parseModifiers_external() { 6742 void test_parseModifiers_external() {
6745 Modifiers modifiers = ParserTestCase.parse4("parseModifiers", "external A", []); 6743 Modifiers modifiers = ParserTestCase.parse4("parseModifiers", "external A");
6746 expect(modifiers.externalKeyword, isNotNull); 6744 expect(modifiers.externalKeyword, isNotNull);
6747 } 6745 }
6748 6746
6749 void test_parseModifiers_factory() { 6747 void test_parseModifiers_factory() {
6750 Modifiers modifiers = ParserTestCase.parse4("parseModifiers", "factory A", [ ]); 6748 Modifiers modifiers = ParserTestCase.parse4("parseModifiers", "factory A");
6751 expect(modifiers.factoryKeyword, isNotNull); 6749 expect(modifiers.factoryKeyword, isNotNull);
6752 } 6750 }
6753 6751
6754 void test_parseModifiers_final() { 6752 void test_parseModifiers_final() {
6755 Modifiers modifiers = ParserTestCase.parse4("parseModifiers", "final A", []) ; 6753 Modifiers modifiers = ParserTestCase.parse4("parseModifiers", "final A");
6756 expect(modifiers.finalKeyword, isNotNull); 6754 expect(modifiers.finalKeyword, isNotNull);
6757 } 6755 }
6758 6756
6759 void test_parseModifiers_static() { 6757 void test_parseModifiers_static() {
6760 Modifiers modifiers = ParserTestCase.parse4("parseModifiers", "static A", [] ); 6758 Modifiers modifiers = ParserTestCase.parse4("parseModifiers", "static A");
6761 expect(modifiers.staticKeyword, isNotNull); 6759 expect(modifiers.staticKeyword, isNotNull);
6762 } 6760 }
6763 6761
6764 void test_parseModifiers_var() { 6762 void test_parseModifiers_var() {
6765 Modifiers modifiers = ParserTestCase.parse4("parseModifiers", "var A", []); 6763 Modifiers modifiers = ParserTestCase.parse4("parseModifiers", "var A");
6766 expect(modifiers.varKeyword, isNotNull); 6764 expect(modifiers.varKeyword, isNotNull);
6767 } 6765 }
6768 6766
6769 void test_parseMultiplicativeExpression_normal() { 6767 void test_parseMultiplicativeExpression_normal() {
6770 BinaryExpression expression = ParserTestCase.parse4("parseMultiplicativeExpr ession", "x * y", []); 6768 BinaryExpression expression = ParserTestCase.parse4("parseMultiplicativeExpr ession", "x * y");
6771 expect(expression.leftOperand, isNotNull); 6769 expect(expression.leftOperand, isNotNull);
6772 expect(expression.operator, isNotNull); 6770 expect(expression.operator, isNotNull);
6773 expect(expression.operator.type, TokenType.STAR); 6771 expect(expression.operator.type, TokenType.STAR);
6774 expect(expression.rightOperand, isNotNull); 6772 expect(expression.rightOperand, isNotNull);
6775 } 6773 }
6776 6774
6777 void test_parseMultiplicativeExpression_super() { 6775 void test_parseMultiplicativeExpression_super() {
6778 BinaryExpression expression = ParserTestCase.parse4("parseMultiplicativeExpr ession", "super * y", []); 6776 BinaryExpression expression = ParserTestCase.parse4("parseMultiplicativeExpr ession", "super * y");
6779 EngineTestCase.assertInstanceOf((obj) => obj is SuperExpression, SuperExpres sion, expression.leftOperand); 6777 EngineTestCase.assertInstanceOf((obj) => obj is SuperExpression, SuperExpres sion, expression.leftOperand);
6780 expect(expression.operator, isNotNull); 6778 expect(expression.operator, isNotNull);
6781 expect(expression.operator.type, TokenType.STAR); 6779 expect(expression.operator.type, TokenType.STAR);
6782 expect(expression.rightOperand, isNotNull); 6780 expect(expression.rightOperand, isNotNull);
6783 } 6781 }
6784 6782
6785 void test_parseNewExpression() { 6783 void test_parseNewExpression() {
6786 InstanceCreationExpression expression = ParserTestCase.parse4("parseNewExpre ssion", "new A()", []); 6784 InstanceCreationExpression expression = ParserTestCase.parse4("parseNewExpre ssion", "new A()");
6787 expect(expression.keyword, isNotNull); 6785 expect(expression.keyword, isNotNull);
6788 ConstructorName name = expression.constructorName; 6786 ConstructorName name = expression.constructorName;
6789 expect(name, isNotNull); 6787 expect(name, isNotNull);
6790 expect(name.type, isNotNull); 6788 expect(name.type, isNotNull);
6791 expect(name.period, isNull); 6789 expect(name.period, isNull);
6792 expect(name.name, isNull); 6790 expect(name.name, isNull);
6793 expect(expression.argumentList, isNotNull); 6791 expect(expression.argumentList, isNotNull);
6794 } 6792 }
6795 6793
6796 void test_parseNonLabeledStatement_const_list_empty() { 6794 void test_parseNonLabeledStatement_const_list_empty() {
6797 ExpressionStatement statement = ParserTestCase.parse4("parseNonLabeledStatem ent", "const [];", []); 6795 ExpressionStatement statement = ParserTestCase.parse4("parseNonLabeledStatem ent", "const [];");
6798 expect(statement.expression, isNotNull); 6796 expect(statement.expression, isNotNull);
6799 } 6797 }
6800 6798
6801 void test_parseNonLabeledStatement_const_list_nonEmpty() { 6799 void test_parseNonLabeledStatement_const_list_nonEmpty() {
6802 ExpressionStatement statement = ParserTestCase.parse4("parseNonLabeledStatem ent", "const [1, 2];", []); 6800 ExpressionStatement statement = ParserTestCase.parse4("parseNonLabeledStatem ent", "const [1, 2];");
6803 expect(statement.expression, isNotNull); 6801 expect(statement.expression, isNotNull);
6804 } 6802 }
6805 6803
6806 void test_parseNonLabeledStatement_const_map_empty() { 6804 void test_parseNonLabeledStatement_const_map_empty() {
6807 ExpressionStatement statement = ParserTestCase.parse4("parseNonLabeledStatem ent", "const {};", []); 6805 ExpressionStatement statement = ParserTestCase.parse4("parseNonLabeledStatem ent", "const {};");
6808 expect(statement.expression, isNotNull); 6806 expect(statement.expression, isNotNull);
6809 } 6807 }
6810 6808
6811 void test_parseNonLabeledStatement_const_map_nonEmpty() { 6809 void test_parseNonLabeledStatement_const_map_nonEmpty() {
6812 // TODO(brianwilkerson) Implement more tests for this method. 6810 // TODO(brianwilkerson) Implement more tests for this method.
6813 ExpressionStatement statement = ParserTestCase.parse4("parseNonLabeledStatem ent", "const {'a' : 1};", []); 6811 ExpressionStatement statement = ParserTestCase.parse4("parseNonLabeledStatem ent", "const {'a' : 1};");
6814 expect(statement.expression, isNotNull); 6812 expect(statement.expression, isNotNull);
6815 } 6813 }
6816 6814
6817 void test_parseNonLabeledStatement_const_object() { 6815 void test_parseNonLabeledStatement_const_object() {
6818 ExpressionStatement statement = ParserTestCase.parse4("parseNonLabeledStatem ent", "const A();", []); 6816 ExpressionStatement statement = ParserTestCase.parse4("parseNonLabeledStatem ent", "const A();");
6819 expect(statement.expression, isNotNull); 6817 expect(statement.expression, isNotNull);
6820 } 6818 }
6821 6819
6822 void test_parseNonLabeledStatement_const_object_named_typeParameters() { 6820 void test_parseNonLabeledStatement_const_object_named_typeParameters() {
6823 ExpressionStatement statement = ParserTestCase.parse4("parseNonLabeledStatem ent", "const A<B>.c();", []); 6821 ExpressionStatement statement = ParserTestCase.parse4("parseNonLabeledStatem ent", "const A<B>.c();");
6824 expect(statement.expression, isNotNull); 6822 expect(statement.expression, isNotNull);
6825 } 6823 }
6826 6824
6827 void test_parseNonLabeledStatement_constructorInvocation() { 6825 void test_parseNonLabeledStatement_constructorInvocation() {
6828 ExpressionStatement statement = ParserTestCase.parse4("parseNonLabeledStatem ent", "new C().m();", []); 6826 ExpressionStatement statement = ParserTestCase.parse4("parseNonLabeledStatem ent", "new C().m();");
6829 expect(statement.expression, isNotNull); 6827 expect(statement.expression, isNotNull);
6830 } 6828 }
6831 6829
6832 void test_parseNonLabeledStatement_false() { 6830 void test_parseNonLabeledStatement_false() {
6833 ExpressionStatement statement = ParserTestCase.parse4("parseNonLabeledStatem ent", "false;", []); 6831 ExpressionStatement statement = ParserTestCase.parse4("parseNonLabeledStatem ent", "false;");
6834 expect(statement.expression, isNotNull); 6832 expect(statement.expression, isNotNull);
6835 } 6833 }
6836 6834
6837 void test_parseNonLabeledStatement_functionDeclaration() { 6835 void test_parseNonLabeledStatement_functionDeclaration() {
6838 ParserTestCase.parse4("parseNonLabeledStatement", "f() {};", []); 6836 ParserTestCase.parse4("parseNonLabeledStatement", "f() {};");
6839 } 6837 }
6840 6838
6841 void test_parseNonLabeledStatement_functionDeclaration_arguments() { 6839 void test_parseNonLabeledStatement_functionDeclaration_arguments() {
6842 ParserTestCase.parse4("parseNonLabeledStatement", "f(void g()) {};", []); 6840 ParserTestCase.parse4("parseNonLabeledStatement", "f(void g()) {};");
6843 } 6841 }
6844 6842
6845 void test_parseNonLabeledStatement_functionExpressionIndex() { 6843 void test_parseNonLabeledStatement_functionExpressionIndex() {
6846 ParserTestCase.parse4("parseNonLabeledStatement", "() {}[0] = null;", []); 6844 ParserTestCase.parse4("parseNonLabeledStatement", "() {}[0] = null;");
6847 } 6845 }
6848 6846
6849 void test_parseNonLabeledStatement_functionInvocation() { 6847 void test_parseNonLabeledStatement_functionInvocation() {
6850 ExpressionStatement statement = ParserTestCase.parse4("parseNonLabeledStatem ent", "f();", []); 6848 ExpressionStatement statement = ParserTestCase.parse4("parseNonLabeledStatem ent", "f();");
6851 expect(statement.expression, isNotNull); 6849 expect(statement.expression, isNotNull);
6852 } 6850 }
6853 6851
6854 void test_parseNonLabeledStatement_invokeFunctionExpression() { 6852 void test_parseNonLabeledStatement_invokeFunctionExpression() {
6855 ExpressionStatement statement = ParserTestCase.parse4("parseNonLabeledStatem ent", "(a) {return a + a;} (3);", []); 6853 ExpressionStatement statement = ParserTestCase.parse4("parseNonLabeledStatem ent", "(a) {return a + a;} (3);");
6856 EngineTestCase.assertInstanceOf((obj) => obj is FunctionExpressionInvocation , FunctionExpressionInvocation, statement.expression); 6854 EngineTestCase.assertInstanceOf((obj) => obj is FunctionExpressionInvocation , FunctionExpressionInvocation, statement.expression);
6857 FunctionExpressionInvocation invocation = statement.expression as FunctionEx pressionInvocation; 6855 FunctionExpressionInvocation invocation = statement.expression as FunctionEx pressionInvocation;
6858 EngineTestCase.assertInstanceOf((obj) => obj is FunctionExpression, Function Expression, invocation.function); 6856 EngineTestCase.assertInstanceOf((obj) => obj is FunctionExpression, Function Expression, invocation.function);
6859 FunctionExpression expression = invocation.function as FunctionExpression; 6857 FunctionExpression expression = invocation.function as FunctionExpression;
6860 expect(expression.parameters, isNotNull); 6858 expect(expression.parameters, isNotNull);
6861 expect(expression.body, isNotNull); 6859 expect(expression.body, isNotNull);
6862 ArgumentList list = invocation.argumentList; 6860 ArgumentList list = invocation.argumentList;
6863 expect(list, isNotNull); 6861 expect(list, isNotNull);
6864 expect(list.arguments, hasLength(1)); 6862 expect(list.arguments, hasLength(1));
6865 } 6863 }
6866 6864
6867 void test_parseNonLabeledStatement_null() { 6865 void test_parseNonLabeledStatement_null() {
6868 ExpressionStatement statement = ParserTestCase.parse4("parseNonLabeledStatem ent", "null;", []); 6866 ExpressionStatement statement = ParserTestCase.parse4("parseNonLabeledStatem ent", "null;");
6869 expect(statement.expression, isNotNull); 6867 expect(statement.expression, isNotNull);
6870 } 6868 }
6871 6869
6872 void test_parseNonLabeledStatement_startingWithBuiltInIdentifier() { 6870 void test_parseNonLabeledStatement_startingWithBuiltInIdentifier() {
6873 ExpressionStatement statement = ParserTestCase.parse4("parseNonLabeledStatem ent", "library.getName();", []); 6871 ExpressionStatement statement = ParserTestCase.parse4("parseNonLabeledStatem ent", "library.getName();");
6874 expect(statement.expression, isNotNull); 6872 expect(statement.expression, isNotNull);
6875 } 6873 }
6876 6874
6877 void test_parseNonLabeledStatement_true() { 6875 void test_parseNonLabeledStatement_true() {
6878 ExpressionStatement statement = ParserTestCase.parse4("parseNonLabeledStatem ent", "true;", []); 6876 ExpressionStatement statement = ParserTestCase.parse4("parseNonLabeledStatem ent", "true;");
6879 expect(statement.expression, isNotNull); 6877 expect(statement.expression, isNotNull);
6880 } 6878 }
6881 6879
6882 void test_parseNonLabeledStatement_typeCast() { 6880 void test_parseNonLabeledStatement_typeCast() {
6883 ExpressionStatement statement = ParserTestCase.parse4("parseNonLabeledStatem ent", "double.NAN as num;", []); 6881 ExpressionStatement statement = ParserTestCase.parse4("parseNonLabeledStatem ent", "double.NAN as num;");
6884 expect(statement.expression, isNotNull); 6882 expect(statement.expression, isNotNull);
6885 } 6883 }
6886 6884
6887 void test_parseNormalFormalParameter_field_const_noType() { 6885 void test_parseNormalFormalParameter_field_const_noType() {
6888 FieldFormalParameter parameter = ParserTestCase.parse4("parseNormalFormalPar ameter", "const this.a)", []); 6886 FieldFormalParameter parameter = ParserTestCase.parse4("parseNormalFormalPar ameter", "const this.a)");
6889 expect(parameter.keyword, isNotNull); 6887 expect(parameter.keyword, isNotNull);
6890 expect(parameter.type, isNull); 6888 expect(parameter.type, isNull);
6891 expect(parameter.identifier, isNotNull); 6889 expect(parameter.identifier, isNotNull);
6892 expect(parameter.parameters, isNull); 6890 expect(parameter.parameters, isNull);
6893 } 6891 }
6894 6892
6895 void test_parseNormalFormalParameter_field_const_type() { 6893 void test_parseNormalFormalParameter_field_const_type() {
6896 FieldFormalParameter parameter = ParserTestCase.parse4("parseNormalFormalPar ameter", "const A this.a)", []); 6894 FieldFormalParameter parameter = ParserTestCase.parse4("parseNormalFormalPar ameter", "const A this.a)");
6897 expect(parameter.keyword, isNotNull); 6895 expect(parameter.keyword, isNotNull);
6898 expect(parameter.type, isNotNull); 6896 expect(parameter.type, isNotNull);
6899 expect(parameter.identifier, isNotNull); 6897 expect(parameter.identifier, isNotNull);
6900 expect(parameter.parameters, isNull); 6898 expect(parameter.parameters, isNull);
6901 } 6899 }
6902 6900
6903 void test_parseNormalFormalParameter_field_final_noType() { 6901 void test_parseNormalFormalParameter_field_final_noType() {
6904 FieldFormalParameter parameter = ParserTestCase.parse4("parseNormalFormalPar ameter", "final this.a)", []); 6902 FieldFormalParameter parameter = ParserTestCase.parse4("parseNormalFormalPar ameter", "final this.a)");
6905 expect(parameter.keyword, isNotNull); 6903 expect(parameter.keyword, isNotNull);
6906 expect(parameter.type, isNull); 6904 expect(parameter.type, isNull);
6907 expect(parameter.identifier, isNotNull); 6905 expect(parameter.identifier, isNotNull);
6908 expect(parameter.parameters, isNull); 6906 expect(parameter.parameters, isNull);
6909 } 6907 }
6910 6908
6911 void test_parseNormalFormalParameter_field_final_type() { 6909 void test_parseNormalFormalParameter_field_final_type() {
6912 FieldFormalParameter parameter = ParserTestCase.parse4("parseNormalFormalPar ameter", "final A this.a)", []); 6910 FieldFormalParameter parameter = ParserTestCase.parse4("parseNormalFormalPar ameter", "final A this.a)");
6913 expect(parameter.keyword, isNotNull); 6911 expect(parameter.keyword, isNotNull);
6914 expect(parameter.type, isNotNull); 6912 expect(parameter.type, isNotNull);
6915 expect(parameter.identifier, isNotNull); 6913 expect(parameter.identifier, isNotNull);
6916 expect(parameter.parameters, isNull); 6914 expect(parameter.parameters, isNull);
6917 } 6915 }
6918 6916
6919 void test_parseNormalFormalParameter_field_function_nested() { 6917 void test_parseNormalFormalParameter_field_function_nested() {
6920 FieldFormalParameter parameter = ParserTestCase.parse4("parseNormalFormalPar ameter", "this.a(B b))", []); 6918 FieldFormalParameter parameter = ParserTestCase.parse4("parseNormalFormalPar ameter", "this.a(B b))");
6921 expect(parameter.keyword, isNull); 6919 expect(parameter.keyword, isNull);
6922 expect(parameter.type, isNull); 6920 expect(parameter.type, isNull);
6923 expect(parameter.identifier, isNotNull); 6921 expect(parameter.identifier, isNotNull);
6924 FormalParameterList parameterList = parameter.parameters; 6922 FormalParameterList parameterList = parameter.parameters;
6925 expect(parameterList, isNotNull); 6923 expect(parameterList, isNotNull);
6926 expect(parameterList.parameters, hasLength(1)); 6924 expect(parameterList.parameters, hasLength(1));
6927 } 6925 }
6928 6926
6929 void test_parseNormalFormalParameter_field_function_noNested() { 6927 void test_parseNormalFormalParameter_field_function_noNested() {
6930 FieldFormalParameter parameter = ParserTestCase.parse4("parseNormalFormalPar ameter", "this.a())", []); 6928 FieldFormalParameter parameter = ParserTestCase.parse4("parseNormalFormalPar ameter", "this.a())");
6931 expect(parameter.keyword, isNull); 6929 expect(parameter.keyword, isNull);
6932 expect(parameter.type, isNull); 6930 expect(parameter.type, isNull);
6933 expect(parameter.identifier, isNotNull); 6931 expect(parameter.identifier, isNotNull);
6934 FormalParameterList parameterList = parameter.parameters; 6932 FormalParameterList parameterList = parameter.parameters;
6935 expect(parameterList, isNotNull); 6933 expect(parameterList, isNotNull);
6936 expect(parameterList.parameters, hasLength(0)); 6934 expect(parameterList.parameters, hasLength(0));
6937 } 6935 }
6938 6936
6939 void test_parseNormalFormalParameter_field_noType() { 6937 void test_parseNormalFormalParameter_field_noType() {
6940 FieldFormalParameter parameter = ParserTestCase.parse4("parseNormalFormalPar ameter", "this.a)", []); 6938 FieldFormalParameter parameter = ParserTestCase.parse4("parseNormalFormalPar ameter", "this.a)");
6941 expect(parameter.keyword, isNull); 6939 expect(parameter.keyword, isNull);
6942 expect(parameter.type, isNull); 6940 expect(parameter.type, isNull);
6943 expect(parameter.identifier, isNotNull); 6941 expect(parameter.identifier, isNotNull);
6944 expect(parameter.parameters, isNull); 6942 expect(parameter.parameters, isNull);
6945 } 6943 }
6946 6944
6947 void test_parseNormalFormalParameter_field_type() { 6945 void test_parseNormalFormalParameter_field_type() {
6948 FieldFormalParameter parameter = ParserTestCase.parse4("parseNormalFormalPar ameter", "A this.a)", []); 6946 FieldFormalParameter parameter = ParserTestCase.parse4("parseNormalFormalPar ameter", "A this.a)");
6949 expect(parameter.keyword, isNull); 6947 expect(parameter.keyword, isNull);
6950 expect(parameter.type, isNotNull); 6948 expect(parameter.type, isNotNull);
6951 expect(parameter.identifier, isNotNull); 6949 expect(parameter.identifier, isNotNull);
6952 expect(parameter.parameters, isNull); 6950 expect(parameter.parameters, isNull);
6953 } 6951 }
6954 6952
6955 void test_parseNormalFormalParameter_field_var() { 6953 void test_parseNormalFormalParameter_field_var() {
6956 FieldFormalParameter parameter = ParserTestCase.parse4("parseNormalFormalPar ameter", "var this.a)", []); 6954 FieldFormalParameter parameter = ParserTestCase.parse4("parseNormalFormalPar ameter", "var this.a)");
6957 expect(parameter.keyword, isNotNull); 6955 expect(parameter.keyword, isNotNull);
6958 expect(parameter.type, isNull); 6956 expect(parameter.type, isNull);
6959 expect(parameter.identifier, isNotNull); 6957 expect(parameter.identifier, isNotNull);
6960 expect(parameter.parameters, isNull); 6958 expect(parameter.parameters, isNull);
6961 } 6959 }
6962 6960
6963 void test_parseNormalFormalParameter_function_noType() { 6961 void test_parseNormalFormalParameter_function_noType() {
6964 FunctionTypedFormalParameter parameter = ParserTestCase.parse4("parseNormalF ormalParameter", "a())", []); 6962 FunctionTypedFormalParameter parameter = ParserTestCase.parse4("parseNormalF ormalParameter", "a())");
6965 expect(parameter.returnType, isNull); 6963 expect(parameter.returnType, isNull);
6966 expect(parameter.identifier, isNotNull); 6964 expect(parameter.identifier, isNotNull);
6967 expect(parameter.parameters, isNotNull); 6965 expect(parameter.parameters, isNotNull);
6968 } 6966 }
6969 6967
6970 void test_parseNormalFormalParameter_function_type() { 6968 void test_parseNormalFormalParameter_function_type() {
6971 FunctionTypedFormalParameter parameter = ParserTestCase.parse4("parseNormalF ormalParameter", "A a())", []); 6969 FunctionTypedFormalParameter parameter = ParserTestCase.parse4("parseNormalF ormalParameter", "A a())");
6972 expect(parameter.returnType, isNotNull); 6970 expect(parameter.returnType, isNotNull);
6973 expect(parameter.identifier, isNotNull); 6971 expect(parameter.identifier, isNotNull);
6974 expect(parameter.parameters, isNotNull); 6972 expect(parameter.parameters, isNotNull);
6975 } 6973 }
6976 6974
6977 void test_parseNormalFormalParameter_function_void() { 6975 void test_parseNormalFormalParameter_function_void() {
6978 FunctionTypedFormalParameter parameter = ParserTestCase.parse4("parseNormalF ormalParameter", "void a())", []); 6976 FunctionTypedFormalParameter parameter = ParserTestCase.parse4("parseNormalF ormalParameter", "void a())");
6979 expect(parameter.returnType, isNotNull); 6977 expect(parameter.returnType, isNotNull);
6980 expect(parameter.identifier, isNotNull); 6978 expect(parameter.identifier, isNotNull);
6981 expect(parameter.parameters, isNotNull); 6979 expect(parameter.parameters, isNotNull);
6982 } 6980 }
6983 6981
6984 void test_parseNormalFormalParameter_simple_const_noType() { 6982 void test_parseNormalFormalParameter_simple_const_noType() {
6985 SimpleFormalParameter parameter = ParserTestCase.parse4("parseNormalFormalPa rameter", "const a)", []); 6983 SimpleFormalParameter parameter = ParserTestCase.parse4("parseNormalFormalPa rameter", "const a)");
6986 expect(parameter.keyword, isNotNull); 6984 expect(parameter.keyword, isNotNull);
6987 expect(parameter.type, isNull); 6985 expect(parameter.type, isNull);
6988 expect(parameter.identifier, isNotNull); 6986 expect(parameter.identifier, isNotNull);
6989 } 6987 }
6990 6988
6991 void test_parseNormalFormalParameter_simple_const_type() { 6989 void test_parseNormalFormalParameter_simple_const_type() {
6992 SimpleFormalParameter parameter = ParserTestCase.parse4("parseNormalFormalPa rameter", "const A a)", []); 6990 SimpleFormalParameter parameter = ParserTestCase.parse4("parseNormalFormalPa rameter", "const A a)");
6993 expect(parameter.keyword, isNotNull); 6991 expect(parameter.keyword, isNotNull);
6994 expect(parameter.type, isNotNull); 6992 expect(parameter.type, isNotNull);
6995 expect(parameter.identifier, isNotNull); 6993 expect(parameter.identifier, isNotNull);
6996 } 6994 }
6997 6995
6998 void test_parseNormalFormalParameter_simple_final_noType() { 6996 void test_parseNormalFormalParameter_simple_final_noType() {
6999 SimpleFormalParameter parameter = ParserTestCase.parse4("parseNormalFormalPa rameter", "final a)", []); 6997 SimpleFormalParameter parameter = ParserTestCase.parse4("parseNormalFormalPa rameter", "final a)");
7000 expect(parameter.keyword, isNotNull); 6998 expect(parameter.keyword, isNotNull);
7001 expect(parameter.type, isNull); 6999 expect(parameter.type, isNull);
7002 expect(parameter.identifier, isNotNull); 7000 expect(parameter.identifier, isNotNull);
7003 } 7001 }
7004 7002
7005 void test_parseNormalFormalParameter_simple_final_type() { 7003 void test_parseNormalFormalParameter_simple_final_type() {
7006 SimpleFormalParameter parameter = ParserTestCase.parse4("parseNormalFormalPa rameter", "final A a)", []); 7004 SimpleFormalParameter parameter = ParserTestCase.parse4("parseNormalFormalPa rameter", "final A a)");
7007 expect(parameter.keyword, isNotNull); 7005 expect(parameter.keyword, isNotNull);
7008 expect(parameter.type, isNotNull); 7006 expect(parameter.type, isNotNull);
7009 expect(parameter.identifier, isNotNull); 7007 expect(parameter.identifier, isNotNull);
7010 } 7008 }
7011 7009
7012 void test_parseNormalFormalParameter_simple_noType() { 7010 void test_parseNormalFormalParameter_simple_noType() {
7013 SimpleFormalParameter parameter = ParserTestCase.parse4("parseNormalFormalPa rameter", "a)", []); 7011 SimpleFormalParameter parameter = ParserTestCase.parse4("parseNormalFormalPa rameter", "a)");
7014 expect(parameter.keyword, isNull); 7012 expect(parameter.keyword, isNull);
7015 expect(parameter.type, isNull); 7013 expect(parameter.type, isNull);
7016 expect(parameter.identifier, isNotNull); 7014 expect(parameter.identifier, isNotNull);
7017 } 7015 }
7018 7016
7019 void test_parseNormalFormalParameter_simple_type() { 7017 void test_parseNormalFormalParameter_simple_type() {
7020 SimpleFormalParameter parameter = ParserTestCase.parse4("parseNormalFormalPa rameter", "A a)", []); 7018 SimpleFormalParameter parameter = ParserTestCase.parse4("parseNormalFormalPa rameter", "A a)");
7021 expect(parameter.keyword, isNull); 7019 expect(parameter.keyword, isNull);
7022 expect(parameter.type, isNotNull); 7020 expect(parameter.type, isNotNull);
7023 expect(parameter.identifier, isNotNull); 7021 expect(parameter.identifier, isNotNull);
7024 } 7022 }
7025 7023
7026 void test_parseOperator() { 7024 void test_parseOperator() {
7027 Comment comment = Comment.createDocumentationComment(new List<Token>(0)); 7025 Comment comment = Comment.createDocumentationComment(new List<Token>(0));
7028 TypeName returnType = new TypeName(new SimpleIdentifier(null), null); 7026 TypeName returnType = new TypeName(new SimpleIdentifier(null), null);
7029 MethodDeclaration method = ParserTestCase.parse("parseOperator", <Object> [c ommentAndMetadata(comment, []), null, returnType], "operator +(A a);"); 7027 MethodDeclaration method = ParserTestCase.parse("parseOperator", <Object> [c ommentAndMetadata(comment), null, returnType], "operator +(A a);");
7030 expect(method.body, isNotNull); 7028 expect(method.body, isNotNull);
7031 expect(method.documentationComment, comment); 7029 expect(method.documentationComment, comment);
7032 expect(method.externalKeyword, isNull); 7030 expect(method.externalKeyword, isNull);
7033 expect(method.modifierKeyword, isNull); 7031 expect(method.modifierKeyword, isNull);
7034 expect(method.name, isNotNull); 7032 expect(method.name, isNotNull);
7035 expect(method.operatorKeyword, isNotNull); 7033 expect(method.operatorKeyword, isNotNull);
7036 expect(method.parameters, isNotNull); 7034 expect(method.parameters, isNotNull);
7037 expect(method.propertyKeyword, isNull); 7035 expect(method.propertyKeyword, isNull);
7038 expect(method.returnType, returnType); 7036 expect(method.returnType, returnType);
7039 } 7037 }
(...skipping 11 matching lines...) Expand all
7051 7049
7052 void test_parsePartDirective_partOf() { 7050 void test_parsePartDirective_partOf() {
7053 PartOfDirective directive = ParserTestCase.parse("parsePartDirective", <Obje ct> [emptyCommentAndMetadata()], "part of l;"); 7051 PartOfDirective directive = ParserTestCase.parse("parsePartDirective", <Obje ct> [emptyCommentAndMetadata()], "part of l;");
7054 expect(directive.partToken, isNotNull); 7052 expect(directive.partToken, isNotNull);
7055 expect(directive.ofToken, isNotNull); 7053 expect(directive.ofToken, isNotNull);
7056 expect(directive.libraryName, isNotNull); 7054 expect(directive.libraryName, isNotNull);
7057 expect(directive.semicolon, isNotNull); 7055 expect(directive.semicolon, isNotNull);
7058 } 7056 }
7059 7057
7060 void test_parsePostfixExpression_decrement() { 7058 void test_parsePostfixExpression_decrement() {
7061 PostfixExpression expression = ParserTestCase.parse4("parsePostfixExpression ", "i--", []); 7059 PostfixExpression expression = ParserTestCase.parse4("parsePostfixExpression ", "i--");
7062 expect(expression.operand, isNotNull); 7060 expect(expression.operand, isNotNull);
7063 expect(expression.operator, isNotNull); 7061 expect(expression.operator, isNotNull);
7064 expect(expression.operator.type, TokenType.MINUS_MINUS); 7062 expect(expression.operator.type, TokenType.MINUS_MINUS);
7065 } 7063 }
7066 7064
7067 void test_parsePostfixExpression_increment() { 7065 void test_parsePostfixExpression_increment() {
7068 PostfixExpression expression = ParserTestCase.parse4("parsePostfixExpression ", "i++", []); 7066 PostfixExpression expression = ParserTestCase.parse4("parsePostfixExpression ", "i++");
7069 expect(expression.operand, isNotNull); 7067 expect(expression.operand, isNotNull);
7070 expect(expression.operator, isNotNull); 7068 expect(expression.operator, isNotNull);
7071 expect(expression.operator.type, TokenType.PLUS_PLUS); 7069 expect(expression.operator.type, TokenType.PLUS_PLUS);
7072 } 7070 }
7073 7071
7074 void test_parsePostfixExpression_none_indexExpression() { 7072 void test_parsePostfixExpression_none_indexExpression() {
7075 IndexExpression expression = ParserTestCase.parse4("parsePostfixExpression", "a[0]", []); 7073 IndexExpression expression = ParserTestCase.parse4("parsePostfixExpression", "a[0]");
7076 expect(expression.target, isNotNull); 7074 expect(expression.target, isNotNull);
7077 expect(expression.index, isNotNull); 7075 expect(expression.index, isNotNull);
7078 } 7076 }
7079 7077
7080 void test_parsePostfixExpression_none_methodInvocation() { 7078 void test_parsePostfixExpression_none_methodInvocation() {
7081 MethodInvocation expression = ParserTestCase.parse4("parsePostfixExpression" , "a.m()", []); 7079 MethodInvocation expression = ParserTestCase.parse4("parsePostfixExpression" , "a.m()");
7082 expect(expression.target, isNotNull); 7080 expect(expression.target, isNotNull);
7083 expect(expression.methodName, isNotNull); 7081 expect(expression.methodName, isNotNull);
7084 expect(expression.argumentList, isNotNull); 7082 expect(expression.argumentList, isNotNull);
7085 } 7083 }
7086 7084
7087 void test_parsePostfixExpression_none_propertyAccess() { 7085 void test_parsePostfixExpression_none_propertyAccess() {
7088 PrefixedIdentifier expression = ParserTestCase.parse4("parsePostfixExpressio n", "a.b", []); 7086 PrefixedIdentifier expression = ParserTestCase.parse4("parsePostfixExpressio n", "a.b");
7089 expect(expression.prefix, isNotNull); 7087 expect(expression.prefix, isNotNull);
7090 expect(expression.identifier, isNotNull); 7088 expect(expression.identifier, isNotNull);
7091 } 7089 }
7092 7090
7093 void test_parsePrefixedIdentifier_noPrefix() { 7091 void test_parsePrefixedIdentifier_noPrefix() {
7094 String lexeme = "bar"; 7092 String lexeme = "bar";
7095 SimpleIdentifier identifier = ParserTestCase.parse4("parsePrefixedIdentifier ", lexeme, []); 7093 SimpleIdentifier identifier = ParserTestCase.parse4("parsePrefixedIdentifier ", lexeme);
7096 expect(identifier.token, isNotNull); 7094 expect(identifier.token, isNotNull);
7097 expect(identifier.name, lexeme); 7095 expect(identifier.name, lexeme);
7098 } 7096 }
7099 7097
7100 void test_parsePrefixedIdentifier_prefix() { 7098 void test_parsePrefixedIdentifier_prefix() {
7101 String lexeme = "foo.bar"; 7099 String lexeme = "foo.bar";
7102 PrefixedIdentifier identifier = ParserTestCase.parse4("parsePrefixedIdentifi er", lexeme, []); 7100 PrefixedIdentifier identifier = ParserTestCase.parse4("parsePrefixedIdentifi er", lexeme);
7103 expect(identifier.prefix.name, "foo"); 7101 expect(identifier.prefix.name, "foo");
7104 expect(identifier.period, isNotNull); 7102 expect(identifier.period, isNotNull);
7105 expect(identifier.identifier.name, "bar"); 7103 expect(identifier.identifier.name, "bar");
7106 } 7104 }
7107 7105
7108 void test_parsePrimaryExpression_const() { 7106 void test_parsePrimaryExpression_const() {
7109 InstanceCreationExpression expression = ParserTestCase.parse4("parsePrimaryE xpression", "const A()", []); 7107 InstanceCreationExpression expression = ParserTestCase.parse4("parsePrimaryE xpression", "const A()");
7110 expect(expression, isNotNull); 7108 expect(expression, isNotNull);
7111 } 7109 }
7112 7110
7113 void test_parsePrimaryExpression_double() { 7111 void test_parsePrimaryExpression_double() {
7114 String doubleLiteral = "3.2e4"; 7112 String doubleLiteral = "3.2e4";
7115 DoubleLiteral literal = ParserTestCase.parse4("parsePrimaryExpression", doub leLiteral, []); 7113 DoubleLiteral literal = ParserTestCase.parse4("parsePrimaryExpression", doub leLiteral);
7116 expect(literal.literal, isNotNull); 7114 expect(literal.literal, isNotNull);
7117 expect(literal.value, double.parse(doubleLiteral)); 7115 expect(literal.value, double.parse(doubleLiteral));
7118 } 7116 }
7119 7117
7120 void test_parsePrimaryExpression_false() { 7118 void test_parsePrimaryExpression_false() {
7121 BooleanLiteral literal = ParserTestCase.parse4("parsePrimaryExpression", "fa lse", []); 7119 BooleanLiteral literal = ParserTestCase.parse4("parsePrimaryExpression", "fa lse");
7122 expect(literal.literal, isNotNull); 7120 expect(literal.literal, isNotNull);
7123 expect(literal.value, isFalse); 7121 expect(literal.value, isFalse);
7124 } 7122 }
7125 7123
7126 void test_parsePrimaryExpression_function_arguments() { 7124 void test_parsePrimaryExpression_function_arguments() {
7127 FunctionExpression expression = ParserTestCase.parse4("parsePrimaryExpressio n", "(int i) => i + 1", []); 7125 FunctionExpression expression = ParserTestCase.parse4("parsePrimaryExpressio n", "(int i) => i + 1");
7128 expect(expression.parameters, isNotNull); 7126 expect(expression.parameters, isNotNull);
7129 expect(expression.body, isNotNull); 7127 expect(expression.body, isNotNull);
7130 } 7128 }
7131 7129
7132 void test_parsePrimaryExpression_function_noArguments() { 7130 void test_parsePrimaryExpression_function_noArguments() {
7133 FunctionExpression expression = ParserTestCase.parse4("parsePrimaryExpressio n", "() => 42", []); 7131 FunctionExpression expression = ParserTestCase.parse4("parsePrimaryExpressio n", "() => 42");
7134 expect(expression.parameters, isNotNull); 7132 expect(expression.parameters, isNotNull);
7135 expect(expression.body, isNotNull); 7133 expect(expression.body, isNotNull);
7136 } 7134 }
7137 7135
7138 void test_parsePrimaryExpression_hex() { 7136 void test_parsePrimaryExpression_hex() {
7139 String hexLiteral = "3F"; 7137 String hexLiteral = "3F";
7140 IntegerLiteral literal = ParserTestCase.parse4("parsePrimaryExpression", "0x $hexLiteral", []); 7138 IntegerLiteral literal = ParserTestCase.parse4("parsePrimaryExpression", "0x $hexLiteral");
7141 expect(literal.literal, isNotNull); 7139 expect(literal.literal, isNotNull);
7142 expect(literal.value, int.parse(hexLiteral, radix: 16)); 7140 expect(literal.value, int.parse(hexLiteral, radix: 16));
7143 } 7141 }
7144 7142
7145 void test_parsePrimaryExpression_identifier() { 7143 void test_parsePrimaryExpression_identifier() {
7146 SimpleIdentifier identifier = ParserTestCase.parse4("parsePrimaryExpression" , "a", []); 7144 SimpleIdentifier identifier = ParserTestCase.parse4("parsePrimaryExpression" , "a");
7147 expect(identifier, isNotNull); 7145 expect(identifier, isNotNull);
7148 } 7146 }
7149 7147
7150 void test_parsePrimaryExpression_int() { 7148 void test_parsePrimaryExpression_int() {
7151 String intLiteral = "472"; 7149 String intLiteral = "472";
7152 IntegerLiteral literal = ParserTestCase.parse4("parsePrimaryExpression", int Literal, []); 7150 IntegerLiteral literal = ParserTestCase.parse4("parsePrimaryExpression", int Literal);
7153 expect(literal.literal, isNotNull); 7151 expect(literal.literal, isNotNull);
7154 expect(literal.value, int.parse(intLiteral)); 7152 expect(literal.value, int.parse(intLiteral));
7155 } 7153 }
7156 7154
7157 void test_parsePrimaryExpression_listLiteral() { 7155 void test_parsePrimaryExpression_listLiteral() {
7158 ListLiteral literal = ParserTestCase.parse4("parsePrimaryExpression", "[ ]", []); 7156 ListLiteral literal = ParserTestCase.parse4("parsePrimaryExpression", "[ ]") ;
7159 expect(literal, isNotNull); 7157 expect(literal, isNotNull);
7160 } 7158 }
7161 7159
7162 void test_parsePrimaryExpression_listLiteral_index() { 7160 void test_parsePrimaryExpression_listLiteral_index() {
7163 ListLiteral literal = ParserTestCase.parse4("parsePrimaryExpression", "[]", []); 7161 ListLiteral literal = ParserTestCase.parse4("parsePrimaryExpression", "[]");
7164 expect(literal, isNotNull); 7162 expect(literal, isNotNull);
7165 } 7163 }
7166 7164
7167 void test_parsePrimaryExpression_listLiteral_typed() { 7165 void test_parsePrimaryExpression_listLiteral_typed() {
7168 ListLiteral literal = ParserTestCase.parse4("parsePrimaryExpression", "<A>[ ]", []); 7166 ListLiteral literal = ParserTestCase.parse4("parsePrimaryExpression", "<A>[ ]");
7169 expect(literal.typeArguments, isNotNull); 7167 expect(literal.typeArguments, isNotNull);
7170 expect(literal.typeArguments.arguments, hasLength(1)); 7168 expect(literal.typeArguments.arguments, hasLength(1));
7171 } 7169 }
7172 7170
7173 void test_parsePrimaryExpression_mapLiteral() { 7171 void test_parsePrimaryExpression_mapLiteral() {
7174 MapLiteral literal = ParserTestCase.parse4("parsePrimaryExpression", "{}", [ ]); 7172 MapLiteral literal = ParserTestCase.parse4("parsePrimaryExpression", "{}");
7175 expect(literal, isNotNull); 7173 expect(literal, isNotNull);
7176 } 7174 }
7177 7175
7178 void test_parsePrimaryExpression_mapLiteral_typed() { 7176 void test_parsePrimaryExpression_mapLiteral_typed() {
7179 MapLiteral literal = ParserTestCase.parse4("parsePrimaryExpression", "<A, B> {}", []); 7177 MapLiteral literal = ParserTestCase.parse4("parsePrimaryExpression", "<A, B> {}");
7180 expect(literal.typeArguments, isNotNull); 7178 expect(literal.typeArguments, isNotNull);
7181 expect(literal.typeArguments.arguments, hasLength(2)); 7179 expect(literal.typeArguments.arguments, hasLength(2));
7182 } 7180 }
7183 7181
7184 void test_parsePrimaryExpression_new() { 7182 void test_parsePrimaryExpression_new() {
7185 InstanceCreationExpression expression = ParserTestCase.parse4("parsePrimaryE xpression", "new A()", []); 7183 InstanceCreationExpression expression = ParserTestCase.parse4("parsePrimaryE xpression", "new A()");
7186 expect(expression, isNotNull); 7184 expect(expression, isNotNull);
7187 } 7185 }
7188 7186
7189 void test_parsePrimaryExpression_null() { 7187 void test_parsePrimaryExpression_null() {
7190 NullLiteral literal = ParserTestCase.parse4("parsePrimaryExpression", "null" , []); 7188 NullLiteral literal = ParserTestCase.parse4("parsePrimaryExpression", "null" );
7191 expect(literal.literal, isNotNull); 7189 expect(literal.literal, isNotNull);
7192 } 7190 }
7193 7191
7194 void test_parsePrimaryExpression_parenthesized() { 7192 void test_parsePrimaryExpression_parenthesized() {
7195 ParenthesizedExpression expression = ParserTestCase.parse4("parsePrimaryExpr ession", "(x)", []); 7193 ParenthesizedExpression expression = ParserTestCase.parse4("parsePrimaryExpr ession", "(x)");
7196 expect(expression, isNotNull); 7194 expect(expression, isNotNull);
7197 } 7195 }
7198 7196
7199 void test_parsePrimaryExpression_string() { 7197 void test_parsePrimaryExpression_string() {
7200 SimpleStringLiteral literal = ParserTestCase.parse4("parsePrimaryExpression" , "\"string\"", []); 7198 SimpleStringLiteral literal = ParserTestCase.parse4("parsePrimaryExpression" , "\"string\"");
7201 expect(literal.isMultiline, isFalse); 7199 expect(literal.isMultiline, isFalse);
7202 expect(literal.isRaw, isFalse); 7200 expect(literal.isRaw, isFalse);
7203 expect(literal.value, "string"); 7201 expect(literal.value, "string");
7204 } 7202 }
7205 7203
7206 void test_parsePrimaryExpression_string_multiline() { 7204 void test_parsePrimaryExpression_string_multiline() {
7207 SimpleStringLiteral literal = ParserTestCase.parse4("parsePrimaryExpression" , "'''string'''", []); 7205 SimpleStringLiteral literal = ParserTestCase.parse4("parsePrimaryExpression" , "'''string'''");
7208 expect(literal.isMultiline, isTrue); 7206 expect(literal.isMultiline, isTrue);
7209 expect(literal.isRaw, isFalse); 7207 expect(literal.isRaw, isFalse);
7210 expect(literal.value, "string"); 7208 expect(literal.value, "string");
7211 } 7209 }
7212 7210
7213 void test_parsePrimaryExpression_string_raw() { 7211 void test_parsePrimaryExpression_string_raw() {
7214 SimpleStringLiteral literal = ParserTestCase.parse4("parsePrimaryExpression" , "r'string'", []); 7212 SimpleStringLiteral literal = ParserTestCase.parse4("parsePrimaryExpression" , "r'string'");
7215 expect(literal.isMultiline, isFalse); 7213 expect(literal.isMultiline, isFalse);
7216 expect(literal.isRaw, isTrue); 7214 expect(literal.isRaw, isTrue);
7217 expect(literal.value, "string"); 7215 expect(literal.value, "string");
7218 } 7216 }
7219 7217
7220 void test_parsePrimaryExpression_super() { 7218 void test_parsePrimaryExpression_super() {
7221 PropertyAccess propertyAccess = ParserTestCase.parse4("parsePrimaryExpressio n", "super.x", []); 7219 PropertyAccess propertyAccess = ParserTestCase.parse4("parsePrimaryExpressio n", "super.x");
7222 expect(propertyAccess.target is SuperExpression, isTrue); 7220 expect(propertyAccess.target is SuperExpression, isTrue);
7223 expect(propertyAccess.operator, isNotNull); 7221 expect(propertyAccess.operator, isNotNull);
7224 expect(propertyAccess.operator.type, TokenType.PERIOD); 7222 expect(propertyAccess.operator.type, TokenType.PERIOD);
7225 expect(propertyAccess.propertyName, isNotNull); 7223 expect(propertyAccess.propertyName, isNotNull);
7226 } 7224 }
7227 7225
7228 void test_parsePrimaryExpression_this() { 7226 void test_parsePrimaryExpression_this() {
7229 ThisExpression expression = ParserTestCase.parse4("parsePrimaryExpression", "this", []); 7227 ThisExpression expression = ParserTestCase.parse4("parsePrimaryExpression", "this");
7230 expect(expression.keyword, isNotNull); 7228 expect(expression.keyword, isNotNull);
7231 } 7229 }
7232 7230
7233 void test_parsePrimaryExpression_true() { 7231 void test_parsePrimaryExpression_true() {
7234 BooleanLiteral literal = ParserTestCase.parse4("parsePrimaryExpression", "tr ue", []); 7232 BooleanLiteral literal = ParserTestCase.parse4("parsePrimaryExpression", "tr ue");
7235 expect(literal.literal, isNotNull); 7233 expect(literal.literal, isNotNull);
7236 expect(literal.value, isTrue); 7234 expect(literal.value, isTrue);
7237 } 7235 }
7238 7236
7239 void test_Parser() { 7237 void test_Parser() {
7240 expect(new Parser(null, null), isNotNull); 7238 expect(new Parser(null, null), isNotNull);
7241 } 7239 }
7242 7240
7243 void test_parseRedirectingConstructorInvocation_named() { 7241 void test_parseRedirectingConstructorInvocation_named() {
7244 RedirectingConstructorInvocation invocation = ParserTestCase.parse4("parseRe directingConstructorInvocation", "this.a()", []); 7242 RedirectingConstructorInvocation invocation = ParserTestCase.parse4("parseRe directingConstructorInvocation", "this.a()");
7245 expect(invocation.argumentList, isNotNull); 7243 expect(invocation.argumentList, isNotNull);
7246 expect(invocation.constructorName, isNotNull); 7244 expect(invocation.constructorName, isNotNull);
7247 expect(invocation.keyword, isNotNull); 7245 expect(invocation.keyword, isNotNull);
7248 expect(invocation.period, isNotNull); 7246 expect(invocation.period, isNotNull);
7249 } 7247 }
7250 7248
7251 void test_parseRedirectingConstructorInvocation_unnamed() { 7249 void test_parseRedirectingConstructorInvocation_unnamed() {
7252 RedirectingConstructorInvocation invocation = ParserTestCase.parse4("parseRe directingConstructorInvocation", "this()", []); 7250 RedirectingConstructorInvocation invocation = ParserTestCase.parse4("parseRe directingConstructorInvocation", "this()");
7253 expect(invocation.argumentList, isNotNull); 7251 expect(invocation.argumentList, isNotNull);
7254 expect(invocation.constructorName, isNull); 7252 expect(invocation.constructorName, isNull);
7255 expect(invocation.keyword, isNotNull); 7253 expect(invocation.keyword, isNotNull);
7256 expect(invocation.period, isNull); 7254 expect(invocation.period, isNull);
7257 } 7255 }
7258 7256
7259 void test_parseRelationalExpression_as() { 7257 void test_parseRelationalExpression_as() {
7260 AsExpression expression = ParserTestCase.parse4("parseRelationalExpression", "x as Y", []); 7258 AsExpression expression = ParserTestCase.parse4("parseRelationalExpression", "x as Y");
7261 expect(expression.expression, isNotNull); 7259 expect(expression.expression, isNotNull);
7262 expect(expression.asOperator, isNotNull); 7260 expect(expression.asOperator, isNotNull);
7263 expect(expression.type, isNotNull); 7261 expect(expression.type, isNotNull);
7264 } 7262 }
7265 7263
7266 void test_parseRelationalExpression_is() { 7264 void test_parseRelationalExpression_is() {
7267 IsExpression expression = ParserTestCase.parse4("parseRelationalExpression", "x is y", []); 7265 IsExpression expression = ParserTestCase.parse4("parseRelationalExpression", "x is y");
7268 expect(expression.expression, isNotNull); 7266 expect(expression.expression, isNotNull);
7269 expect(expression.isOperator, isNotNull); 7267 expect(expression.isOperator, isNotNull);
7270 expect(expression.notOperator, isNull); 7268 expect(expression.notOperator, isNull);
7271 expect(expression.type, isNotNull); 7269 expect(expression.type, isNotNull);
7272 } 7270 }
7273 7271
7274 void test_parseRelationalExpression_isNot() { 7272 void test_parseRelationalExpression_isNot() {
7275 IsExpression expression = ParserTestCase.parse4("parseRelationalExpression", "x is! y", []); 7273 IsExpression expression = ParserTestCase.parse4("parseRelationalExpression", "x is! y");
7276 expect(expression.expression, isNotNull); 7274 expect(expression.expression, isNotNull);
7277 expect(expression.isOperator, isNotNull); 7275 expect(expression.isOperator, isNotNull);
7278 expect(expression.notOperator, isNotNull); 7276 expect(expression.notOperator, isNotNull);
7279 expect(expression.type, isNotNull); 7277 expect(expression.type, isNotNull);
7280 } 7278 }
7281 7279
7282 void test_parseRelationalExpression_normal() { 7280 void test_parseRelationalExpression_normal() {
7283 BinaryExpression expression = ParserTestCase.parse4("parseRelationalExpressi on", "x < y", []); 7281 BinaryExpression expression = ParserTestCase.parse4("parseRelationalExpressi on", "x < y");
7284 expect(expression.leftOperand, isNotNull); 7282 expect(expression.leftOperand, isNotNull);
7285 expect(expression.operator, isNotNull); 7283 expect(expression.operator, isNotNull);
7286 expect(expression.operator.type, TokenType.LT); 7284 expect(expression.operator.type, TokenType.LT);
7287 expect(expression.rightOperand, isNotNull); 7285 expect(expression.rightOperand, isNotNull);
7288 } 7286 }
7289 7287
7290 void test_parseRelationalExpression_super() { 7288 void test_parseRelationalExpression_super() {
7291 BinaryExpression expression = ParserTestCase.parse4("parseRelationalExpressi on", "super < y", []); 7289 BinaryExpression expression = ParserTestCase.parse4("parseRelationalExpressi on", "super < y");
7292 expect(expression.leftOperand, isNotNull); 7290 expect(expression.leftOperand, isNotNull);
7293 expect(expression.operator, isNotNull); 7291 expect(expression.operator, isNotNull);
7294 expect(expression.operator.type, TokenType.LT); 7292 expect(expression.operator.type, TokenType.LT);
7295 expect(expression.rightOperand, isNotNull); 7293 expect(expression.rightOperand, isNotNull);
7296 } 7294 }
7297 7295
7298 void test_parseRethrowExpression() { 7296 void test_parseRethrowExpression() {
7299 RethrowExpression expression = ParserTestCase.parse4("parseRethrowExpression ", "rethrow;", []); 7297 RethrowExpression expression = ParserTestCase.parse4("parseRethrowExpression ", "rethrow;");
7300 expect(expression.keyword, isNotNull); 7298 expect(expression.keyword, isNotNull);
7301 } 7299 }
7302 7300
7303 void test_parseReturnStatement_noValue() { 7301 void test_parseReturnStatement_noValue() {
7304 ReturnStatement statement = ParserTestCase.parse4("parseReturnStatement", "r eturn;", []); 7302 ReturnStatement statement = ParserTestCase.parse4("parseReturnStatement", "r eturn;");
7305 expect(statement.keyword, isNotNull); 7303 expect(statement.keyword, isNotNull);
7306 expect(statement.expression, isNull); 7304 expect(statement.expression, isNull);
7307 expect(statement.semicolon, isNotNull); 7305 expect(statement.semicolon, isNotNull);
7308 } 7306 }
7309 7307
7310 void test_parseReturnStatement_value() { 7308 void test_parseReturnStatement_value() {
7311 ReturnStatement statement = ParserTestCase.parse4("parseReturnStatement", "r eturn x;", []); 7309 ReturnStatement statement = ParserTestCase.parse4("parseReturnStatement", "r eturn x;");
7312 expect(statement.keyword, isNotNull); 7310 expect(statement.keyword, isNotNull);
7313 expect(statement.expression, isNotNull); 7311 expect(statement.expression, isNotNull);
7314 expect(statement.semicolon, isNotNull); 7312 expect(statement.semicolon, isNotNull);
7315 } 7313 }
7316 7314
7317 void test_parseReturnType_nonVoid() { 7315 void test_parseReturnType_nonVoid() {
7318 TypeName typeName = ParserTestCase.parse4("parseReturnType", "A<B>", []); 7316 TypeName typeName = ParserTestCase.parse4("parseReturnType", "A<B>");
7319 expect(typeName.name, isNotNull); 7317 expect(typeName.name, isNotNull);
7320 expect(typeName.typeArguments, isNotNull); 7318 expect(typeName.typeArguments, isNotNull);
7321 } 7319 }
7322 7320
7323 void test_parseReturnType_void() { 7321 void test_parseReturnType_void() {
7324 TypeName typeName = ParserTestCase.parse4("parseReturnType", "void", []); 7322 TypeName typeName = ParserTestCase.parse4("parseReturnType", "void");
7325 expect(typeName.name, isNotNull); 7323 expect(typeName.name, isNotNull);
7326 expect(typeName.typeArguments, isNull); 7324 expect(typeName.typeArguments, isNull);
7327 } 7325 }
7328 7326
7329 void test_parseSetter_nonStatic() { 7327 void test_parseSetter_nonStatic() {
7330 Comment comment = Comment.createDocumentationComment(new List<Token>(0)); 7328 Comment comment = Comment.createDocumentationComment(new List<Token>(0));
7331 TypeName returnType = new TypeName(new SimpleIdentifier(null), null); 7329 TypeName returnType = new TypeName(new SimpleIdentifier(null), null);
7332 MethodDeclaration method = ParserTestCase.parse("parseSetter", <Object> [com mentAndMetadata(comment, []), null, null, returnType], "set a(var x);"); 7330 MethodDeclaration method = ParserTestCase.parse("parseSetter", <Object> [com mentAndMetadata(comment), null, null, returnType], "set a(var x);");
7333 expect(method.body, isNotNull); 7331 expect(method.body, isNotNull);
7334 expect(method.documentationComment, comment); 7332 expect(method.documentationComment, comment);
7335 expect(method.externalKeyword, isNull); 7333 expect(method.externalKeyword, isNull);
7336 expect(method.modifierKeyword, isNull); 7334 expect(method.modifierKeyword, isNull);
7337 expect(method.name, isNotNull); 7335 expect(method.name, isNotNull);
7338 expect(method.operatorKeyword, isNull); 7336 expect(method.operatorKeyword, isNull);
7339 expect(method.parameters, isNotNull); 7337 expect(method.parameters, isNotNull);
7340 expect(method.propertyKeyword, isNotNull); 7338 expect(method.propertyKeyword, isNotNull);
7341 expect(method.returnType, returnType); 7339 expect(method.returnType, returnType);
7342 } 7340 }
7343 7341
7344 void test_parseSetter_static() { 7342 void test_parseSetter_static() {
7345 Comment comment = Comment.createDocumentationComment(new List<Token>(0)); 7343 Comment comment = Comment.createDocumentationComment(new List<Token>(0));
7346 Token staticKeyword = TokenFactory.tokenFromKeyword(Keyword.STATIC); 7344 Token staticKeyword = TokenFactory.tokenFromKeyword(Keyword.STATIC);
7347 TypeName returnType = new TypeName(new SimpleIdentifier(null), null); 7345 TypeName returnType = new TypeName(new SimpleIdentifier(null), null);
7348 MethodDeclaration method = ParserTestCase.parse("parseSetter", <Object> [ 7346 MethodDeclaration method = ParserTestCase.parse("parseSetter", <Object> [
7349 commentAndMetadata(comment, []), 7347 commentAndMetadata(comment),
7350 null, 7348 null,
7351 staticKeyword, 7349 staticKeyword,
7352 returnType], "set a(var x) {}"); 7350 returnType], "set a(var x) {}");
7353 expect(method.body, isNotNull); 7351 expect(method.body, isNotNull);
7354 expect(method.documentationComment, comment); 7352 expect(method.documentationComment, comment);
7355 expect(method.externalKeyword, isNull); 7353 expect(method.externalKeyword, isNull);
7356 expect(method.modifierKeyword, staticKeyword); 7354 expect(method.modifierKeyword, staticKeyword);
7357 expect(method.name, isNotNull); 7355 expect(method.name, isNotNull);
7358 expect(method.operatorKeyword, isNull); 7356 expect(method.operatorKeyword, isNull);
7359 expect(method.parameters, isNotNull); 7357 expect(method.parameters, isNotNull);
7360 expect(method.propertyKeyword, isNotNull); 7358 expect(method.propertyKeyword, isNotNull);
7361 expect(method.returnType, returnType); 7359 expect(method.returnType, returnType);
7362 } 7360 }
7363 7361
7364 void test_parseShiftExpression_normal() { 7362 void test_parseShiftExpression_normal() {
7365 BinaryExpression expression = ParserTestCase.parse4("parseShiftExpression", "x << y", []); 7363 BinaryExpression expression = ParserTestCase.parse4("parseShiftExpression", "x << y");
7366 expect(expression.leftOperand, isNotNull); 7364 expect(expression.leftOperand, isNotNull);
7367 expect(expression.operator, isNotNull); 7365 expect(expression.operator, isNotNull);
7368 expect(expression.operator.type, TokenType.LT_LT); 7366 expect(expression.operator.type, TokenType.LT_LT);
7369 expect(expression.rightOperand, isNotNull); 7367 expect(expression.rightOperand, isNotNull);
7370 } 7368 }
7371 7369
7372 void test_parseShiftExpression_super() { 7370 void test_parseShiftExpression_super() {
7373 BinaryExpression expression = ParserTestCase.parse4("parseShiftExpression", "super << y", []); 7371 BinaryExpression expression = ParserTestCase.parse4("parseShiftExpression", "super << y");
7374 expect(expression.leftOperand, isNotNull); 7372 expect(expression.leftOperand, isNotNull);
7375 expect(expression.operator, isNotNull); 7373 expect(expression.operator, isNotNull);
7376 expect(expression.operator.type, TokenType.LT_LT); 7374 expect(expression.operator.type, TokenType.LT_LT);
7377 expect(expression.rightOperand, isNotNull); 7375 expect(expression.rightOperand, isNotNull);
7378 } 7376 }
7379 7377
7380 void test_parseSimpleIdentifier_builtInIdentifier() { 7378 void test_parseSimpleIdentifier_builtInIdentifier() {
7381 String lexeme = "as"; 7379 String lexeme = "as";
7382 SimpleIdentifier identifier = ParserTestCase.parse4("parseSimpleIdentifier", lexeme, []); 7380 SimpleIdentifier identifier = ParserTestCase.parse4("parseSimpleIdentifier", lexeme);
7383 expect(identifier.token, isNotNull); 7381 expect(identifier.token, isNotNull);
7384 expect(identifier.name, lexeme); 7382 expect(identifier.name, lexeme);
7385 } 7383 }
7386 7384
7387 void test_parseSimpleIdentifier_normalIdentifier() { 7385 void test_parseSimpleIdentifier_normalIdentifier() {
7388 String lexeme = "foo"; 7386 String lexeme = "foo";
7389 SimpleIdentifier identifier = ParserTestCase.parse4("parseSimpleIdentifier", lexeme, []); 7387 SimpleIdentifier identifier = ParserTestCase.parse4("parseSimpleIdentifier", lexeme);
7390 expect(identifier.token, isNotNull); 7388 expect(identifier.token, isNotNull);
7391 expect(identifier.name, lexeme); 7389 expect(identifier.name, lexeme);
7392 } 7390 }
7393 7391
7394 void test_parseSimpleIdentifier1_normalIdentifier() { 7392 void test_parseSimpleIdentifier1_normalIdentifier() {
7395 // TODO(brianwilkerson) Implement tests for this method. 7393 // TODO(brianwilkerson) Implement tests for this method.
7396 } 7394 }
7397 7395
7398 void test_parseStatement_functionDeclaration() { 7396 void test_parseStatement_functionDeclaration() {
7399 // TODO(brianwilkerson) Implement more tests for this method. 7397 // TODO(brianwilkerson) Implement more tests for this method.
7400 FunctionDeclarationStatement statement = ParserTestCase.parse4("parseStateme nt", "int f(a, b) {};", []); 7398 FunctionDeclarationStatement statement = ParserTestCase.parse4("parseStateme nt", "int f(a, b) {};");
7401 expect(statement.functionDeclaration, isNotNull); 7399 expect(statement.functionDeclaration, isNotNull);
7402 } 7400 }
7403 7401
7404 void test_parseStatement_mulipleLabels() { 7402 void test_parseStatement_mulipleLabels() {
7405 LabeledStatement statement = ParserTestCase.parse4("parseStatement", "l: m: return x;", []); 7403 LabeledStatement statement = ParserTestCase.parse4("parseStatement", "l: m: return x;");
7406 expect(statement.labels, hasLength(2)); 7404 expect(statement.labels, hasLength(2));
7407 expect(statement.statement, isNotNull); 7405 expect(statement.statement, isNotNull);
7408 } 7406 }
7409 7407
7410 void test_parseStatement_noLabels() { 7408 void test_parseStatement_noLabels() {
7411 ParserTestCase.parse4("parseStatement", "return x;", []); 7409 ParserTestCase.parse4("parseStatement", "return x;");
7412 } 7410 }
7413 7411
7414 void test_parseStatement_singleLabel() { 7412 void test_parseStatement_singleLabel() {
7415 LabeledStatement statement = ParserTestCase.parse4("parseStatement", "l: ret urn x;", []); 7413 LabeledStatement statement = ParserTestCase.parse4("parseStatement", "l: ret urn x;");
7416 expect(statement.labels, hasLength(1)); 7414 expect(statement.labels, hasLength(1));
7417 expect(statement.statement, isNotNull); 7415 expect(statement.statement, isNotNull);
7418 } 7416 }
7419 7417
7420 void test_parseStatements_multiple() { 7418 void test_parseStatements_multiple() {
7421 List<Statement> statements = ParserTestCase.parseStatements("return; return; ", 2, []); 7419 List<Statement> statements = ParserTestCase.parseStatements("return; return; ", 2);
7422 expect(statements, hasLength(2)); 7420 expect(statements, hasLength(2));
7423 } 7421 }
7424 7422
7425 void test_parseStatements_single() { 7423 void test_parseStatements_single() {
7426 List<Statement> statements = ParserTestCase.parseStatements("return;", 1, [] ); 7424 List<Statement> statements = ParserTestCase.parseStatements("return;", 1);
7427 expect(statements, hasLength(1)); 7425 expect(statements, hasLength(1));
7428 } 7426 }
7429 7427
7430 void test_parseStringLiteral_adjacent() { 7428 void test_parseStringLiteral_adjacent() {
7431 AdjacentStrings literal = ParserTestCase.parse4("parseStringLiteral", "'a' ' b'", []); 7429 AdjacentStrings literal = ParserTestCase.parse4("parseStringLiteral", "'a' ' b'");
7432 NodeList<StringLiteral> strings = literal.strings; 7430 NodeList<StringLiteral> strings = literal.strings;
7433 expect(strings, hasLength(2)); 7431 expect(strings, hasLength(2));
7434 StringLiteral firstString = strings[0]; 7432 StringLiteral firstString = strings[0];
7435 StringLiteral secondString = strings[1]; 7433 StringLiteral secondString = strings[1];
7436 expect((firstString as SimpleStringLiteral).value, "a"); 7434 expect((firstString as SimpleStringLiteral).value, "a");
7437 expect((secondString as SimpleStringLiteral).value, "b"); 7435 expect((secondString as SimpleStringLiteral).value, "b");
7438 } 7436 }
7439 7437
7440 void test_parseStringLiteral_interpolated() { 7438 void test_parseStringLiteral_interpolated() {
7441 StringInterpolation literal = ParserTestCase.parse4("parseStringLiteral", "' a \${b} c \$this d'", []); 7439 StringInterpolation literal = ParserTestCase.parse4("parseStringLiteral", "' a \${b} c \$this d'");
7442 NodeList<InterpolationElement> elements = literal.elements; 7440 NodeList<InterpolationElement> elements = literal.elements;
7443 expect(elements, hasLength(5)); 7441 expect(elements, hasLength(5));
7444 expect(elements[0] is InterpolationString, isTrue); 7442 expect(elements[0] is InterpolationString, isTrue);
7445 expect(elements[1] is InterpolationExpression, isTrue); 7443 expect(elements[1] is InterpolationExpression, isTrue);
7446 expect(elements[2] is InterpolationString, isTrue); 7444 expect(elements[2] is InterpolationString, isTrue);
7447 expect(elements[3] is InterpolationExpression, isTrue); 7445 expect(elements[3] is InterpolationExpression, isTrue);
7448 expect(elements[4] is InterpolationString, isTrue); 7446 expect(elements[4] is InterpolationString, isTrue);
7449 } 7447 }
7450 7448
7451 void test_parseStringLiteral_single() { 7449 void test_parseStringLiteral_single() {
7452 SimpleStringLiteral literal = ParserTestCase.parse4("parseStringLiteral", "' a'", []); 7450 SimpleStringLiteral literal = ParserTestCase.parse4("parseStringLiteral", "' a'");
7453 expect(literal.literal, isNotNull); 7451 expect(literal.literal, isNotNull);
7454 expect(literal.value, "a"); 7452 expect(literal.value, "a");
7455 } 7453 }
7456 7454
7457 void test_parseSuperConstructorInvocation_named() { 7455 void test_parseSuperConstructorInvocation_named() {
7458 SuperConstructorInvocation invocation = ParserTestCase.parse4("parseSuperCon structorInvocation", "super.a()", []); 7456 SuperConstructorInvocation invocation = ParserTestCase.parse4("parseSuperCon structorInvocation", "super.a()");
7459 expect(invocation.argumentList, isNotNull); 7457 expect(invocation.argumentList, isNotNull);
7460 expect(invocation.constructorName, isNotNull); 7458 expect(invocation.constructorName, isNotNull);
7461 expect(invocation.keyword, isNotNull); 7459 expect(invocation.keyword, isNotNull);
7462 expect(invocation.period, isNotNull); 7460 expect(invocation.period, isNotNull);
7463 } 7461 }
7464 7462
7465 void test_parseSuperConstructorInvocation_unnamed() { 7463 void test_parseSuperConstructorInvocation_unnamed() {
7466 SuperConstructorInvocation invocation = ParserTestCase.parse4("parseSuperCon structorInvocation", "super()", []); 7464 SuperConstructorInvocation invocation = ParserTestCase.parse4("parseSuperCon structorInvocation", "super()");
7467 expect(invocation.argumentList, isNotNull); 7465 expect(invocation.argumentList, isNotNull);
7468 expect(invocation.constructorName, isNull); 7466 expect(invocation.constructorName, isNull);
7469 expect(invocation.keyword, isNotNull); 7467 expect(invocation.keyword, isNotNull);
7470 expect(invocation.period, isNull); 7468 expect(invocation.period, isNull);
7471 } 7469 }
7472 7470
7473 void test_parseSwitchStatement_case() { 7471 void test_parseSwitchStatement_case() {
7474 SwitchStatement statement = ParserTestCase.parse4("parseSwitchStatement", "s witch (a) {case 1: return 'I';}", []); 7472 SwitchStatement statement = ParserTestCase.parse4("parseSwitchStatement", "s witch (a) {case 1: return 'I';}");
7475 expect(statement.keyword, isNotNull); 7473 expect(statement.keyword, isNotNull);
7476 expect(statement.leftParenthesis, isNotNull); 7474 expect(statement.leftParenthesis, isNotNull);
7477 expect(statement.expression, isNotNull); 7475 expect(statement.expression, isNotNull);
7478 expect(statement.rightParenthesis, isNotNull); 7476 expect(statement.rightParenthesis, isNotNull);
7479 expect(statement.leftBracket, isNotNull); 7477 expect(statement.leftBracket, isNotNull);
7480 expect(statement.members, hasLength(1)); 7478 expect(statement.members, hasLength(1));
7481 expect(statement.rightBracket, isNotNull); 7479 expect(statement.rightBracket, isNotNull);
7482 } 7480 }
7483 7481
7484 void test_parseSwitchStatement_empty() { 7482 void test_parseSwitchStatement_empty() {
7485 SwitchStatement statement = ParserTestCase.parse4("parseSwitchStatement", "s witch (a) {}", []); 7483 SwitchStatement statement = ParserTestCase.parse4("parseSwitchStatement", "s witch (a) {}");
7486 expect(statement.keyword, isNotNull); 7484 expect(statement.keyword, isNotNull);
7487 expect(statement.leftParenthesis, isNotNull); 7485 expect(statement.leftParenthesis, isNotNull);
7488 expect(statement.expression, isNotNull); 7486 expect(statement.expression, isNotNull);
7489 expect(statement.rightParenthesis, isNotNull); 7487 expect(statement.rightParenthesis, isNotNull);
7490 expect(statement.leftBracket, isNotNull); 7488 expect(statement.leftBracket, isNotNull);
7491 expect(statement.members, hasLength(0)); 7489 expect(statement.members, hasLength(0));
7492 expect(statement.rightBracket, isNotNull); 7490 expect(statement.rightBracket, isNotNull);
7493 } 7491 }
7494 7492
7495 void test_parseSwitchStatement_labeledCase() { 7493 void test_parseSwitchStatement_labeledCase() {
7496 SwitchStatement statement = ParserTestCase.parse4("parseSwitchStatement", "s witch (a) {l1: l2: l3: case(1):}", []); 7494 SwitchStatement statement = ParserTestCase.parse4("parseSwitchStatement", "s witch (a) {l1: l2: l3: case(1):}");
7497 expect(statement.keyword, isNotNull); 7495 expect(statement.keyword, isNotNull);
7498 expect(statement.leftParenthesis, isNotNull); 7496 expect(statement.leftParenthesis, isNotNull);
7499 expect(statement.expression, isNotNull); 7497 expect(statement.expression, isNotNull);
7500 expect(statement.rightParenthesis, isNotNull); 7498 expect(statement.rightParenthesis, isNotNull);
7501 expect(statement.leftBracket, isNotNull); 7499 expect(statement.leftBracket, isNotNull);
7502 expect(statement.members, hasLength(1)); 7500 expect(statement.members, hasLength(1));
7503 expect(statement.members[0].labels, hasLength(3)); 7501 expect(statement.members[0].labels, hasLength(3));
7504 expect(statement.rightBracket, isNotNull); 7502 expect(statement.rightBracket, isNotNull);
7505 } 7503 }
7506 7504
7507 void test_parseSwitchStatement_labeledStatementInCase() { 7505 void test_parseSwitchStatement_labeledStatementInCase() {
7508 SwitchStatement statement = ParserTestCase.parse4("parseSwitchStatement", "s witch (a) {case 0: f(); l1: g(); break;}", []); 7506 SwitchStatement statement = ParserTestCase.parse4("parseSwitchStatement", "s witch (a) {case 0: f(); l1: g(); break;}");
7509 expect(statement.keyword, isNotNull); 7507 expect(statement.keyword, isNotNull);
7510 expect(statement.leftParenthesis, isNotNull); 7508 expect(statement.leftParenthesis, isNotNull);
7511 expect(statement.expression, isNotNull); 7509 expect(statement.expression, isNotNull);
7512 expect(statement.rightParenthesis, isNotNull); 7510 expect(statement.rightParenthesis, isNotNull);
7513 expect(statement.leftBracket, isNotNull); 7511 expect(statement.leftBracket, isNotNull);
7514 expect(statement.members, hasLength(1)); 7512 expect(statement.members, hasLength(1));
7515 expect(statement.members[0].statements, hasLength(3)); 7513 expect(statement.members[0].statements, hasLength(3));
7516 expect(statement.rightBracket, isNotNull); 7514 expect(statement.rightBracket, isNotNull);
7517 } 7515 }
7518 7516
7519 void test_parseSymbolLiteral_builtInIdentifier() { 7517 void test_parseSymbolLiteral_builtInIdentifier() {
7520 SymbolLiteral literal = ParserTestCase.parse4("parseSymbolLiteral", "#dynami c.static.abstract", []); 7518 SymbolLiteral literal = ParserTestCase.parse4("parseSymbolLiteral", "#dynami c.static.abstract");
7521 expect(literal.poundSign, isNotNull); 7519 expect(literal.poundSign, isNotNull);
7522 List<Token> components = literal.components; 7520 List<Token> components = literal.components;
7523 expect(components, hasLength(3)); 7521 expect(components, hasLength(3));
7524 expect(components[0].lexeme, "dynamic"); 7522 expect(components[0].lexeme, "dynamic");
7525 expect(components[1].lexeme, "static"); 7523 expect(components[1].lexeme, "static");
7526 expect(components[2].lexeme, "abstract"); 7524 expect(components[2].lexeme, "abstract");
7527 } 7525 }
7528 7526
7529 void test_parseSymbolLiteral_multiple() { 7527 void test_parseSymbolLiteral_multiple() {
7530 SymbolLiteral literal = ParserTestCase.parse4("parseSymbolLiteral", "#a.b.c" , []); 7528 SymbolLiteral literal = ParserTestCase.parse4("parseSymbolLiteral", "#a.b.c" );
7531 expect(literal.poundSign, isNotNull); 7529 expect(literal.poundSign, isNotNull);
7532 List<Token> components = literal.components; 7530 List<Token> components = literal.components;
7533 expect(components, hasLength(3)); 7531 expect(components, hasLength(3));
7534 expect(components[0].lexeme, "a"); 7532 expect(components[0].lexeme, "a");
7535 expect(components[1].lexeme, "b"); 7533 expect(components[1].lexeme, "b");
7536 expect(components[2].lexeme, "c"); 7534 expect(components[2].lexeme, "c");
7537 } 7535 }
7538 7536
7539 void test_parseSymbolLiteral_operator() { 7537 void test_parseSymbolLiteral_operator() {
7540 SymbolLiteral literal = ParserTestCase.parse4("parseSymbolLiteral", "#==", [ ]); 7538 SymbolLiteral literal = ParserTestCase.parse4("parseSymbolLiteral", "#==");
7541 expect(literal.poundSign, isNotNull); 7539 expect(literal.poundSign, isNotNull);
7542 List<Token> components = literal.components; 7540 List<Token> components = literal.components;
7543 expect(components, hasLength(1)); 7541 expect(components, hasLength(1));
7544 expect(components[0].lexeme, "=="); 7542 expect(components[0].lexeme, "==");
7545 } 7543 }
7546 7544
7547 void test_parseSymbolLiteral_single() { 7545 void test_parseSymbolLiteral_single() {
7548 SymbolLiteral literal = ParserTestCase.parse4("parseSymbolLiteral", "#a", [] ); 7546 SymbolLiteral literal = ParserTestCase.parse4("parseSymbolLiteral", "#a");
7549 expect(literal.poundSign, isNotNull); 7547 expect(literal.poundSign, isNotNull);
7550 List<Token> components = literal.components; 7548 List<Token> components = literal.components;
7551 expect(components, hasLength(1)); 7549 expect(components, hasLength(1));
7552 expect(components[0].lexeme, "a"); 7550 expect(components[0].lexeme, "a");
7553 } 7551 }
7554 7552
7555 void test_parseSymbolLiteral_void() { 7553 void test_parseSymbolLiteral_void() {
7556 SymbolLiteral literal = ParserTestCase.parse4("parseSymbolLiteral", "#void", []); 7554 SymbolLiteral literal = ParserTestCase.parse4("parseSymbolLiteral", "#void") ;
7557 expect(literal.poundSign, isNotNull); 7555 expect(literal.poundSign, isNotNull);
7558 List<Token> components = literal.components; 7556 List<Token> components = literal.components;
7559 expect(components, hasLength(1)); 7557 expect(components, hasLength(1));
7560 expect(components[0].lexeme, "void"); 7558 expect(components[0].lexeme, "void");
7561 } 7559 }
7562 7560
7563 void test_parseThrowExpression() { 7561 void test_parseThrowExpression() {
7564 ThrowExpression expression = ParserTestCase.parse4("parseThrowExpression", " throw x;", []); 7562 ThrowExpression expression = ParserTestCase.parse4("parseThrowExpression", " throw x;");
7565 expect(expression.keyword, isNotNull); 7563 expect(expression.keyword, isNotNull);
7566 expect(expression.expression, isNotNull); 7564 expect(expression.expression, isNotNull);
7567 } 7565 }
7568 7566
7569 void test_parseThrowExpressionWithoutCascade() { 7567 void test_parseThrowExpressionWithoutCascade() {
7570 ThrowExpression expression = ParserTestCase.parse4("parseThrowExpressionWith outCascade", "throw x;", []); 7568 ThrowExpression expression = ParserTestCase.parse4("parseThrowExpressionWith outCascade", "throw x;");
7571 expect(expression.keyword, isNotNull); 7569 expect(expression.keyword, isNotNull);
7572 expect(expression.expression, isNotNull); 7570 expect(expression.expression, isNotNull);
7573 } 7571 }
7574 7572
7575 void test_parseTryStatement_catch() { 7573 void test_parseTryStatement_catch() {
7576 TryStatement statement = ParserTestCase.parse4("parseTryStatement", "try {} catch (e) {}", []); 7574 TryStatement statement = ParserTestCase.parse4("parseTryStatement", "try {} catch (e) {}");
7577 expect(statement.tryKeyword, isNotNull); 7575 expect(statement.tryKeyword, isNotNull);
7578 expect(statement.body, isNotNull); 7576 expect(statement.body, isNotNull);
7579 NodeList<CatchClause> catchClauses = statement.catchClauses; 7577 NodeList<CatchClause> catchClauses = statement.catchClauses;
7580 expect(catchClauses, hasLength(1)); 7578 expect(catchClauses, hasLength(1));
7581 CatchClause clause = catchClauses[0]; 7579 CatchClause clause = catchClauses[0];
7582 expect(clause.onKeyword, isNull); 7580 expect(clause.onKeyword, isNull);
7583 expect(clause.exceptionType, isNull); 7581 expect(clause.exceptionType, isNull);
7584 expect(clause.catchKeyword, isNotNull); 7582 expect(clause.catchKeyword, isNotNull);
7585 expect(clause.exceptionParameter, isNotNull); 7583 expect(clause.exceptionParameter, isNotNull);
7586 expect(clause.comma, isNull); 7584 expect(clause.comma, isNull);
7587 expect(clause.stackTraceParameter, isNull); 7585 expect(clause.stackTraceParameter, isNull);
7588 expect(clause.body, isNotNull); 7586 expect(clause.body, isNotNull);
7589 expect(statement.finallyKeyword, isNull); 7587 expect(statement.finallyKeyword, isNull);
7590 expect(statement.finallyBlock, isNull); 7588 expect(statement.finallyBlock, isNull);
7591 } 7589 }
7592 7590
7593 void test_parseTryStatement_catch_finally() { 7591 void test_parseTryStatement_catch_finally() {
7594 TryStatement statement = ParserTestCase.parse4("parseTryStatement", "try {} catch (e, s) {} finally {}", []); 7592 TryStatement statement = ParserTestCase.parse4("parseTryStatement", "try {} catch (e, s) {} finally {}");
7595 expect(statement.tryKeyword, isNotNull); 7593 expect(statement.tryKeyword, isNotNull);
7596 expect(statement.body, isNotNull); 7594 expect(statement.body, isNotNull);
7597 NodeList<CatchClause> catchClauses = statement.catchClauses; 7595 NodeList<CatchClause> catchClauses = statement.catchClauses;
7598 expect(catchClauses, hasLength(1)); 7596 expect(catchClauses, hasLength(1));
7599 CatchClause clause = catchClauses[0]; 7597 CatchClause clause = catchClauses[0];
7600 expect(clause.onKeyword, isNull); 7598 expect(clause.onKeyword, isNull);
7601 expect(clause.exceptionType, isNull); 7599 expect(clause.exceptionType, isNull);
7602 expect(clause.catchKeyword, isNotNull); 7600 expect(clause.catchKeyword, isNotNull);
7603 expect(clause.exceptionParameter, isNotNull); 7601 expect(clause.exceptionParameter, isNotNull);
7604 expect(clause.comma, isNotNull); 7602 expect(clause.comma, isNotNull);
7605 expect(clause.stackTraceParameter, isNotNull); 7603 expect(clause.stackTraceParameter, isNotNull);
7606 expect(clause.body, isNotNull); 7604 expect(clause.body, isNotNull);
7607 expect(statement.finallyKeyword, isNotNull); 7605 expect(statement.finallyKeyword, isNotNull);
7608 expect(statement.finallyBlock, isNotNull); 7606 expect(statement.finallyBlock, isNotNull);
7609 } 7607 }
7610 7608
7611 void test_parseTryStatement_finally() { 7609 void test_parseTryStatement_finally() {
7612 TryStatement statement = ParserTestCase.parse4("parseTryStatement", "try {} finally {}", []); 7610 TryStatement statement = ParserTestCase.parse4("parseTryStatement", "try {} finally {}");
7613 expect(statement.tryKeyword, isNotNull); 7611 expect(statement.tryKeyword, isNotNull);
7614 expect(statement.body, isNotNull); 7612 expect(statement.body, isNotNull);
7615 expect(statement.catchClauses, hasLength(0)); 7613 expect(statement.catchClauses, hasLength(0));
7616 expect(statement.finallyKeyword, isNotNull); 7614 expect(statement.finallyKeyword, isNotNull);
7617 expect(statement.finallyBlock, isNotNull); 7615 expect(statement.finallyBlock, isNotNull);
7618 } 7616 }
7619 7617
7620 void test_parseTryStatement_multiple() { 7618 void test_parseTryStatement_multiple() {
7621 TryStatement statement = ParserTestCase.parse4("parseTryStatement", "try {} on NPE catch (e) {} on Error {} catch (e) {}", []); 7619 TryStatement statement = ParserTestCase.parse4("parseTryStatement", "try {} on NPE catch (e) {} on Error {} catch (e) {}");
7622 expect(statement.tryKeyword, isNotNull); 7620 expect(statement.tryKeyword, isNotNull);
7623 expect(statement.body, isNotNull); 7621 expect(statement.body, isNotNull);
7624 expect(statement.catchClauses, hasLength(3)); 7622 expect(statement.catchClauses, hasLength(3));
7625 expect(statement.finallyKeyword, isNull); 7623 expect(statement.finallyKeyword, isNull);
7626 expect(statement.finallyBlock, isNull); 7624 expect(statement.finallyBlock, isNull);
7627 } 7625 }
7628 7626
7629 void test_parseTryStatement_on() { 7627 void test_parseTryStatement_on() {
7630 TryStatement statement = ParserTestCase.parse4("parseTryStatement", "try {} on Error {}", []); 7628 TryStatement statement = ParserTestCase.parse4("parseTryStatement", "try {} on Error {}");
7631 expect(statement.tryKeyword, isNotNull); 7629 expect(statement.tryKeyword, isNotNull);
7632 expect(statement.body, isNotNull); 7630 expect(statement.body, isNotNull);
7633 NodeList<CatchClause> catchClauses = statement.catchClauses; 7631 NodeList<CatchClause> catchClauses = statement.catchClauses;
7634 expect(catchClauses, hasLength(1)); 7632 expect(catchClauses, hasLength(1));
7635 CatchClause clause = catchClauses[0]; 7633 CatchClause clause = catchClauses[0];
7636 expect(clause.onKeyword, isNotNull); 7634 expect(clause.onKeyword, isNotNull);
7637 expect(clause.exceptionType, isNotNull); 7635 expect(clause.exceptionType, isNotNull);
7638 expect(clause.catchKeyword, isNull); 7636 expect(clause.catchKeyword, isNull);
7639 expect(clause.exceptionParameter, isNull); 7637 expect(clause.exceptionParameter, isNull);
7640 expect(clause.comma, isNull); 7638 expect(clause.comma, isNull);
7641 expect(clause.stackTraceParameter, isNull); 7639 expect(clause.stackTraceParameter, isNull);
7642 expect(clause.body, isNotNull); 7640 expect(clause.body, isNotNull);
7643 expect(statement.finallyKeyword, isNull); 7641 expect(statement.finallyKeyword, isNull);
7644 expect(statement.finallyBlock, isNull); 7642 expect(statement.finallyBlock, isNull);
7645 } 7643 }
7646 7644
7647 void test_parseTryStatement_on_catch() { 7645 void test_parseTryStatement_on_catch() {
7648 TryStatement statement = ParserTestCase.parse4("parseTryStatement", "try {} on Error catch (e, s) {}", []); 7646 TryStatement statement = ParserTestCase.parse4("parseTryStatement", "try {} on Error catch (e, s) {}");
7649 expect(statement.tryKeyword, isNotNull); 7647 expect(statement.tryKeyword, isNotNull);
7650 expect(statement.body, isNotNull); 7648 expect(statement.body, isNotNull);
7651 NodeList<CatchClause> catchClauses = statement.catchClauses; 7649 NodeList<CatchClause> catchClauses = statement.catchClauses;
7652 expect(catchClauses, hasLength(1)); 7650 expect(catchClauses, hasLength(1));
7653 CatchClause clause = catchClauses[0]; 7651 CatchClause clause = catchClauses[0];
7654 expect(clause.onKeyword, isNotNull); 7652 expect(clause.onKeyword, isNotNull);
7655 expect(clause.exceptionType, isNotNull); 7653 expect(clause.exceptionType, isNotNull);
7656 expect(clause.catchKeyword, isNotNull); 7654 expect(clause.catchKeyword, isNotNull);
7657 expect(clause.exceptionParameter, isNotNull); 7655 expect(clause.exceptionParameter, isNotNull);
7658 expect(clause.comma, isNotNull); 7656 expect(clause.comma, isNotNull);
7659 expect(clause.stackTraceParameter, isNotNull); 7657 expect(clause.stackTraceParameter, isNotNull);
7660 expect(clause.body, isNotNull); 7658 expect(clause.body, isNotNull);
7661 expect(statement.finallyKeyword, isNull); 7659 expect(statement.finallyKeyword, isNull);
7662 expect(statement.finallyBlock, isNull); 7660 expect(statement.finallyBlock, isNull);
7663 } 7661 }
7664 7662
7665 void test_parseTryStatement_on_catch_finally() { 7663 void test_parseTryStatement_on_catch_finally() {
7666 TryStatement statement = ParserTestCase.parse4("parseTryStatement", "try {} on Error catch (e, s) {} finally {}", []); 7664 TryStatement statement = ParserTestCase.parse4("parseTryStatement", "try {} on Error catch (e, s) {} finally {}");
7667 expect(statement.tryKeyword, isNotNull); 7665 expect(statement.tryKeyword, isNotNull);
7668 expect(statement.body, isNotNull); 7666 expect(statement.body, isNotNull);
7669 NodeList<CatchClause> catchClauses = statement.catchClauses; 7667 NodeList<CatchClause> catchClauses = statement.catchClauses;
7670 expect(catchClauses, hasLength(1)); 7668 expect(catchClauses, hasLength(1));
7671 CatchClause clause = catchClauses[0]; 7669 CatchClause clause = catchClauses[0];
7672 expect(clause.onKeyword, isNotNull); 7670 expect(clause.onKeyword, isNotNull);
7673 expect(clause.exceptionType, isNotNull); 7671 expect(clause.exceptionType, isNotNull);
7674 expect(clause.catchKeyword, isNotNull); 7672 expect(clause.catchKeyword, isNotNull);
7675 expect(clause.exceptionParameter, isNotNull); 7673 expect(clause.exceptionParameter, isNotNull);
7676 expect(clause.comma, isNotNull); 7674 expect(clause.comma, isNotNull);
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
7734 FunctionTypeAlias typeAlias = ParserTestCase.parse("parseTypeAlias", <Object > [emptyCommentAndMetadata()], "typedef void F();"); 7732 FunctionTypeAlias typeAlias = ParserTestCase.parse("parseTypeAlias", <Object > [emptyCommentAndMetadata()], "typedef void F();");
7735 expect(typeAlias.keyword, isNotNull); 7733 expect(typeAlias.keyword, isNotNull);
7736 expect(typeAlias.name, isNotNull); 7734 expect(typeAlias.name, isNotNull);
7737 expect(typeAlias.parameters, isNotNull); 7735 expect(typeAlias.parameters, isNotNull);
7738 expect(typeAlias.returnType, isNotNull); 7736 expect(typeAlias.returnType, isNotNull);
7739 expect(typeAlias.semicolon, isNotNull); 7737 expect(typeAlias.semicolon, isNotNull);
7740 expect(typeAlias.typeParameters, isNull); 7738 expect(typeAlias.typeParameters, isNull);
7741 } 7739 }
7742 7740
7743 void test_parseTypeArgumentList_multiple() { 7741 void test_parseTypeArgumentList_multiple() {
7744 TypeArgumentList argumentList = ParserTestCase.parse4("parseTypeArgumentList ", "<int, int, int>", []); 7742 TypeArgumentList argumentList = ParserTestCase.parse4("parseTypeArgumentList ", "<int, int, int>");
7745 expect(argumentList.leftBracket, isNotNull); 7743 expect(argumentList.leftBracket, isNotNull);
7746 expect(argumentList.arguments, hasLength(3)); 7744 expect(argumentList.arguments, hasLength(3));
7747 expect(argumentList.rightBracket, isNotNull); 7745 expect(argumentList.rightBracket, isNotNull);
7748 } 7746 }
7749 7747
7750 void test_parseTypeArgumentList_nested() { 7748 void test_parseTypeArgumentList_nested() {
7751 TypeArgumentList argumentList = ParserTestCase.parse4("parseTypeArgumentList ", "<A<B>>", []); 7749 TypeArgumentList argumentList = ParserTestCase.parse4("parseTypeArgumentList ", "<A<B>>");
7752 expect(argumentList.leftBracket, isNotNull); 7750 expect(argumentList.leftBracket, isNotNull);
7753 expect(argumentList.arguments, hasLength(1)); 7751 expect(argumentList.arguments, hasLength(1));
7754 TypeName argument = argumentList.arguments[0]; 7752 TypeName argument = argumentList.arguments[0];
7755 expect(argument, isNotNull); 7753 expect(argument, isNotNull);
7756 TypeArgumentList innerList = argument.typeArguments; 7754 TypeArgumentList innerList = argument.typeArguments;
7757 expect(innerList, isNotNull); 7755 expect(innerList, isNotNull);
7758 expect(innerList.arguments, hasLength(1)); 7756 expect(innerList.arguments, hasLength(1));
7759 expect(argumentList.rightBracket, isNotNull); 7757 expect(argumentList.rightBracket, isNotNull);
7760 } 7758 }
7761 7759
7762 void test_parseTypeArgumentList_single() { 7760 void test_parseTypeArgumentList_single() {
7763 TypeArgumentList argumentList = ParserTestCase.parse4("parseTypeArgumentList ", "<int>", []); 7761 TypeArgumentList argumentList = ParserTestCase.parse4("parseTypeArgumentList ", "<int>");
7764 expect(argumentList.leftBracket, isNotNull); 7762 expect(argumentList.leftBracket, isNotNull);
7765 expect(argumentList.arguments, hasLength(1)); 7763 expect(argumentList.arguments, hasLength(1));
7766 expect(argumentList.rightBracket, isNotNull); 7764 expect(argumentList.rightBracket, isNotNull);
7767 } 7765 }
7768 7766
7769 void test_parseTypeName_parameterized() { 7767 void test_parseTypeName_parameterized() {
7770 TypeName typeName = ParserTestCase.parse4("parseTypeName", "List<int>", []); 7768 TypeName typeName = ParserTestCase.parse4("parseTypeName", "List<int>");
7771 expect(typeName.name, isNotNull); 7769 expect(typeName.name, isNotNull);
7772 expect(typeName.typeArguments, isNotNull); 7770 expect(typeName.typeArguments, isNotNull);
7773 } 7771 }
7774 7772
7775 void test_parseTypeName_simple() { 7773 void test_parseTypeName_simple() {
7776 TypeName typeName = ParserTestCase.parse4("parseTypeName", "int", []); 7774 TypeName typeName = ParserTestCase.parse4("parseTypeName", "int");
7777 expect(typeName.name, isNotNull); 7775 expect(typeName.name, isNotNull);
7778 expect(typeName.typeArguments, isNull); 7776 expect(typeName.typeArguments, isNull);
7779 } 7777 }
7780 7778
7781 void test_parseTypeParameter_bounded() { 7779 void test_parseTypeParameter_bounded() {
7782 TypeParameter parameter = ParserTestCase.parse4("parseTypeParameter", "A ext ends B", []); 7780 TypeParameter parameter = ParserTestCase.parse4("parseTypeParameter", "A ext ends B");
7783 expect(parameter.bound, isNotNull); 7781 expect(parameter.bound, isNotNull);
7784 expect(parameter.keyword, isNotNull); 7782 expect(parameter.keyword, isNotNull);
7785 expect(parameter.name, isNotNull); 7783 expect(parameter.name, isNotNull);
7786 } 7784 }
7787 7785
7788 void test_parseTypeParameter_simple() { 7786 void test_parseTypeParameter_simple() {
7789 TypeParameter parameter = ParserTestCase.parse4("parseTypeParameter", "A", [ ]); 7787 TypeParameter parameter = ParserTestCase.parse4("parseTypeParameter", "A");
7790 expect(parameter.bound, isNull); 7788 expect(parameter.bound, isNull);
7791 expect(parameter.keyword, isNull); 7789 expect(parameter.keyword, isNull);
7792 expect(parameter.name, isNotNull); 7790 expect(parameter.name, isNotNull);
7793 } 7791 }
7794 7792
7795 void test_parseTypeParameterList_multiple() { 7793 void test_parseTypeParameterList_multiple() {
7796 TypeParameterList parameterList = ParserTestCase.parse4("parseTypeParameterL ist", "<A, B extends C, D>", []); 7794 TypeParameterList parameterList = ParserTestCase.parse4("parseTypeParameterL ist", "<A, B extends C, D>");
7797 expect(parameterList.leftBracket, isNotNull); 7795 expect(parameterList.leftBracket, isNotNull);
7798 expect(parameterList.rightBracket, isNotNull); 7796 expect(parameterList.rightBracket, isNotNull);
7799 expect(parameterList.typeParameters, hasLength(3)); 7797 expect(parameterList.typeParameters, hasLength(3));
7800 } 7798 }
7801 7799
7802 void test_parseTypeParameterList_parameterizedWithTrailingEquals() { 7800 void test_parseTypeParameterList_parameterizedWithTrailingEquals() {
7803 TypeParameterList parameterList = ParserTestCase.parse4("parseTypeParameterL ist", "<A extends B<E>>=", []); 7801 TypeParameterList parameterList = ParserTestCase.parse4("parseTypeParameterL ist", "<A extends B<E>>=");
7804 expect(parameterList.leftBracket, isNotNull); 7802 expect(parameterList.leftBracket, isNotNull);
7805 expect(parameterList.rightBracket, isNotNull); 7803 expect(parameterList.rightBracket, isNotNull);
7806 expect(parameterList.typeParameters, hasLength(1)); 7804 expect(parameterList.typeParameters, hasLength(1));
7807 } 7805 }
7808 7806
7809 void test_parseTypeParameterList_single() { 7807 void test_parseTypeParameterList_single() {
7810 TypeParameterList parameterList = ParserTestCase.parse4("parseTypeParameterL ist", "<A>", []); 7808 TypeParameterList parameterList = ParserTestCase.parse4("parseTypeParameterL ist", "<A>");
7811 expect(parameterList.leftBracket, isNotNull); 7809 expect(parameterList.leftBracket, isNotNull);
7812 expect(parameterList.rightBracket, isNotNull); 7810 expect(parameterList.rightBracket, isNotNull);
7813 expect(parameterList.typeParameters, hasLength(1)); 7811 expect(parameterList.typeParameters, hasLength(1));
7814 } 7812 }
7815 7813
7816 void test_parseTypeParameterList_withTrailingEquals() { 7814 void test_parseTypeParameterList_withTrailingEquals() {
7817 TypeParameterList parameterList = ParserTestCase.parse4("parseTypeParameterL ist", "<A>=", []); 7815 TypeParameterList parameterList = ParserTestCase.parse4("parseTypeParameterL ist", "<A>=");
7818 expect(parameterList.leftBracket, isNotNull); 7816 expect(parameterList.leftBracket, isNotNull);
7819 expect(parameterList.rightBracket, isNotNull); 7817 expect(parameterList.rightBracket, isNotNull);
7820 expect(parameterList.typeParameters, hasLength(1)); 7818 expect(parameterList.typeParameters, hasLength(1));
7821 } 7819 }
7822 7820
7823 void test_parseUnaryExpression_decrement_normal() { 7821 void test_parseUnaryExpression_decrement_normal() {
7824 PrefixExpression expression = ParserTestCase.parse4("parseUnaryExpression", "--x", []); 7822 PrefixExpression expression = ParserTestCase.parse4("parseUnaryExpression", "--x");
7825 expect(expression.operator, isNotNull); 7823 expect(expression.operator, isNotNull);
7826 expect(expression.operator.type, TokenType.MINUS_MINUS); 7824 expect(expression.operator.type, TokenType.MINUS_MINUS);
7827 expect(expression.operand, isNotNull); 7825 expect(expression.operand, isNotNull);
7828 } 7826 }
7829 7827
7830 void test_parseUnaryExpression_decrement_super() { 7828 void test_parseUnaryExpression_decrement_super() {
7831 PrefixExpression expression = ParserTestCase.parse4("parseUnaryExpression", "--super", []); 7829 PrefixExpression expression = ParserTestCase.parse4("parseUnaryExpression", "--super");
7832 expect(expression.operator, isNotNull); 7830 expect(expression.operator, isNotNull);
7833 expect(expression.operator.type, TokenType.MINUS); 7831 expect(expression.operator.type, TokenType.MINUS);
7834 Expression innerExpression = expression.operand; 7832 Expression innerExpression = expression.operand;
7835 expect(innerExpression, isNotNull); 7833 expect(innerExpression, isNotNull);
7836 expect(innerExpression is PrefixExpression, isTrue); 7834 expect(innerExpression is PrefixExpression, isTrue);
7837 PrefixExpression operand = innerExpression as PrefixExpression; 7835 PrefixExpression operand = innerExpression as PrefixExpression;
7838 expect(operand.operator, isNotNull); 7836 expect(operand.operator, isNotNull);
7839 expect(operand.operator.type, TokenType.MINUS); 7837 expect(operand.operator.type, TokenType.MINUS);
7840 expect(operand.operand, isNotNull); 7838 expect(operand.operand, isNotNull);
7841 } 7839 }
7842 7840
7843 void test_parseUnaryExpression_decrement_super_propertyAccess() { 7841 void test_parseUnaryExpression_decrement_super_propertyAccess() {
7844 PrefixExpression expression = ParserTestCase.parse4("parseUnaryExpression", "--super.x", []); 7842 PrefixExpression expression = ParserTestCase.parse4("parseUnaryExpression", "--super.x");
7845 expect(expression.operator, isNotNull); 7843 expect(expression.operator, isNotNull);
7846 expect(expression.operator.type, TokenType.MINUS_MINUS); 7844 expect(expression.operator.type, TokenType.MINUS_MINUS);
7847 expect(expression.operand, isNotNull); 7845 expect(expression.operand, isNotNull);
7848 PropertyAccess operand = expression.operand as PropertyAccess; 7846 PropertyAccess operand = expression.operand as PropertyAccess;
7849 expect(operand.target is SuperExpression, isTrue); 7847 expect(operand.target is SuperExpression, isTrue);
7850 expect(operand.propertyName.name, "x"); 7848 expect(operand.propertyName.name, "x");
7851 } 7849 }
7852 7850
7853 void test_parseUnaryExpression_increment_normal() { 7851 void test_parseUnaryExpression_increment_normal() {
7854 PrefixExpression expression = ParserTestCase.parse4("parseUnaryExpression", "++x", []); 7852 PrefixExpression expression = ParserTestCase.parse4("parseUnaryExpression", "++x");
7855 expect(expression.operator, isNotNull); 7853 expect(expression.operator, isNotNull);
7856 expect(expression.operator.type, TokenType.PLUS_PLUS); 7854 expect(expression.operator.type, TokenType.PLUS_PLUS);
7857 expect(expression.operand, isNotNull); 7855 expect(expression.operand, isNotNull);
7858 } 7856 }
7859 7857
7860 void test_parseUnaryExpression_increment_super_index() { 7858 void test_parseUnaryExpression_increment_super_index() {
7861 PrefixExpression expression = ParserTestCase.parse4("parseUnaryExpression", "++super[0]", []); 7859 PrefixExpression expression = ParserTestCase.parse4("parseUnaryExpression", "++super[0]");
7862 expect(expression.operator, isNotNull); 7860 expect(expression.operator, isNotNull);
7863 expect(expression.operator.type, TokenType.PLUS_PLUS); 7861 expect(expression.operator.type, TokenType.PLUS_PLUS);
7864 expect(expression.operand, isNotNull); 7862 expect(expression.operand, isNotNull);
7865 IndexExpression operand = expression.operand as IndexExpression; 7863 IndexExpression operand = expression.operand as IndexExpression;
7866 expect(operand.realTarget is SuperExpression, isTrue); 7864 expect(operand.realTarget is SuperExpression, isTrue);
7867 expect(operand.index is IntegerLiteral, isTrue); 7865 expect(operand.index is IntegerLiteral, isTrue);
7868 } 7866 }
7869 7867
7870 void test_parseUnaryExpression_increment_super_propertyAccess() { 7868 void test_parseUnaryExpression_increment_super_propertyAccess() {
7871 PrefixExpression expression = ParserTestCase.parse4("parseUnaryExpression", "++super.x", []); 7869 PrefixExpression expression = ParserTestCase.parse4("parseUnaryExpression", "++super.x");
7872 expect(expression.operator, isNotNull); 7870 expect(expression.operator, isNotNull);
7873 expect(expression.operator.type, TokenType.PLUS_PLUS); 7871 expect(expression.operator.type, TokenType.PLUS_PLUS);
7874 expect(expression.operand, isNotNull); 7872 expect(expression.operand, isNotNull);
7875 PropertyAccess operand = expression.operand as PropertyAccess; 7873 PropertyAccess operand = expression.operand as PropertyAccess;
7876 expect(operand.target is SuperExpression, isTrue); 7874 expect(operand.target is SuperExpression, isTrue);
7877 expect(operand.propertyName.name, "x"); 7875 expect(operand.propertyName.name, "x");
7878 } 7876 }
7879 7877
7880 void test_parseUnaryExpression_minus_normal() { 7878 void test_parseUnaryExpression_minus_normal() {
7881 PrefixExpression expression = ParserTestCase.parse4("parseUnaryExpression", "-x", []); 7879 PrefixExpression expression = ParserTestCase.parse4("parseUnaryExpression", "-x");
7882 expect(expression.operator, isNotNull); 7880 expect(expression.operator, isNotNull);
7883 expect(expression.operator.type, TokenType.MINUS); 7881 expect(expression.operator.type, TokenType.MINUS);
7884 expect(expression.operand, isNotNull); 7882 expect(expression.operand, isNotNull);
7885 } 7883 }
7886 7884
7887 void test_parseUnaryExpression_minus_super() { 7885 void test_parseUnaryExpression_minus_super() {
7888 PrefixExpression expression = ParserTestCase.parse4("parseUnaryExpression", "-super", []); 7886 PrefixExpression expression = ParserTestCase.parse4("parseUnaryExpression", "-super");
7889 expect(expression.operator, isNotNull); 7887 expect(expression.operator, isNotNull);
7890 expect(expression.operator.type, TokenType.MINUS); 7888 expect(expression.operator.type, TokenType.MINUS);
7891 expect(expression.operand, isNotNull); 7889 expect(expression.operand, isNotNull);
7892 } 7890 }
7893 7891
7894 void test_parseUnaryExpression_not_normal() { 7892 void test_parseUnaryExpression_not_normal() {
7895 PrefixExpression expression = ParserTestCase.parse4("parseUnaryExpression", "!x", []); 7893 PrefixExpression expression = ParserTestCase.parse4("parseUnaryExpression", "!x");
7896 expect(expression.operator, isNotNull); 7894 expect(expression.operator, isNotNull);
7897 expect(expression.operator.type, TokenType.BANG); 7895 expect(expression.operator.type, TokenType.BANG);
7898 expect(expression.operand, isNotNull); 7896 expect(expression.operand, isNotNull);
7899 } 7897 }
7900 7898
7901 void test_parseUnaryExpression_not_super() { 7899 void test_parseUnaryExpression_not_super() {
7902 PrefixExpression expression = ParserTestCase.parse4("parseUnaryExpression", "!super", []); 7900 PrefixExpression expression = ParserTestCase.parse4("parseUnaryExpression", "!super");
7903 expect(expression.operator, isNotNull); 7901 expect(expression.operator, isNotNull);
7904 expect(expression.operator.type, TokenType.BANG); 7902 expect(expression.operator.type, TokenType.BANG);
7905 expect(expression.operand, isNotNull); 7903 expect(expression.operand, isNotNull);
7906 } 7904 }
7907 7905
7908 void test_parseUnaryExpression_tilda_normal() { 7906 void test_parseUnaryExpression_tilda_normal() {
7909 PrefixExpression expression = ParserTestCase.parse4("parseUnaryExpression", "~x", []); 7907 PrefixExpression expression = ParserTestCase.parse4("parseUnaryExpression", "~x");
7910 expect(expression.operator, isNotNull); 7908 expect(expression.operator, isNotNull);
7911 expect(expression.operator.type, TokenType.TILDE); 7909 expect(expression.operator.type, TokenType.TILDE);
7912 expect(expression.operand, isNotNull); 7910 expect(expression.operand, isNotNull);
7913 } 7911 }
7914 7912
7915 void test_parseUnaryExpression_tilda_super() { 7913 void test_parseUnaryExpression_tilda_super() {
7916 PrefixExpression expression = ParserTestCase.parse4("parseUnaryExpression", "~super", []); 7914 PrefixExpression expression = ParserTestCase.parse4("parseUnaryExpression", "~super");
7917 expect(expression.operator, isNotNull); 7915 expect(expression.operator, isNotNull);
7918 expect(expression.operator.type, TokenType.TILDE); 7916 expect(expression.operator.type, TokenType.TILDE);
7919 expect(expression.operand, isNotNull); 7917 expect(expression.operand, isNotNull);
7920 } 7918 }
7921 7919
7922 void test_parseVariableDeclaration_equals() { 7920 void test_parseVariableDeclaration_equals() {
7923 VariableDeclaration declaration = ParserTestCase.parse4("parseVariableDeclar ation", "a = b", []); 7921 VariableDeclaration declaration = ParserTestCase.parse4("parseVariableDeclar ation", "a = b");
7924 expect(declaration.name, isNotNull); 7922 expect(declaration.name, isNotNull);
7925 expect(declaration.equals, isNotNull); 7923 expect(declaration.equals, isNotNull);
7926 expect(declaration.initializer, isNotNull); 7924 expect(declaration.initializer, isNotNull);
7927 } 7925 }
7928 7926
7929 void test_parseVariableDeclaration_noEquals() { 7927 void test_parseVariableDeclaration_noEquals() {
7930 VariableDeclaration declaration = ParserTestCase.parse4("parseVariableDeclar ation", "a", []); 7928 VariableDeclaration declaration = ParserTestCase.parse4("parseVariableDeclar ation", "a");
7931 expect(declaration.name, isNotNull); 7929 expect(declaration.name, isNotNull);
7932 expect(declaration.equals, isNull); 7930 expect(declaration.equals, isNull);
7933 expect(declaration.initializer, isNull); 7931 expect(declaration.initializer, isNull);
7934 } 7932 }
7935 7933
7936 void test_parseVariableDeclarationListAfterMetadata_const_noType() { 7934 void test_parseVariableDeclarationListAfterMetadata_const_noType() {
7937 VariableDeclarationList declarationList = ParserTestCase.parse("parseVariabl eDeclarationListAfterMetadata", <Object> [emptyCommentAndMetadata()], "const a") ; 7935 VariableDeclarationList declarationList = ParserTestCase.parse("parseVariabl eDeclarationListAfterMetadata", <Object> [emptyCommentAndMetadata()], "const a") ;
7938 expect(declarationList.keyword, isNotNull); 7936 expect(declarationList.keyword, isNotNull);
7939 expect(declarationList.type, isNull); 7937 expect(declarationList.type, isNull);
7940 expect(declarationList.variables, hasLength(1)); 7938 expect(declarationList.variables, hasLength(1));
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
8015 8013
8016 void test_parseVariableDeclarationStatementAfterMetadata_single() { 8014 void test_parseVariableDeclarationStatementAfterMetadata_single() {
8017 VariableDeclarationStatement statement = ParserTestCase.parse("parseVariable DeclarationStatementAfterMetadata", <Object> [emptyCommentAndMetadata()], "var x ;"); 8015 VariableDeclarationStatement statement = ParserTestCase.parse("parseVariable DeclarationStatementAfterMetadata", <Object> [emptyCommentAndMetadata()], "var x ;");
8018 expect(statement.semicolon, isNotNull); 8016 expect(statement.semicolon, isNotNull);
8019 VariableDeclarationList variableList = statement.variables; 8017 VariableDeclarationList variableList = statement.variables;
8020 expect(variableList, isNotNull); 8018 expect(variableList, isNotNull);
8021 expect(variableList.variables, hasLength(1)); 8019 expect(variableList.variables, hasLength(1));
8022 } 8020 }
8023 8021
8024 void test_parseWhileStatement() { 8022 void test_parseWhileStatement() {
8025 WhileStatement statement = ParserTestCase.parse4("parseWhileStatement", "whi le (x) {}", []); 8023 WhileStatement statement = ParserTestCase.parse4("parseWhileStatement", "whi le (x) {}");
8026 expect(statement.keyword, isNotNull); 8024 expect(statement.keyword, isNotNull);
8027 expect(statement.leftParenthesis, isNotNull); 8025 expect(statement.leftParenthesis, isNotNull);
8028 expect(statement.condition, isNotNull); 8026 expect(statement.condition, isNotNull);
8029 expect(statement.rightParenthesis, isNotNull); 8027 expect(statement.rightParenthesis, isNotNull);
8030 expect(statement.body, isNotNull); 8028 expect(statement.body, isNotNull);
8031 } 8029 }
8032 8030
8033 void test_parseWithClause_multiple() { 8031 void test_parseWithClause_multiple() {
8034 WithClause clause = ParserTestCase.parse4("parseWithClause", "with A, B, C", []); 8032 WithClause clause = ParserTestCase.parse4("parseWithClause", "with A, B, C") ;
8035 expect(clause.withKeyword, isNotNull); 8033 expect(clause.withKeyword, isNotNull);
8036 expect(clause.mixinTypes, hasLength(3)); 8034 expect(clause.mixinTypes, hasLength(3));
8037 } 8035 }
8038 8036
8039 void test_parseWithClause_single() { 8037 void test_parseWithClause_single() {
8040 WithClause clause = ParserTestCase.parse4("parseWithClause", "with M", []); 8038 WithClause clause = ParserTestCase.parse4("parseWithClause", "with M");
8041 expect(clause.withKeyword, isNotNull); 8039 expect(clause.withKeyword, isNotNull);
8042 expect(clause.mixinTypes, hasLength(1)); 8040 expect(clause.mixinTypes, hasLength(1));
8043 } 8041 }
8044 8042
8045 void test_parseYieldStatement_each() { 8043 void test_parseYieldStatement_each() {
8046 YieldStatement statement = ParserTestCase.parse4("parseYieldStatement", "yie ld* x;", []); 8044 YieldStatement statement = ParserTestCase.parse4("parseYieldStatement", "yie ld* x;");
8047 expect(statement.yieldKeyword, isNotNull); 8045 expect(statement.yieldKeyword, isNotNull);
8048 expect(statement.star, isNotNull); 8046 expect(statement.star, isNotNull);
8049 expect(statement.expression, isNotNull); 8047 expect(statement.expression, isNotNull);
8050 expect(statement.semicolon, isNotNull); 8048 expect(statement.semicolon, isNotNull);
8051 } 8049 }
8052 8050
8053 void test_parseYieldStatement_normal() { 8051 void test_parseYieldStatement_normal() {
8054 YieldStatement statement = ParserTestCase.parse4("parseYieldStatement", "yie ld x;", []); 8052 YieldStatement statement = ParserTestCase.parse4("parseYieldStatement", "yie ld x;");
8055 expect(statement.yieldKeyword, isNotNull); 8053 expect(statement.yieldKeyword, isNotNull);
8056 expect(statement.star, isNull); 8054 expect(statement.star, isNull);
8057 expect(statement.expression, isNotNull); 8055 expect(statement.expression, isNotNull);
8058 expect(statement.semicolon, isNotNull); 8056 expect(statement.semicolon, isNotNull);
8059 } 8057 }
8060 8058
8061 void test_skipPrefixedIdentifier_invalid() { 8059 void test_skipPrefixedIdentifier_invalid() {
8062 Token following = _skip("skipPrefixedIdentifier", "+"); 8060 Token following = _skip("skipPrefixedIdentifier", "+");
8063 expect(following, isNull); 8061 expect(following, isNull);
8064 } 8062 }
(...skipping 205 matching lines...) Expand 10 before | Expand all | Expand 10 after
8270 8268
8271 /** 8269 /**
8272 * Parse the given source as a compilation unit. 8270 * Parse the given source as a compilation unit.
8273 * 8271 *
8274 * @param source the source to be parsed 8272 * @param source the source to be parsed
8275 * @param errorCodes the error codes of the errors that are expected to be fou nd 8273 * @param errorCodes the error codes of the errors that are expected to be fou nd
8276 * @return the compilation unit that was parsed 8274 * @return the compilation unit that was parsed
8277 * @throws Exception if the source could not be parsed, if the compilation err ors in the source do 8275 * @throws Exception if the source could not be parsed, if the compilation err ors in the source do
8278 * not match those that are expected, or if the result would have be en `null` 8276 * not match those that are expected, or if the result would have be en `null`
8279 */ 8277 */
8280 CompilationUnit _parseDirectives(String source, List<ErrorCode> errorCodes) { 8278 CompilationUnit _parseDirectives(String source, [List<ErrorCode> errorCodes = ErrorCode.EMPTY_LIST]) {
8281 GatheringErrorListener listener = new GatheringErrorListener(); 8279 GatheringErrorListener listener = new GatheringErrorListener();
8282 Scanner scanner = new Scanner(null, new CharSequenceReader(source), listener ); 8280 Scanner scanner = new Scanner(null, new CharSequenceReader(source), listener );
8283 listener.setLineInfo(new TestSource(), scanner.lineStarts); 8281 listener.setLineInfo(new TestSource(), scanner.lineStarts);
8284 Token token = scanner.tokenize(); 8282 Token token = scanner.tokenize();
8285 Parser parser = new Parser(null, listener); 8283 Parser parser = new Parser(null, listener);
8286 CompilationUnit unit = parser.parseDirectives(token); 8284 CompilationUnit unit = parser.parseDirectives(token);
8287 expect(unit, isNotNull); 8285 expect(unit, isNotNull);
8288 expect(unit.declarations, hasLength(0)); 8286 expect(unit.declarations, hasLength(0));
8289 listener.assertErrorsWithCodes(errorCodes); 8287 listener.assertErrorsWithCodes(errorCodes);
8290 return unit; 8288 return unit;
(...skipping 27 matching lines...) Expand all
8318 main() { 8316 main() {
8319 groupSep = ' | '; 8317 groupSep = ' | ';
8320 runReflectiveTests(ComplexParserTest); 8318 runReflectiveTests(ComplexParserTest);
8321 runReflectiveTests(ErrorParserTest); 8319 runReflectiveTests(ErrorParserTest);
8322 runReflectiveTests(IncrementalParserTest); 8320 runReflectiveTests(IncrementalParserTest);
8323 runReflectiveTests(NonErrorParserTest); 8321 runReflectiveTests(NonErrorParserTest);
8324 runReflectiveTests(RecoveryParserTest); 8322 runReflectiveTests(RecoveryParserTest);
8325 runReflectiveTests(ResolutionCopierTest); 8323 runReflectiveTests(ResolutionCopierTest);
8326 runReflectiveTests(SimpleParserTest); 8324 runReflectiveTests(SimpleParserTest);
8327 } 8325 }
OLDNEW
« no previous file with comments | « pkg/analyzer/test/generated/non_error_resolver_test.dart ('k') | pkg/analyzer/test/generated/resolver_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698