OLD | NEW |
1 /* | 1 /* |
2 * Copyright (c) 2012, the Dart project authors. | 2 * Copyright (c) 2012, the Dart project authors. |
3 * | 3 * |
4 * Licensed under the Eclipse Public License v1.0 (the "License"); you may not u
se this file except | 4 * Licensed under the Eclipse Public License v1.0 (the "License"); you may not u
se this file except |
5 * in compliance with the License. You may obtain a copy of the License at | 5 * in compliance with the License. You may obtain a copy of the License at |
6 * | 6 * |
7 * http://www.eclipse.org/legal/epl-v10.html | 7 * http://www.eclipse.org/legal/epl-v10.html |
8 * | 8 * |
9 * Unless required by applicable law or agreed to in writing, software distribut
ed under the License | 9 * Unless required by applicable law or agreed to in writing, software distribut
ed under the License |
10 * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY K
IND, either express | 10 * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY K
IND, either express |
(...skipping 25 matching lines...) Expand all Loading... |
36 "parseListOrMapLiteral", | 36 "parseListOrMapLiteral", |
37 new Object[] {null}, | 37 new Object[] {null}, |
38 "1", | 38 "1", |
39 ParserErrorCode.EXPECTED_LIST_OR_MAP_LITERAL); | 39 ParserErrorCode.EXPECTED_LIST_OR_MAP_LITERAL); |
40 assertTrue(literal.isSynthetic()); | 40 assertTrue(literal.isSynthetic()); |
41 } | 41 } |
42 | 42 |
43 public void fail_illegalAssignmentToNonAssignable_superAssigned() throws Excep
tion { | 43 public void fail_illegalAssignmentToNonAssignable_superAssigned() throws Excep
tion { |
44 // TODO(brianwilkerson) When this test starts to pass, remove the test | 44 // TODO(brianwilkerson) When this test starts to pass, remove the test |
45 // test_illegalAssignmentToNonAssignable_superAssigned. | 45 // test_illegalAssignmentToNonAssignable_superAssigned. |
46 parse("parseExpression", "super = x;", ParserErrorCode.ILLEGAL_ASSIGNMENT_TO
_NON_ASSIGNABLE); | 46 parseExpression("super = x;", ParserErrorCode.ILLEGAL_ASSIGNMENT_TO_NON_ASSI
GNABLE); |
47 } | 47 } |
48 | 48 |
49 public void fail_invalidCommentReference__new_nonIdentifier() throws Exception
{ | 49 public void fail_invalidCommentReference__new_nonIdentifier() throws Exception
{ |
50 // This test fails because the method parseCommentReference returns null. | 50 // This test fails because the method parseCommentReference returns null. |
51 parse( | 51 parse( |
52 "parseCommentReference", | 52 "parseCommentReference", |
53 new Object[] {"new 42", 0}, | 53 new Object[] {"new 42", 0}, |
54 "", | 54 "", |
55 ParserErrorCode.INVALID_COMMENT_REFERENCE); | 55 ParserErrorCode.INVALID_COMMENT_REFERENCE); |
56 } | 56 } |
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
96 public void fail_missingExpressionInThrow_withoutCascade() throws Exception { | 96 public void fail_missingExpressionInThrow_withoutCascade() throws Exception { |
97 parse( | 97 parse( |
98 "parseThrowExpressionWithoutCascade", | 98 "parseThrowExpressionWithoutCascade", |
99 "throw;", | 99 "throw;", |
100 ParserErrorCode.MISSING_EXPRESSION_IN_THROW); | 100 ParserErrorCode.MISSING_EXPRESSION_IN_THROW); |
101 } | 101 } |
102 | 102 |
103 public void fail_missingFunctionParameters_local_nonVoid_block() throws Except
ion { | 103 public void fail_missingFunctionParameters_local_nonVoid_block() throws Except
ion { |
104 // The parser does not recognize this as a function declaration, so it tries
to parse it as an | 104 // The parser does not recognize this as a function declaration, so it tries
to parse it as an |
105 // expression statement. It isn't clear what the best error message is in th
is case. | 105 // expression statement. It isn't clear what the best error message is in th
is case. |
106 parse("parseStatement", "int f { return x;}", ParserErrorCode.MISSING_FUNCTI
ON_PARAMETERS); | 106 parseStatement("int f { return x;}", ParserErrorCode.MISSING_FUNCTION_PARAME
TERS); |
107 } | 107 } |
108 | 108 |
109 public void fail_missingFunctionParameters_local_nonVoid_expression() throws E
xception { | 109 public void fail_missingFunctionParameters_local_nonVoid_expression() throws E
xception { |
110 // The parser does not recognize this as a function declaration, so it tries
to parse it as an | 110 // The parser does not recognize this as a function declaration, so it tries
to parse it as an |
111 // expression statement. It isn't clear what the best error message is in th
is case. | 111 // expression statement. It isn't clear what the best error message is in th
is case. |
112 parse("parseStatement", "int f => x;", ParserErrorCode.MISSING_FUNCTION_PARA
METERS); | 112 parseStatement("int f => x;", ParserErrorCode.MISSING_FUNCTION_PARAMETERS); |
113 } | 113 } |
114 | 114 |
115 public void fail_namedFunctionExpression() throws Exception { | 115 public void fail_namedFunctionExpression() throws Exception { |
116 Expression expression = parse( | 116 Expression expression = parse( |
117 "parsePrimaryExpression", | 117 "parsePrimaryExpression", |
118 "f() {}", | 118 "f() {}", |
119 ParserErrorCode.NAMED_FUNCTION_EXPRESSION); | 119 ParserErrorCode.NAMED_FUNCTION_EXPRESSION); |
120 assertInstanceOf(FunctionExpression.class, expression); | 120 assertInstanceOf(FunctionExpression.class, expression); |
121 } | 121 } |
122 | 122 |
123 public void fail_unexpectedToken_invalidPostfixExpression() throws Exception { | 123 public void fail_unexpectedToken_invalidPostfixExpression() throws Exception { |
124 // Note: this might not be the right error to produce, but some error should
be produced | 124 // Note: this might not be the right error to produce, but some error should
be produced |
125 parse("parseExpression", "f()++", ParserErrorCode.UNEXPECTED_TOKEN); | 125 parseExpression("f()++", ParserErrorCode.UNEXPECTED_TOKEN); |
126 } | 126 } |
127 | 127 |
128 public void fail_voidVariable_initializer() throws Exception { | 128 public void fail_voidVariable_initializer() throws Exception { |
129 // The parser parses this as a function declaration statement because that i
s the only thing | 129 // The parser parses this as a function declaration statement because that i
s the only thing |
130 // that validly starts with 'void'. That causes a different error message to
be produced. | 130 // that validly starts with 'void'. That causes a different error message to
be produced. |
131 parse("parseStatement", "void x = 0;", ParserErrorCode.VOID_VARIABLE); | 131 parseStatement("void x = 0;", ParserErrorCode.VOID_VARIABLE); |
132 } | 132 } |
133 | 133 |
134 public void fail_voidVariable_noInitializer() throws Exception { | 134 public void fail_voidVariable_noInitializer() throws Exception { |
135 // The parser parses this as a function declaration statement because that i
s the only thing | 135 // The parser parses this as a function declaration statement because that i
s the only thing |
136 // that validly starts with 'void'. That causes a different error message to
be produced. | 136 // that validly starts with 'void'. That causes a different error message to
be produced. |
137 parse("parseStatement", "void x;", ParserErrorCode.VOID_VARIABLE); | 137 parseStatement("void x;", ParserErrorCode.VOID_VARIABLE); |
138 } | 138 } |
139 | 139 |
140 public void test_abstractClassMember_constructor() throws Exception { | 140 public void test_abstractClassMember_constructor() throws Exception { |
141 parse( | 141 parse( |
142 "parseClassMember", | 142 "parseClassMember", |
143 new Object[] {"C"}, | 143 new Object[] {"C"}, |
144 "abstract C.c();", | 144 "abstract C.c();", |
145 ParserErrorCode.ABSTRACT_CLASS_MEMBER); | 145 ParserErrorCode.ABSTRACT_CLASS_MEMBER); |
146 } | 146 } |
147 | 147 |
(...skipping 23 matching lines...) Expand all Loading... |
171 | 171 |
172 public void test_abstractClassMember_setter() throws Exception { | 172 public void test_abstractClassMember_setter() throws Exception { |
173 parse( | 173 parse( |
174 "parseClassMember", | 174 "parseClassMember", |
175 new Object[] {"C"}, | 175 new Object[] {"C"}, |
176 "abstract set m(v);", | 176 "abstract set m(v);", |
177 ParserErrorCode.ABSTRACT_CLASS_MEMBER); | 177 ParserErrorCode.ABSTRACT_CLASS_MEMBER); |
178 } | 178 } |
179 | 179 |
180 public void test_abstractTopLevelFunction_function() throws Exception { | 180 public void test_abstractTopLevelFunction_function() throws Exception { |
181 parse("parseCompilationUnit", "abstract f(v) {}", ParserErrorCode.ABSTRACT_T
OP_LEVEL_FUNCTION); | 181 parseCompilationUnit("abstract f(v) {}", ParserErrorCode.ABSTRACT_TOP_LEVEL_
FUNCTION); |
182 } | 182 } |
183 | 183 |
184 public void test_abstractTopLevelFunction_getter() throws Exception { | 184 public void test_abstractTopLevelFunction_getter() throws Exception { |
185 parse("parseCompilationUnit", "abstract get m {}", ParserErrorCode.ABSTRACT_
TOP_LEVEL_FUNCTION); | 185 parseCompilationUnit("abstract get m {}", ParserErrorCode.ABSTRACT_TOP_LEVEL
_FUNCTION); |
186 } | 186 } |
187 | 187 |
188 public void test_abstractTopLevelFunction_setter() throws Exception { | 188 public void test_abstractTopLevelFunction_setter() throws Exception { |
189 parse( | 189 parseCompilationUnit("abstract set m(v) {}", ParserErrorCode.ABSTRACT_TOP_LE
VEL_FUNCTION); |
190 "parseCompilationUnit", | |
191 "abstract set m(v) {}", | |
192 ParserErrorCode.ABSTRACT_TOP_LEVEL_FUNCTION); | |
193 } | 190 } |
194 | 191 |
195 public void test_abstractTopLevelVariable() throws Exception { | 192 public void test_abstractTopLevelVariable() throws Exception { |
196 parse("parseCompilationUnit", "abstract C f;", ParserErrorCode.ABSTRACT_TOP_
LEVEL_VARIABLE); | 193 parseCompilationUnit("abstract C f;", ParserErrorCode.ABSTRACT_TOP_LEVEL_VAR
IABLE); |
197 } | 194 } |
198 | 195 |
199 public void test_abstractTypeDef() throws Exception { | 196 public void test_abstractTypeDef() throws Exception { |
200 parse("parseCompilationUnit", "abstract typedef F();", ParserErrorCode.ABSTR
ACT_TYPEDEF); | 197 parseCompilationUnit("abstract typedef F();", ParserErrorCode.ABSTRACT_TYPED
EF); |
201 } | 198 } |
202 | 199 |
203 public void test_breakOutsideOfLoop_breakInDoStatement() throws Exception { | 200 public void test_breakOutsideOfLoop_breakInDoStatement() throws Exception { |
204 parse("parseDoStatement", "do {break;} while (x);"); | 201 parse("parseDoStatement", "do {break;} while (x);"); |
205 } | 202 } |
206 | 203 |
207 public void test_breakOutsideOfLoop_breakInForStatement() throws Exception { | 204 public void test_breakOutsideOfLoop_breakInForStatement() throws Exception { |
208 parse("parseForStatement", "for (; x;) {break;}"); | 205 parse("parseForStatement", "for (; x;) {break;}"); |
209 } | 206 } |
210 | 207 |
211 public void test_breakOutsideOfLoop_breakInIfStatement() throws Exception { | 208 public void test_breakOutsideOfLoop_breakInIfStatement() throws Exception { |
212 parse("parseIfStatement", "if (x) {break;}", ParserErrorCode.BREAK_OUTSIDE_O
F_LOOP); | 209 parse("parseIfStatement", "if (x) {break;}", ParserErrorCode.BREAK_OUTSIDE_O
F_LOOP); |
213 } | 210 } |
214 | 211 |
215 public void test_breakOutsideOfLoop_breakInSwitchStatement() throws Exception
{ | 212 public void test_breakOutsideOfLoop_breakInSwitchStatement() throws Exception
{ |
216 parse("parseSwitchStatement", "switch (x) {case 1: break;}"); | 213 parse("parseSwitchStatement", "switch (x) {case 1: break;}"); |
217 } | 214 } |
218 | 215 |
219 public void test_breakOutsideOfLoop_breakInWhileStatement() throws Exception { | 216 public void test_breakOutsideOfLoop_breakInWhileStatement() throws Exception { |
220 parse("parseWhileStatement", "while (x) {break;}"); | 217 parse("parseWhileStatement", "while (x) {break;}"); |
221 } | 218 } |
222 | 219 |
223 public void test_breakOutsideOfLoop_functionExpression_inALoop() throws Except
ion { | 220 public void test_breakOutsideOfLoop_functionExpression_inALoop() throws Except
ion { |
224 parse("parseStatement", "for(; x;) {() {break;};}", ParserErrorCode.BREAK_OU
TSIDE_OF_LOOP); | 221 parseStatement("for(; x;) {() {break;};}", ParserErrorCode.BREAK_OUTSIDE_OF_
LOOP); |
225 } | 222 } |
226 | 223 |
227 public void test_breakOutsideOfLoop_functionExpression_withALoop() throws Exce
ption { | 224 public void test_breakOutsideOfLoop_functionExpression_withALoop() throws Exce
ption { |
228 parse("parseStatement", "() {for (; x;) {break;}};"); | 225 parseStatement("() {for (; x;) {break;}};"); |
229 } | 226 } |
230 | 227 |
231 public void test_constAndFinal() throws Exception { | 228 public void test_constAndFinal() throws Exception { |
232 parse( | 229 parse( |
233 "parseClassMember", | 230 "parseClassMember", |
234 new Object[] {"C"}, | 231 new Object[] {"C"}, |
235 "const final int x;", | 232 "const final int x;", |
236 ParserErrorCode.CONST_AND_FINAL); | 233 ParserErrorCode.CONST_AND_FINAL); |
237 } | 234 } |
238 | 235 |
239 public void test_constAndVar() throws Exception { | 236 public void test_constAndVar() throws Exception { |
240 parse("parseClassMember", new Object[] {"C"}, "const var x;", ParserErrorCod
e.CONST_AND_VAR); | 237 parse("parseClassMember", new Object[] {"C"}, "const var x;", ParserErrorCod
e.CONST_AND_VAR); |
241 } | 238 } |
242 | 239 |
243 public void test_constClass() throws Exception { | 240 public void test_constClass() throws Exception { |
244 parse("parseCompilationUnit", "const class C {}", ParserErrorCode.CONST_CLAS
S); | 241 parseCompilationUnit("const class C {}", ParserErrorCode.CONST_CLASS); |
245 } | 242 } |
246 | 243 |
247 public void test_constMethod() throws Exception { | 244 public void test_constMethod() throws Exception { |
248 parse("parseClassMember", new Object[] {"C"}, "const int m() {}", ParserErro
rCode.CONST_METHOD); | 245 parse("parseClassMember", new Object[] {"C"}, "const int m() {}", ParserErro
rCode.CONST_METHOD); |
249 } | 246 } |
250 | 247 |
251 public void test_constTypedef() throws Exception { | 248 public void test_constTypedef() throws Exception { |
252 parse("parseCompilationUnit", "const typedef F();", ParserErrorCode.CONST_TY
PEDEF); | 249 parseCompilationUnit("const typedef F();", ParserErrorCode.CONST_TYPEDEF); |
253 } | 250 } |
254 | 251 |
255 public void test_continueOutsideOfLoop_continueInDoStatement() throws Exceptio
n { | 252 public void test_continueOutsideOfLoop_continueInDoStatement() throws Exceptio
n { |
256 parse("parseDoStatement", "do {continue;} while (x);"); | 253 parse("parseDoStatement", "do {continue;} while (x);"); |
257 } | 254 } |
258 | 255 |
259 public void test_continueOutsideOfLoop_continueInForStatement() throws Excepti
on { | 256 public void test_continueOutsideOfLoop_continueInForStatement() throws Excepti
on { |
260 parse("parseForStatement", "for (; x;) {continue;}"); | 257 parse("parseForStatement", "for (; x;) {continue;}"); |
261 } | 258 } |
262 | 259 |
263 public void test_continueOutsideOfLoop_continueInIfStatement() throws Exceptio
n { | 260 public void test_continueOutsideOfLoop_continueInIfStatement() throws Exceptio
n { |
264 parse("parseIfStatement", "if (x) {continue;}", ParserErrorCode.CONTINUE_OUT
SIDE_OF_LOOP); | 261 parse("parseIfStatement", "if (x) {continue;}", ParserErrorCode.CONTINUE_OUT
SIDE_OF_LOOP); |
265 } | 262 } |
266 | 263 |
267 public void test_continueOutsideOfLoop_continueInSwitchStatement() throws Exce
ption { | 264 public void test_continueOutsideOfLoop_continueInSwitchStatement() throws Exce
ption { |
268 parse("parseSwitchStatement", "switch (x) {case 1: continue a;}"); | 265 parse("parseSwitchStatement", "switch (x) {case 1: continue a;}"); |
269 } | 266 } |
270 | 267 |
271 public void test_continueOutsideOfLoop_continueInWhileStatement() throws Excep
tion { | 268 public void test_continueOutsideOfLoop_continueInWhileStatement() throws Excep
tion { |
272 parse("parseWhileStatement", "while (x) {continue;}"); | 269 parse("parseWhileStatement", "while (x) {continue;}"); |
273 } | 270 } |
274 | 271 |
275 public void test_continueOutsideOfLoop_functionExpression_inALoop() throws Exc
eption { | 272 public void test_continueOutsideOfLoop_functionExpression_inALoop() throws Exc
eption { |
276 parse("parseStatement", "for(; x;) {() {continue;};}", ParserErrorCode.CONTI
NUE_OUTSIDE_OF_LOOP); | 273 parseStatement("for(; x;) {() {continue;};}", ParserErrorCode.CONTINUE_OUTSI
DE_OF_LOOP); |
277 } | 274 } |
278 | 275 |
279 public void test_continueOutsideOfLoop_functionExpression_withALoop() throws E
xception { | 276 public void test_continueOutsideOfLoop_functionExpression_withALoop() throws E
xception { |
280 parse("parseStatement", "() {for (; x;) {continue;}};"); | 277 parseStatement("() {for (; x;) {continue;}};"); |
281 } | 278 } |
282 | 279 |
283 public void test_continueWithoutLabelInCase_error() throws Exception { | 280 public void test_continueWithoutLabelInCase_error() throws Exception { |
284 parse( | 281 parse( |
285 "parseSwitchStatement", | 282 "parseSwitchStatement", |
286 "switch (x) {case 1: continue;}", | 283 "switch (x) {case 1: continue;}", |
287 ParserErrorCode.CONTINUE_WITHOUT_LABEL_IN_CASE); | 284 ParserErrorCode.CONTINUE_WITHOUT_LABEL_IN_CASE); |
288 } | 285 } |
289 | 286 |
290 public void test_continueWithoutLabelInCase_noError() throws Exception { | 287 public void test_continueWithoutLabelInCase_noError() throws Exception { |
291 parse("parseSwitchStatement", "switch (x) {case 1: continue a;}"); | 288 parse("parseSwitchStatement", "switch (x) {case 1: continue a;}"); |
292 } | 289 } |
293 | 290 |
294 public void test_continueWithoutLabelInCase_noError_switchInLoop() throws Exce
ption { | 291 public void test_continueWithoutLabelInCase_noError_switchInLoop() throws Exce
ption { |
295 parse("parseWhileStatement", "while (a) { switch (b) {default: continue;}}")
; | 292 parse("parseWhileStatement", "while (a) { switch (b) {default: continue;}}")
; |
296 } | 293 } |
297 | 294 |
298 public void test_directiveAfterDeclaration_classBeforeDirective() throws Excep
tion { | 295 public void test_directiveAfterDeclaration_classBeforeDirective() throws Excep
tion { |
299 CompilationUnit unit = parse( | 296 CompilationUnit unit = parseCompilationUnit( |
300 "parseCompilationUnit", | |
301 "class Foo{} library l;", | 297 "class Foo{} library l;", |
302 ParserErrorCode.DIRECTIVE_AFTER_DECLARATION); | 298 ParserErrorCode.DIRECTIVE_AFTER_DECLARATION); |
303 assertNotNull(unit); | 299 assertNotNull(unit); |
304 } | 300 } |
305 | 301 |
306 public void test_directiveAfterDeclaration_classBetweenDirectives() throws Exc
eption { | 302 public void test_directiveAfterDeclaration_classBetweenDirectives() throws Exc
eption { |
307 CompilationUnit unit = parse( | 303 CompilationUnit unit = parseCompilationUnit( |
308 "parseCompilationUnit", | |
309 "library l;\nclass Foo{}\npart 'a.dart';", | 304 "library l;\nclass Foo{}\npart 'a.dart';", |
310 ParserErrorCode.DIRECTIVE_AFTER_DECLARATION); | 305 ParserErrorCode.DIRECTIVE_AFTER_DECLARATION); |
311 assertNotNull(unit); | 306 assertNotNull(unit); |
312 } | 307 } |
313 | 308 |
314 public void test_duplicatedModifier_const() throws Exception { | 309 public void test_duplicatedModifier_const() throws Exception { |
315 parse( | 310 parse( |
316 "parseClassMember", | 311 "parseClassMember", |
317 new Object[] {"C"}, | 312 new Object[] {"C"}, |
318 "const const m;", | 313 "const const m;", |
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
416 "1", | 411 "1", |
417 ParserErrorCode.EXPECTED_STRING_LITERAL); | 412 ParserErrorCode.EXPECTED_STRING_LITERAL); |
418 assertTrue(expression.isSynthetic()); | 413 assertTrue(expression.isSynthetic()); |
419 } | 414 } |
420 | 415 |
421 public void test_expectedToken_commaMissingInArgumentList() throws Exception { | 416 public void test_expectedToken_commaMissingInArgumentList() throws Exception { |
422 parse("parseArgumentList", "(x, y z)", ParserErrorCode.EXPECTED_TOKEN); | 417 parse("parseArgumentList", "(x, y z)", ParserErrorCode.EXPECTED_TOKEN); |
423 } | 418 } |
424 | 419 |
425 public void test_expectedToken_semicolonMissingAfterExpression() throws Except
ion { | 420 public void test_expectedToken_semicolonMissingAfterExpression() throws Except
ion { |
426 parse("parseStatement", "x", ParserErrorCode.EXPECTED_TOKEN); | 421 parseStatement("x", ParserErrorCode.EXPECTED_TOKEN); |
427 } | 422 } |
428 | 423 |
429 public void test_expectedToken_whileMissingInDoStatement() throws Exception { | 424 public void test_expectedToken_whileMissingInDoStatement() throws Exception { |
430 parse("parseStatement", "do {} (x);", ParserErrorCode.EXPECTED_TOKEN); | 425 parseStatement("do {} (x);", ParserErrorCode.EXPECTED_TOKEN); |
| 426 } |
| 427 |
| 428 public void test_expectedTypeName_is() throws Exception { |
| 429 parseExpression("x is", ParserErrorCode.EXPECTED_TYPE_NAME); |
431 } | 430 } |
432 | 431 |
433 public void test_exportDirectiveAfterPartDirective() throws Exception { | 432 public void test_exportDirectiveAfterPartDirective() throws Exception { |
434 parse( | 433 parseCompilationUnit( |
435 "parseCompilationUnit", | |
436 "part 'a.dart'; export 'b.dart';", | 434 "part 'a.dart'; export 'b.dart';", |
437 ParserErrorCode.EXPORT_DIRECTIVE_AFTER_PART_DIRECTIVE); | 435 ParserErrorCode.EXPORT_DIRECTIVE_AFTER_PART_DIRECTIVE); |
438 } | 436 } |
439 | 437 |
440 public void test_externalAfterConst() throws Exception { | 438 public void test_externalAfterConst() throws Exception { |
441 parse( | 439 parse( |
442 "parseClassMember", | 440 "parseClassMember", |
443 new Object[] {"C"}, | 441 new Object[] {"C"}, |
444 "const external C();", | 442 "const external C();", |
445 ParserErrorCode.EXTERNAL_AFTER_CONST); | 443 ParserErrorCode.EXTERNAL_AFTER_CONST); |
446 } | 444 } |
447 | 445 |
448 public void test_externalAfterFactory() throws Exception { | 446 public void test_externalAfterFactory() throws Exception { |
449 parse( | 447 parse( |
450 "parseClassMember", | 448 "parseClassMember", |
451 new Object[] {"C"}, | 449 new Object[] {"C"}, |
452 "factory external C();", | 450 "factory external C();", |
453 ParserErrorCode.EXTERNAL_AFTER_FACTORY); | 451 ParserErrorCode.EXTERNAL_AFTER_FACTORY); |
454 } | 452 } |
455 | 453 |
456 public void test_externalAfterStatic() throws Exception { | 454 public void test_externalAfterStatic() throws Exception { |
457 parse( | 455 parse( |
458 "parseClassMember", | 456 "parseClassMember", |
459 new Object[] {"C"}, | 457 new Object[] {"C"}, |
460 "static external int m();", | 458 "static external int m();", |
461 ParserErrorCode.EXTERNAL_AFTER_STATIC); | 459 ParserErrorCode.EXTERNAL_AFTER_STATIC); |
462 } | 460 } |
463 | 461 |
464 public void test_externalClass() throws Exception { | 462 public void test_externalClass() throws Exception { |
465 parse("parseCompilationUnit", "external class C {}", ParserErrorCode.EXTERNA
L_CLASS); | 463 parseCompilationUnit("external class C {}", ParserErrorCode.EXTERNAL_CLASS); |
466 } | 464 } |
467 | 465 |
468 public void test_externalConstructorWithBody_factory() throws Exception { | 466 public void test_externalConstructorWithBody_factory() throws Exception { |
469 parse( | 467 parse( |
470 "parseClassMember", | 468 "parseClassMember", |
471 new Object[] {"C"}, | 469 new Object[] {"C"}, |
472 "external factory C() {}", | 470 "external factory C() {}", |
473 ParserErrorCode.EXTERNAL_CONSTRUCTOR_WITH_BODY); | 471 ParserErrorCode.EXTERNAL_CONSTRUCTOR_WITH_BODY); |
474 } | 472 } |
475 | 473 |
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
539 | 537 |
540 public void test_externalSetterWithBody() throws Exception { | 538 public void test_externalSetterWithBody() throws Exception { |
541 parse( | 539 parse( |
542 "parseClassMember", | 540 "parseClassMember", |
543 new Object[] {"C"}, | 541 new Object[] {"C"}, |
544 "external set x(int value) {}", | 542 "external set x(int value) {}", |
545 ParserErrorCode.EXTERNAL_SETTER_WITH_BODY); | 543 ParserErrorCode.EXTERNAL_SETTER_WITH_BODY); |
546 } | 544 } |
547 | 545 |
548 public void test_externalTypedef() throws Exception { | 546 public void test_externalTypedef() throws Exception { |
549 parse("parseCompilationUnit", "external typedef F();", ParserErrorCode.EXTER
NAL_TYPEDEF); | 547 parseCompilationUnit("external typedef F();", ParserErrorCode.EXTERNAL_TYPED
EF); |
550 } | 548 } |
551 | 549 |
552 public void test_factoryTopLevelDeclaration_class() throws Exception { | 550 public void test_factoryTopLevelDeclaration_class() throws Exception { |
553 parse( | 551 parseCompilationUnit("factory class C {}", ParserErrorCode.FACTORY_TOP_LEVEL
_DECLARATION); |
554 "parseCompilationUnit", | |
555 "factory class C {}", | |
556 ParserErrorCode.FACTORY_TOP_LEVEL_DECLARATION); | |
557 } | 552 } |
558 | 553 |
559 public void test_factoryTopLevelDeclaration_typedef() throws Exception { | 554 public void test_factoryTopLevelDeclaration_typedef() throws Exception { |
560 parse( | 555 parseCompilationUnit("factory typedef F();", ParserErrorCode.FACTORY_TOP_LEV
EL_DECLARATION); |
561 "parseCompilationUnit", | |
562 "factory typedef F();", | |
563 ParserErrorCode.FACTORY_TOP_LEVEL_DECLARATION); | |
564 } | 556 } |
565 | 557 |
566 public void test_fieldInitializerOutsideConstructor() throws Exception { | 558 public void test_fieldInitializerOutsideConstructor() throws Exception { |
567 parse( | 559 parse( |
568 "parseClassMember", | 560 "parseClassMember", |
569 new Object[] {"C"}, | 561 new Object[] {"C"}, |
570 "void m(this.x);", | 562 "void m(this.x);", |
571 ParserErrorCode.FIELD_INITIALIZER_OUTSIDE_CONSTRUCTOR); | 563 ParserErrorCode.FIELD_INITIALIZER_OUTSIDE_CONSTRUCTOR); |
572 } | 564 } |
573 | 565 |
574 public void test_finalAndVar() throws Exception { | 566 public void test_finalAndVar() throws Exception { |
575 parse("parseClassMember", new Object[] {"C"}, "final var x;", ParserErrorCod
e.FINAL_AND_VAR); | 567 parse("parseClassMember", new Object[] {"C"}, "final var x;", ParserErrorCod
e.FINAL_AND_VAR); |
576 } | 568 } |
577 | 569 |
578 public void test_finalClass() throws Exception { | 570 public void test_finalClass() throws Exception { |
579 parse("parseCompilationUnit", "final class C {}", ParserErrorCode.FINAL_CLAS
S); | 571 parseCompilationUnit("final class C {}", ParserErrorCode.FINAL_CLASS); |
580 } | 572 } |
581 | 573 |
582 public void test_finalConstructor() throws Exception { | 574 public void test_finalConstructor() throws Exception { |
583 parse("parseClassMember", new Object[] {"C"}, "final C() {}", ParserErrorCod
e.FINAL_CONSTRUCTOR); | 575 parse("parseClassMember", new Object[] {"C"}, "final C() {}", ParserErrorCod
e.FINAL_CONSTRUCTOR); |
584 } | 576 } |
585 | 577 |
586 public void test_finalMethod() throws Exception { | 578 public void test_finalMethod() throws Exception { |
587 parse("parseClassMember", new Object[] {"C"}, "final int m() {}", ParserErro
rCode.FINAL_METHOD); | 579 parse("parseClassMember", new Object[] {"C"}, "final int m() {}", ParserErro
rCode.FINAL_METHOD); |
588 } | 580 } |
589 | 581 |
590 public void test_finalTypedef() throws Exception { | 582 public void test_finalTypedef() throws Exception { |
591 parse("parseCompilationUnit", "final typedef F();", ParserErrorCode.FINAL_TY
PEDEF); | 583 parseCompilationUnit("final typedef F();", ParserErrorCode.FINAL_TYPEDEF); |
592 } | 584 } |
593 | 585 |
594 public void test_getterWithParameters() throws Exception { | 586 public void test_getterWithParameters() throws Exception { |
595 parse( | 587 parse( |
596 "parseClassMember", | 588 "parseClassMember", |
597 new Object[] {"C"}, | 589 new Object[] {"C"}, |
598 "int get x() {}", | 590 "int get x() {}", |
599 ParserErrorCode.GETTER_WITH_PARAMETERS); | 591 ParserErrorCode.GETTER_WITH_PARAMETERS); |
600 } | 592 } |
601 | 593 |
602 public void test_illegalAssignmentToNonAssignable_superAssigned() throws Excep
tion { | 594 public void test_illegalAssignmentToNonAssignable_superAssigned() throws Excep
tion { |
603 // TODO(brianwilkerson) When the test fail_illegalAssignmentToNonAssignable_
superAssigned starts | 595 // TODO(brianwilkerson) When the test fail_illegalAssignmentToNonAssignable_
superAssigned starts |
604 // to pass, remove this test (there should only be one error generated, but
we're keeping this | 596 // to pass, remove this test (there should only be one error generated, but
we're keeping this |
605 // test until that time so that we can catch other forms of regressions). | 597 // test until that time so that we can catch other forms of regressions). |
606 parse( | 598 parseExpression( |
607 "parseExpression", | |
608 "super = x;", | 599 "super = x;", |
609 ParserErrorCode.MISSING_ASSIGNABLE_SELECTOR, | 600 ParserErrorCode.MISSING_ASSIGNABLE_SELECTOR, |
610 ParserErrorCode.ILLEGAL_ASSIGNMENT_TO_NON_ASSIGNABLE); | 601 ParserErrorCode.ILLEGAL_ASSIGNMENT_TO_NON_ASSIGNABLE); |
611 } | 602 } |
612 | 603 |
613 public void test_implementsBeforeExtends() throws Exception { | 604 public void test_implementsBeforeExtends() throws Exception { |
614 parse( | 605 parseCompilationUnit( |
615 "parseCompilationUnit", | |
616 "class A implements B extends C {}", | 606 "class A implements B extends C {}", |
617 ParserErrorCode.IMPLEMENTS_BEFORE_EXTENDS); | 607 ParserErrorCode.IMPLEMENTS_BEFORE_EXTENDS); |
618 } | 608 } |
619 | 609 |
620 public void test_implementsBeforeWith() throws Exception { | 610 public void test_implementsBeforeWith() throws Exception { |
621 parse( | 611 parseCompilationUnit( |
622 "parseCompilationUnit", | |
623 "class A extends B implements C with D {}", | 612 "class A extends B implements C with D {}", |
624 ParserErrorCode.IMPLEMENTS_BEFORE_WITH); | 613 ParserErrorCode.IMPLEMENTS_BEFORE_WITH); |
625 } | 614 } |
626 | 615 |
627 public void test_importDirectiveAfterPartDirective() throws Exception { | 616 public void test_importDirectiveAfterPartDirective() throws Exception { |
628 parse( | 617 parseCompilationUnit( |
629 "parseCompilationUnit", | |
630 "part 'a.dart'; import 'b.dart';", | 618 "part 'a.dart'; import 'b.dart';", |
631 ParserErrorCode.IMPORT_DIRECTIVE_AFTER_PART_DIRECTIVE); | 619 ParserErrorCode.IMPORT_DIRECTIVE_AFTER_PART_DIRECTIVE); |
632 } | 620 } |
633 | 621 |
634 public void test_initializedVariableInForEach() throws Exception { | 622 public void test_initializedVariableInForEach() throws Exception { |
635 parse( | 623 parse( |
636 "parseForStatement", | 624 "parseForStatement", |
637 "for (int a = 0 in foo) {}", | 625 "for (int a = 0 in foo) {}", |
638 ParserErrorCode.INITIALIZED_VARIABLE_IN_FOR_EACH); | 626 ParserErrorCode.INITIALIZED_VARIABLE_IN_FOR_EACH); |
639 } | 627 } |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
684 | 672 |
685 public void test_invalidUnicodeEscape_tooManyDigits_variable() throws Exceptio
n { | 673 public void test_invalidUnicodeEscape_tooManyDigits_variable() throws Exceptio
n { |
686 parse( | 674 parse( |
687 "parseStringLiteral", | 675 "parseStringLiteral", |
688 "'\\u{12345678}'", | 676 "'\\u{12345678}'", |
689 ParserErrorCode.INVALID_UNICODE_ESCAPE, | 677 ParserErrorCode.INVALID_UNICODE_ESCAPE, |
690 ParserErrorCode.INVALID_CODE_POINT); | 678 ParserErrorCode.INVALID_CODE_POINT); |
691 } | 679 } |
692 | 680 |
693 public void test_libraryDirectiveNotFirst() throws Exception { | 681 public void test_libraryDirectiveNotFirst() throws Exception { |
694 parse( | 682 parseCompilationUnit("import 'x.dart'; library l;", ParserErrorCode.LIBRARY_
DIRECTIVE_NOT_FIRST); |
695 "parseCompilationUnit", | |
696 "import 'x.dart'; library l;", | |
697 ParserErrorCode.LIBRARY_DIRECTIVE_NOT_FIRST); | |
698 } | 683 } |
699 | 684 |
700 public void test_libraryDirectiveNotFirst_afterPart() throws Exception { | 685 public void test_libraryDirectiveNotFirst_afterPart() throws Exception { |
701 CompilationUnit unit = parse( | 686 CompilationUnit unit = parseCompilationUnit( |
702 "parseCompilationUnit", | |
703 "part 'a.dart';\nlibrary l;", | 687 "part 'a.dart';\nlibrary l;", |
704 ParserErrorCode.LIBRARY_DIRECTIVE_NOT_FIRST); | 688 ParserErrorCode.LIBRARY_DIRECTIVE_NOT_FIRST); |
705 assertNotNull(unit); | 689 assertNotNull(unit); |
706 } | 690 } |
707 | 691 |
708 public void test_missingAssignableSelector_identifiersAssigned() throws Except
ion { | 692 public void test_missingAssignableSelector_identifiersAssigned() throws Except
ion { |
709 parse("parseExpression", "x.y = y;"); | 693 parseExpression("x.y = y;"); |
710 } | 694 } |
711 | 695 |
712 public void test_missingAssignableSelector_primarySelectorPostfix() throws Exc
eption { | 696 public void test_missingAssignableSelector_primarySelectorPostfix() throws Exc
eption { |
713 parse("parseExpression", "x(y)(z)++", ParserErrorCode.MISSING_ASSIGNABLE_SEL
ECTOR); | 697 parseExpression("x(y)(z)++", ParserErrorCode.MISSING_ASSIGNABLE_SELECTOR); |
714 } | 698 } |
715 | 699 |
716 public void test_missingAssignableSelector_selector() throws Exception { | 700 public void test_missingAssignableSelector_selector() throws Exception { |
717 parse("parseExpression", "x(y)(z).a++"); | 701 parseExpression("x(y)(z).a++"); |
718 } | 702 } |
719 | 703 |
720 public void test_missingAssignableSelector_superPrimaryExpression() throws Exc
eption { | 704 public void test_missingAssignableSelector_superPrimaryExpression() throws Exc
eption { |
721 SuperExpression expression = parse( | 705 SuperExpression expression = parse( |
722 "parsePrimaryExpression", | 706 "parsePrimaryExpression", |
723 "super", | 707 "super", |
724 ParserErrorCode.MISSING_ASSIGNABLE_SELECTOR); | 708 ParserErrorCode.MISSING_ASSIGNABLE_SELECTOR); |
725 assertNotNull(expression.getKeyword()); | 709 assertNotNull(expression.getKeyword()); |
726 } | 710 } |
727 | 711 |
728 public void test_missingAssignableSelector_superPropertyAccessAssigned() throw
s Exception { | 712 public void test_missingAssignableSelector_superPropertyAccessAssigned() throw
s Exception { |
729 parse("parseExpression", "super.x = x;"); | 713 parseExpression("super.x = x;"); |
730 } | 714 } |
731 | 715 |
732 public void test_missingCatchOrFinally() throws Exception { | 716 public void test_missingCatchOrFinally() throws Exception { |
733 TryStatement statement = parse( | 717 TryStatement statement = parse( |
734 "parseTryStatement", | 718 "parseTryStatement", |
735 "try {}", | 719 "try {}", |
736 ParserErrorCode.MISSING_CATCH_OR_FINALLY); | 720 ParserErrorCode.MISSING_CATCH_OR_FINALLY); |
737 assertNotNull(statement); | 721 assertNotNull(statement); |
738 } | 722 } |
739 | 723 |
740 public void test_missingClassBody() throws Exception { | 724 public void test_missingClassBody() throws Exception { |
741 parse("parseCompilationUnit", "class A class B {}", ParserErrorCode.MISSING_
CLASS_BODY); | 725 parseCompilationUnit("class A class B {}", ParserErrorCode.MISSING_CLASS_BOD
Y); |
742 } | 726 } |
743 | 727 |
744 public void test_missingConstFinalVarOrType() throws Exception { | 728 public void test_missingConstFinalVarOrType() throws Exception { |
745 parse( | 729 parse( |
746 "parseFinalConstVarOrType", | 730 "parseFinalConstVarOrType", |
747 new Object[] {false}, | 731 new Object[] {false}, |
748 "a;", | 732 "a;", |
749 ParserErrorCode.MISSING_CONST_FINAL_VAR_OR_TYPE); | 733 ParserErrorCode.MISSING_CONST_FINAL_VAR_OR_TYPE); |
750 } | 734 } |
751 | 735 |
752 public void test_missingFunctionBody_emptyNotAllowed() throws Exception { | 736 public void test_missingFunctionBody_emptyNotAllowed() throws Exception { |
753 parse( | 737 parse( |
754 "parseFunctionBody", | 738 "parseFunctionBody", |
755 new Object[] {false, false}, | 739 new Object[] {false, false}, |
756 ";", | 740 ";", |
757 ParserErrorCode.MISSING_FUNCTION_BODY); | 741 ParserErrorCode.MISSING_FUNCTION_BODY); |
758 } | 742 } |
759 | 743 |
760 public void test_missingFunctionBody_invalid() throws Exception { | 744 public void test_missingFunctionBody_invalid() throws Exception { |
761 parse( | 745 parse( |
762 "parseFunctionBody", | 746 "parseFunctionBody", |
763 new Object[] {false, false}, | 747 new Object[] {false, false}, |
764 "return 0;", | 748 "return 0;", |
765 ParserErrorCode.MISSING_FUNCTION_BODY); | 749 ParserErrorCode.MISSING_FUNCTION_BODY); |
766 } | 750 } |
767 | 751 |
768 public void test_missingFunctionParameters_local_void_block() throws Exception
{ | 752 public void test_missingFunctionParameters_local_void_block() throws Exception
{ |
769 parse("parseStatement", "void f { return x;}", ParserErrorCode.MISSING_FUNCT
ION_PARAMETERS); | 753 parseStatement("void f { return x;}", ParserErrorCode.MISSING_FUNCTION_PARAM
ETERS); |
770 } | 754 } |
771 | 755 |
772 public void test_missingFunctionParameters_local_void_expression() throws Exce
ption { | 756 public void test_missingFunctionParameters_local_void_expression() throws Exce
ption { |
773 parse("parseStatement", "void f => x;", ParserErrorCode.MISSING_FUNCTION_PAR
AMETERS); | 757 parseStatement("void f => x;", ParserErrorCode.MISSING_FUNCTION_PARAMETERS); |
774 } | 758 } |
775 | 759 |
776 public void test_missingFunctionParameters_topLevel_nonVoid_block() throws Exc
eption { | 760 public void test_missingFunctionParameters_topLevel_nonVoid_block() throws Exc
eption { |
777 parse("parseCompilationUnit", "int f { return x;}", ParserErrorCode.MISSING_
FUNCTION_PARAMETERS); | 761 parseCompilationUnit("int f { return x;}", ParserErrorCode.MISSING_FUNCTION_
PARAMETERS); |
778 } | 762 } |
779 | 763 |
780 public void test_missingFunctionParameters_topLevel_nonVoid_expression() throw
s Exception { | 764 public void test_missingFunctionParameters_topLevel_nonVoid_expression() throw
s Exception { |
781 parse("parseCompilationUnit", "int f => x;", ParserErrorCode.MISSING_FUNCTIO
N_PARAMETERS); | 765 parseCompilationUnit("int f => x;", ParserErrorCode.MISSING_FUNCTION_PARAMET
ERS); |
782 } | 766 } |
783 | 767 |
784 public void test_missingFunctionParameters_topLevel_void_block() throws Except
ion { | 768 public void test_missingFunctionParameters_topLevel_void_block() throws Except
ion { |
785 parse( | 769 parseCompilationUnit("void f { return x;}", ParserErrorCode.MISSING_FUNCTION
_PARAMETERS); |
786 "parseCompilationUnit", | |
787 "void f { return x;}", | |
788 ParserErrorCode.MISSING_FUNCTION_PARAMETERS); | |
789 } | 770 } |
790 | 771 |
791 public void test_missingFunctionParameters_topLevel_void_expression() throws E
xception { | 772 public void test_missingFunctionParameters_topLevel_void_expression() throws E
xception { |
792 parse("parseCompilationUnit", "void f => x;", ParserErrorCode.MISSING_FUNCTI
ON_PARAMETERS); | 773 parseCompilationUnit("void f => x;", ParserErrorCode.MISSING_FUNCTION_PARAME
TERS); |
793 } | 774 } |
794 | 775 |
795 public void test_missingIdentifier_functionDeclaration_returnTypeWithoutName()
throws Exception { | 776 public void test_missingIdentifier_functionDeclaration_returnTypeWithoutName()
throws Exception { |
796 parse("parseFunctionDeclarationStatement", "A<T> () {}", ParserErrorCode.MIS
SING_IDENTIFIER); | 777 parse("parseFunctionDeclarationStatement", "A<T> () {}", ParserErrorCode.MIS
SING_IDENTIFIER); |
797 } | 778 } |
798 | 779 |
799 public void test_missingIdentifier_number() throws Exception { | 780 public void test_missingIdentifier_number() throws Exception { |
800 SimpleIdentifier expression = parse( | 781 SimpleIdentifier expression = parse( |
801 "parseSimpleIdentifier", | 782 "parseSimpleIdentifier", |
802 "1", | 783 "1", |
803 ParserErrorCode.MISSING_IDENTIFIER); | 784 ParserErrorCode.MISSING_IDENTIFIER); |
804 assertTrue(expression.isSynthetic()); | 785 assertTrue(expression.isSynthetic()); |
805 } | 786 } |
806 | 787 |
807 public void test_missingKeywordOperator() throws Exception { | 788 public void test_missingKeywordOperator() throws Exception { |
808 parse( | 789 parse( |
809 "parseOperator", | 790 "parseOperator", |
810 new Object[] {emptyCommentAndMetadata(), null, null}, | 791 new Object[] {emptyCommentAndMetadata(), null, null}, |
811 "+(x) {}", | 792 "+(x) {}", |
812 ParserErrorCode.MISSING_KEYWORD_OPERATOR); | 793 ParserErrorCode.MISSING_KEYWORD_OPERATOR); |
813 } | 794 } |
814 | 795 |
815 public void test_missingNameInLibraryDirective() throws Exception { | 796 public void test_missingNameInLibraryDirective() throws Exception { |
816 CompilationUnit unit = parse( | 797 CompilationUnit unit = parseCompilationUnit( |
817 "parseCompilationUnit", | |
818 "library;", | 798 "library;", |
819 ParserErrorCode.MISSING_NAME_IN_LIBRARY_DIRECTIVE); | 799 ParserErrorCode.MISSING_NAME_IN_LIBRARY_DIRECTIVE); |
820 assertNotNull(unit); | 800 assertNotNull(unit); |
821 } | 801 } |
822 | 802 |
823 public void test_missingNameInPartOfDirective() throws Exception { | 803 public void test_missingNameInPartOfDirective() throws Exception { |
824 CompilationUnit unit = parse( | 804 CompilationUnit unit = parseCompilationUnit( |
825 "parseCompilationUnit", | |
826 "part of;", | 805 "part of;", |
827 ParserErrorCode.MISSING_NAME_IN_PART_OF_DIRECTIVE); | 806 ParserErrorCode.MISSING_NAME_IN_PART_OF_DIRECTIVE); |
828 assertNotNull(unit); | 807 assertNotNull(unit); |
829 } | 808 } |
830 | 809 |
831 public void test_missingTerminatorForParameterGroup_named() throws Exception { | 810 public void test_missingTerminatorForParameterGroup_named() throws Exception { |
832 parse( | 811 parse( |
833 "parseFormalParameterList", | 812 "parseFormalParameterList", |
834 "(a, {b: 0)", | 813 "(a, {b: 0)", |
835 ParserErrorCode.MISSING_TERMINATOR_FOR_PARAMETER_GROUP); | 814 ParserErrorCode.MISSING_TERMINATOR_FOR_PARAMETER_GROUP); |
836 } | 815 } |
837 | 816 |
838 public void test_missingTerminatorForParameterGroup_optional() throws Exceptio
n { | 817 public void test_missingTerminatorForParameterGroup_optional() throws Exceptio
n { |
839 parse( | 818 parse( |
840 "parseFormalParameterList", | 819 "parseFormalParameterList", |
841 "(a, [b = 0)", | 820 "(a, [b = 0)", |
842 ParserErrorCode.MISSING_TERMINATOR_FOR_PARAMETER_GROUP); | 821 ParserErrorCode.MISSING_TERMINATOR_FOR_PARAMETER_GROUP); |
843 } | 822 } |
844 | 823 |
845 public void test_missingTypedefParameters_nonVoid() throws Exception { | 824 public void test_missingTypedefParameters_nonVoid() throws Exception { |
846 parse("parseCompilationUnit", "typedef int F;", ParserErrorCode.MISSING_TYPE
DEF_PARAMETERS); | 825 parseCompilationUnit("typedef int F;", ParserErrorCode.MISSING_TYPEDEF_PARAM
ETERS); |
847 } | 826 } |
848 | 827 |
849 public void test_missingTypedefParameters_typeParameters() throws Exception { | 828 public void test_missingTypedefParameters_typeParameters() throws Exception { |
850 parse("parseCompilationUnit", "typedef F<E>;", ParserErrorCode.MISSING_TYPED
EF_PARAMETERS); | 829 parseCompilationUnit("typedef F<E>;", ParserErrorCode.MISSING_TYPEDEF_PARAME
TERS); |
851 } | 830 } |
852 | 831 |
853 public void test_missingTypedefParameters_void() throws Exception { | 832 public void test_missingTypedefParameters_void() throws Exception { |
854 parse("parseCompilationUnit", "typedef void F;", ParserErrorCode.MISSING_TYP
EDEF_PARAMETERS); | 833 parseCompilationUnit("typedef void F;", ParserErrorCode.MISSING_TYPEDEF_PARA
METERS); |
855 } | 834 } |
856 | 835 |
857 public void test_missingVariableInForEach() throws Exception { | 836 public void test_missingVariableInForEach() throws Exception { |
858 parse( | 837 parse( |
859 "parseForStatement", | 838 "parseForStatement", |
860 "for (a < b in foo) {}", | 839 "for (a < b in foo) {}", |
861 ParserErrorCode.MISSING_VARIABLE_IN_FOR_EACH); | 840 ParserErrorCode.MISSING_VARIABLE_IN_FOR_EACH); |
862 } | 841 } |
863 | 842 |
864 public void test_mixedParameterGroups_namedPositional() throws Exception { | 843 public void test_mixedParameterGroups_namedPositional() throws Exception { |
865 parse("parseFormalParameterList", "(a, {b}, [c])", ParserErrorCode.MIXED_PAR
AMETER_GROUPS); | 844 parse("parseFormalParameterList", "(a, {b}, [c])", ParserErrorCode.MIXED_PAR
AMETER_GROUPS); |
866 } | 845 } |
867 | 846 |
868 public void test_mixedParameterGroups_positionalNamed() throws Exception { | 847 public void test_mixedParameterGroups_positionalNamed() throws Exception { |
869 parse("parseFormalParameterList", "(a, [b], {c})", ParserErrorCode.MIXED_PAR
AMETER_GROUPS); | 848 parse("parseFormalParameterList", "(a, [b], {c})", ParserErrorCode.MIXED_PAR
AMETER_GROUPS); |
870 } | 849 } |
871 | 850 |
872 public void test_multipleLibraryDirectives() throws Exception { | 851 public void test_multipleLibraryDirectives() throws Exception { |
873 parse( | 852 parseCompilationUnit("library l; library m;", ParserErrorCode.MULTIPLE_LIBRA
RY_DIRECTIVES); |
874 "parseCompilationUnit", | |
875 "library l; library m;", | |
876 ParserErrorCode.MULTIPLE_LIBRARY_DIRECTIVES); | |
877 } | 853 } |
878 | 854 |
879 public void test_multipleNamedParameterGroups() throws Exception { | 855 public void test_multipleNamedParameterGroups() throws Exception { |
880 parse( | 856 parse( |
881 "parseFormalParameterList", | 857 "parseFormalParameterList", |
882 "(a, {b}, {c})", | 858 "(a, {b}, {c})", |
883 ParserErrorCode.MULTIPLE_NAMED_PARAMETER_GROUPS); | 859 ParserErrorCode.MULTIPLE_NAMED_PARAMETER_GROUPS); |
884 } | 860 } |
885 | 861 |
886 public void test_multiplePartOfDirectives() throws Exception { | 862 public void test_multiplePartOfDirectives() throws Exception { |
887 parse( | 863 parseCompilationUnit("part of l; part of m;", ParserErrorCode.MULTIPLE_PART_
OF_DIRECTIVES); |
888 "parseCompilationUnit", | |
889 "part of l; part of m;", | |
890 ParserErrorCode.MULTIPLE_PART_OF_DIRECTIVES); | |
891 } | 864 } |
892 | 865 |
893 public void test_multiplePositionalParameterGroups() throws Exception { | 866 public void test_multiplePositionalParameterGroups() throws Exception { |
894 parse( | 867 parse( |
895 "parseFormalParameterList", | 868 "parseFormalParameterList", |
896 "(a, [b], [c])", | 869 "(a, [b], [c])", |
897 ParserErrorCode.MULTIPLE_POSITIONAL_PARAMETER_GROUPS); | 870 ParserErrorCode.MULTIPLE_POSITIONAL_PARAMETER_GROUPS); |
898 } | 871 } |
899 | 872 |
900 public void test_multipleVariablesInForEach() throws Exception { | 873 public void test_multipleVariablesInForEach() throws Exception { |
(...skipping 17 matching lines...) Expand all Loading... |
918 | 891 |
919 public void test_nonConstructorFactory_method() throws Exception { | 892 public void test_nonConstructorFactory_method() throws Exception { |
920 parse( | 893 parse( |
921 "parseClassMember", | 894 "parseClassMember", |
922 new Object[] {"C"}, | 895 new Object[] {"C"}, |
923 "factory int m() {}", | 896 "factory int m() {}", |
924 ParserErrorCode.NON_CONSTRUCTOR_FACTORY); | 897 ParserErrorCode.NON_CONSTRUCTOR_FACTORY); |
925 } | 898 } |
926 | 899 |
927 public void test_nonIdentifierLibraryName_library() throws Exception { | 900 public void test_nonIdentifierLibraryName_library() throws Exception { |
928 CompilationUnit unit = parse( | 901 CompilationUnit unit = parseCompilationUnit( |
929 "parseCompilationUnit", | |
930 "library 'lib';", | 902 "library 'lib';", |
931 ParserErrorCode.NON_IDENTIFIER_LIBRARY_NAME); | 903 ParserErrorCode.NON_IDENTIFIER_LIBRARY_NAME); |
932 assertNotNull(unit); | 904 assertNotNull(unit); |
933 } | 905 } |
934 | 906 |
935 public void test_nonIdentifierLibraryName_partOf() throws Exception { | 907 public void test_nonIdentifierLibraryName_partOf() throws Exception { |
936 CompilationUnit unit = parse( | 908 CompilationUnit unit = parseCompilationUnit( |
937 "parseCompilationUnit", | |
938 "part of 'lib';", | 909 "part of 'lib';", |
939 ParserErrorCode.NON_IDENTIFIER_LIBRARY_NAME); | 910 ParserErrorCode.NON_IDENTIFIER_LIBRARY_NAME); |
940 assertNotNull(unit); | 911 assertNotNull(unit); |
941 } | 912 } |
942 | 913 |
943 public void test_nonPartOfDirectiveInPart_after() throws Exception { | 914 public void test_nonPartOfDirectiveInPart_after() throws Exception { |
944 parse( | 915 parseCompilationUnit("part of l; part 'f.dart';", ParserErrorCode.NON_PART_O
F_DIRECTIVE_IN_PART); |
945 "parseCompilationUnit", | |
946 "part of l; part 'f.dart';", | |
947 ParserErrorCode.NON_PART_OF_DIRECTIVE_IN_PART); | |
948 } | 916 } |
949 | 917 |
950 public void test_nonPartOfDirectiveInPart_before() throws Exception { | 918 public void test_nonPartOfDirectiveInPart_before() throws Exception { |
951 parse( | 919 parseCompilationUnit("part 'f.dart'; part of m;", ParserErrorCode.NON_PART_O
F_DIRECTIVE_IN_PART); |
952 "parseCompilationUnit", | |
953 "part 'f.dart'; part of m;", | |
954 ParserErrorCode.NON_PART_OF_DIRECTIVE_IN_PART); | |
955 } | 920 } |
956 | 921 |
957 public void test_nonUserDefinableOperator() throws Exception { | 922 public void test_nonUserDefinableOperator() throws Exception { |
958 parse( | 923 parse( |
959 "parseClassMember", | 924 "parseClassMember", |
960 new Object[] {"C"}, | 925 new Object[] {"C"}, |
961 "operator +=(int x) => x + 1;", | 926 "operator +=(int x) => x + 1;", |
962 ParserErrorCode.NON_USER_DEFINABLE_OPERATOR); | 927 ParserErrorCode.NON_USER_DEFINABLE_OPERATOR); |
963 } | 928 } |
964 | 929 |
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1011 | 976 |
1012 public void test_staticOperator_returnType() throws Exception { | 977 public void test_staticOperator_returnType() throws Exception { |
1013 parse( | 978 parse( |
1014 "parseClassMember", | 979 "parseClassMember", |
1015 new Object[] {"C"}, | 980 new Object[] {"C"}, |
1016 "static int operator +(int x) => x + 1;", | 981 "static int operator +(int x) => x + 1;", |
1017 ParserErrorCode.STATIC_OPERATOR); | 982 ParserErrorCode.STATIC_OPERATOR); |
1018 } | 983 } |
1019 | 984 |
1020 public void test_staticTopLevelDeclaration_class() throws Exception { | 985 public void test_staticTopLevelDeclaration_class() throws Exception { |
1021 parse("parseCompilationUnit", "static class C {}", ParserErrorCode.STATIC_TO
P_LEVEL_DECLARATION); | 986 parseCompilationUnit("static class C {}", ParserErrorCode.STATIC_TOP_LEVEL_D
ECLARATION); |
1022 } | 987 } |
1023 | 988 |
1024 public void test_staticTopLevelDeclaration_typedef() throws Exception { | 989 public void test_staticTopLevelDeclaration_typedef() throws Exception { |
1025 parse( | 990 parseCompilationUnit("static typedef F();", ParserErrorCode.STATIC_TOP_LEVEL
_DECLARATION); |
1026 "parseCompilationUnit", | |
1027 "static typedef F();", | |
1028 ParserErrorCode.STATIC_TOP_LEVEL_DECLARATION); | |
1029 } | 991 } |
1030 | 992 |
1031 public void test_staticTopLevelDeclaration_variable() throws Exception { | 993 public void test_staticTopLevelDeclaration_variable() throws Exception { |
1032 parse("parseCompilationUnit", "static var x;", ParserErrorCode.STATIC_TOP_LE
VEL_DECLARATION); | 994 parseCompilationUnit("static var x;", ParserErrorCode.STATIC_TOP_LEVEL_DECLA
RATION); |
1033 } | 995 } |
1034 | 996 |
1035 public void test_switchHasCaseAfterDefaultCase() throws Exception { | 997 public void test_switchHasCaseAfterDefaultCase() throws Exception { |
1036 parse( | 998 parse( |
1037 "parseSwitchStatement", | 999 "parseSwitchStatement", |
1038 "switch (a) {default: return 0; case 1: return 1;}", | 1000 "switch (a) {default: return 0; case 1: return 1;}", |
1039 ParserErrorCode.SWITCH_HAS_CASE_AFTER_DEFAULT_CASE); | 1001 ParserErrorCode.SWITCH_HAS_CASE_AFTER_DEFAULT_CASE); |
1040 } | 1002 } |
1041 | 1003 |
1042 public void test_switchHasCaseAfterDefaultCase_repeated() throws Exception { | 1004 public void test_switchHasCaseAfterDefaultCase_repeated() throws Exception { |
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1102 | 1064 |
1103 public void test_unexpectedToken_semicolonBetweenClassMembers() throws Excepti
on { | 1065 public void test_unexpectedToken_semicolonBetweenClassMembers() throws Excepti
on { |
1104 parse( | 1066 parse( |
1105 "parseClassDeclaration", | 1067 "parseClassDeclaration", |
1106 new Object[] {emptyCommentAndMetadata(), null}, | 1068 new Object[] {emptyCommentAndMetadata(), null}, |
1107 "class C { int x; ; int y;}", | 1069 "class C { int x; ; int y;}", |
1108 ParserErrorCode.UNEXPECTED_TOKEN); | 1070 ParserErrorCode.UNEXPECTED_TOKEN); |
1109 } | 1071 } |
1110 | 1072 |
1111 public void test_unexpectedToken_semicolonBetweenCompilationUnitMembers() thro
ws Exception { | 1073 public void test_unexpectedToken_semicolonBetweenCompilationUnitMembers() thro
ws Exception { |
1112 parse("parseCompilationUnit", "int x; ; int y;", ParserErrorCode.UNEXPECTED_
TOKEN); | 1074 parseCompilationUnit("int x; ; int y;", ParserErrorCode.UNEXPECTED_TOKEN); |
1113 } | 1075 } |
1114 | 1076 |
1115 public void test_useOfUnaryPlusOperator() throws Exception { | 1077 public void test_useOfUnaryPlusOperator() throws Exception { |
1116 parse("parseUnaryExpression", "+x", ParserErrorCode.USE_OF_UNARY_PLUS_OPERAT
OR); | 1078 parse("parseUnaryExpression", "+x", ParserErrorCode.USE_OF_UNARY_PLUS_OPERAT
OR); |
1117 } | 1079 } |
1118 | 1080 |
| 1081 public void test_varAsTypeName_as() throws Exception { |
| 1082 parseExpression("x as var", ParserErrorCode.VAR_AS_TYPE_NAME); |
| 1083 } |
| 1084 |
1119 public void test_varClass() throws Exception { | 1085 public void test_varClass() throws Exception { |
1120 parse("parseCompilationUnit", "var class C {}", ParserErrorCode.VAR_CLASS); | 1086 parseCompilationUnit("var class C {}", ParserErrorCode.VAR_CLASS); |
1121 } | 1087 } |
1122 | 1088 |
1123 public void test_varConstructor() throws Exception { | 1089 public void test_varConstructor() throws Exception { |
1124 parse( | 1090 parse( |
1125 "parseClassMember", | 1091 "parseClassMember", |
1126 new Object[] {"C"}, | 1092 new Object[] {"C"}, |
1127 "var C() {}", | 1093 "var C() {}", |
1128 ParserErrorCode.CONSTRUCTOR_WITH_RETURN_TYPE); | 1094 ParserErrorCode.CONSTRUCTOR_WITH_RETURN_TYPE); |
1129 } | 1095 } |
1130 | 1096 |
1131 public void test_varReturnType() throws Exception { | 1097 public void test_varReturnType() throws Exception { |
1132 parse("parseClassMember", new Object[] {"C"}, "var m() {}", ParserErrorCode.
VAR_RETURN_TYPE); | 1098 parse("parseClassMember", new Object[] {"C"}, "var m() {}", ParserErrorCode.
VAR_RETURN_TYPE); |
1133 } | 1099 } |
1134 | 1100 |
1135 public void test_varTypedef() throws Exception { | 1101 public void test_varTypedef() throws Exception { |
1136 parse("parseCompilationUnit", "var typedef F();", ParserErrorCode.VAR_TYPEDE
F); | 1102 parseCompilationUnit("var typedef F();", ParserErrorCode.VAR_TYPEDEF); |
1137 } | 1103 } |
1138 | 1104 |
1139 public void test_voidField_initializer() throws Exception { | 1105 public void test_voidField_initializer() throws Exception { |
1140 parse("parseClassMember", new Object[] {"C"}, "void x = 0;", ParserErrorCode
.VOID_VARIABLE); | 1106 parse("parseClassMember", new Object[] {"C"}, "void x = 0;", ParserErrorCode
.VOID_VARIABLE); |
1141 } | 1107 } |
1142 | 1108 |
1143 public void test_voidField_noInitializer() throws Exception { | 1109 public void test_voidField_noInitializer() throws Exception { |
1144 parse("parseClassMember", new Object[] {"C"}, "void x;", ParserErrorCode.VOI
D_VARIABLE); | 1110 parse("parseClassMember", new Object[] {"C"}, "void x;", ParserErrorCode.VOI
D_VARIABLE); |
1145 } | 1111 } |
1146 | 1112 |
1147 public void test_voidParameter() throws Exception { | 1113 public void test_voidParameter() throws Exception { |
1148 parse("parseNormalFormalParameter", "void a)", ParserErrorCode.VOID_PARAMETE
R); | 1114 parse("parseNormalFormalParameter", "void a)", ParserErrorCode.VOID_PARAMETE
R); |
1149 } | 1115 } |
1150 | 1116 |
1151 public void test_withBeforeExtends() throws Exception { | 1117 public void test_withBeforeExtends() throws Exception { |
1152 parse( | 1118 parseCompilationUnit("class A with B extends C {}", ParserErrorCode.WITH_BEF
ORE_EXTENDS); |
1153 "parseCompilationUnit", | |
1154 "class A with B extends C {}", | |
1155 ParserErrorCode.WITH_BEFORE_EXTENDS); | |
1156 } | 1119 } |
1157 | 1120 |
1158 public void test_withWithoutExtends() throws Exception { | 1121 public void test_withWithoutExtends() throws Exception { |
1159 parse( | 1122 parse( |
1160 "parseClassDeclaration", | 1123 "parseClassDeclaration", |
1161 new Object[] {emptyCommentAndMetadata(), null}, | 1124 new Object[] {emptyCommentAndMetadata(), null}, |
1162 "class A with B, C {}", | 1125 "class A with B, C {}", |
1163 ParserErrorCode.WITH_WITHOUT_EXTENDS); | 1126 ParserErrorCode.WITH_WITHOUT_EXTENDS); |
1164 } | 1127 } |
1165 | 1128 |
(...skipping 18 matching lines...) Expand all Loading... |
1184 ParserErrorCode.WRONG_TERMINATOR_FOR_PARAMETER_GROUP); | 1147 ParserErrorCode.WRONG_TERMINATOR_FOR_PARAMETER_GROUP); |
1185 } | 1148 } |
1186 | 1149 |
1187 public void test_wrongTerminatorForParameterGroup_optional() throws Exception
{ | 1150 public void test_wrongTerminatorForParameterGroup_optional() throws Exception
{ |
1188 parse( | 1151 parse( |
1189 "parseFormalParameterList", | 1152 "parseFormalParameterList", |
1190 "(a, [b, c})", | 1153 "(a, [b, c})", |
1191 ParserErrorCode.WRONG_TERMINATOR_FOR_PARAMETER_GROUP); | 1154 ParserErrorCode.WRONG_TERMINATOR_FOR_PARAMETER_GROUP); |
1192 } | 1155 } |
1193 } | 1156 } |
OLD | NEW |