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

Side by Side Diff: compiler/javatests/com/google/dart/compiler/resolver/NegativeResolverTest.java

Issue 8846002: Tweaks for reporting duplicates, issue 519. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Fix for issue 647. Remove FIELD. Created 9 years 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) 2011, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2011, 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 package com.google.dart.compiler.resolver; 4 package com.google.dart.compiler.resolver;
5 5
6 import com.google.dart.compiler.CompilerTestCase; 6 import com.google.dart.compiler.CompilerTestCase;
7 import com.google.dart.compiler.DartCompilationError; 7 import com.google.dart.compiler.DartCompilationError;
8 import com.google.dart.compiler.ast.DartThisExpression; 8 import com.google.dart.compiler.ast.DartThisExpression;
9 import com.google.dart.compiler.ast.DartUnit; 9 import com.google.dart.compiler.ast.DartUnit;
10 import com.google.dart.compiler.testing.TestCompilerContext; 10 import com.google.dart.compiler.testing.TestCompilerContext;
(...skipping 196 matching lines...) Expand 10 before | Expand all | Expand 10 after
207 makeCode( 207 makeCode(
208 "// filler filler filler filler filler filler filler filler filler f iller", 208 "// filler filler filler filler filler filler filler filler filler f iller",
209 "class A {", 209 "class A {",
210 " factory A() {", 210 " factory A() {",
211 " return super.foo();", 211 " return super.foo();",
212 " }", 212 " }",
213 "}"), 213 "}"),
214 errEx(ResolverErrorCode.SUPER_IN_FACTORY_CONSTRUCTOR, 4, 12, 5)); 214 errEx(ResolverErrorCode.SUPER_IN_FACTORY_CONSTRUCTOR, 4, 12, 5));
215 } 215 }
216 216
217 public void testNameConflict_field_field() {
218 checkSourceErrors(
219 makeCode(
220 "class ClassDeclarationWithLongEnoughNameToForceLineSplitting {",
221 " var foo;",
222 " var foo;",
223 "}"),
224 errEx(ResolverErrorCode.DUPLICATE_MEMBER, 2, 7, 3),
225 errEx(ResolverErrorCode.DUPLICATE_MEMBER, 3, 7, 3));
226 }
227
217 public void testCall1() { 228 public void testCall1() {
218 checkNumErrors("StaticInstanceCallNegativeTest.dart", 1); 229 checkNumErrors("StaticInstanceCallNegativeTest.dart", 1);
219 } 230 }
220 231
221 public void testClassExtendsInterfaceNegativeTest() { 232 public void testClassExtendsInterfaceNegativeTest() {
222 checkNumErrors("ClassExtendsInterfaceNegativeTest.dart", 1); 233 checkNumErrors("ClassExtendsInterfaceNegativeTest.dart", 1);
223 } 234 }
224 235
225 public void tesClassImplementsUnknownInterfaceNegativeTest() { 236 public void tesClassImplementsUnknownInterfaceNegativeTest() {
226 checkNumErrors("ClassImplementsUnknownInterfaceNegativeTest.dart", 1); 237 checkNumErrors("ClassImplementsUnknownInterfaceNegativeTest.dart", 1);
(...skipping 28 matching lines...) Expand all
255 } 266 }
256 267
257 public void testConstVariableInitializationNegativeTest1() { 268 public void testConstVariableInitializationNegativeTest1() {
258 checkNumErrors("ConstVariableInitializationNegativeTest1.dart", 1); 269 checkNumErrors("ConstVariableInitializationNegativeTest1.dart", 1);
259 } 270 }
260 271
261 public void testConstVariableInitializationNegativeTest2() { 272 public void testConstVariableInitializationNegativeTest2() {
262 checkNumErrors("ConstVariableInitializationNegativeTest2.dart", 1); 273 checkNumErrors("ConstVariableInitializationNegativeTest2.dart", 1);
263 } 274 }
264 275
265 public void testNameShadowNegativeTest1() { 276 public void test_nameShadow_topLevel_getterSetter_class() {
266 checkNumErrors("NameShadowNegativeTest1.dart", 1); 277 checkSourceErrors(
267 } 278 makeCode(
268 279 "// filler filler filler filler filler filler filler filler filler f iller",
269 public void testNameShadowNegativeTest2() { 280 "get foo() {}",
270 checkNumErrors("NameShadowNegativeTest2.dart", 1); 281 "set bar(x) {}",
271 } 282 "class foo {}",
272 283 "class bar{}"),
273 public void testNameShadowNegativeTest4() { 284 errEx(ResolverErrorCode.DUPLICATE_TOP_LEVEL_DEFINITION, 2, 5, 3),
274 checkNumErrors("NameShadowNegativeTest4.dart", 1); 285 errEx(ResolverErrorCode.DUPLICATE_TOP_LEVEL_DEFINITION, 4, 7, 3),
275 } 286 errEx(ResolverErrorCode.DUPLICATE_TOP_LEVEL_DEFINITION, 3, 5, 3),
276 287 errEx(ResolverErrorCode.DUPLICATE_TOP_LEVEL_DEFINITION, 5, 7, 3));
277 public void testNameShadowNegativeTest5() { 288 }
278 checkNumErrors("NameShadowNegativeTest5.dart", 1); 289
279 } 290 public void test_nameShadow_topLevel_class_getterSetter() {
280 291 checkSourceErrors(
281 public void testNameShadowNegativeTest6() { 292 makeCode(
282 checkNumErrors("NameShadowNegativeTest6.dart", 1); 293 "// filler filler filler filler filler filler filler filler filler f iller",
283 } 294 "class foo {}",
284 295 "class bar {}",
285 public void testNameShadowNegativeTest7() { 296 "get foo() {}",
286 checkNumErrors("NameShadowNegativeTest7.dart", 1); 297 "set bar(x) {}"),
287 } 298 errEx(ResolverErrorCode.DUPLICATE_TOP_LEVEL_DEFINITION, 2, 7, 3),
288 299 errEx(ResolverErrorCode.DUPLICATE_TOP_LEVEL_DEFINITION, 4, 5, 3),
289 public void testNameShadowNegativeTest8() { 300 errEx(ResolverErrorCode.DUPLICATE_TOP_LEVEL_DEFINITION, 3, 7, 3),
290 checkNumErrors("NameShadowNegativeTest8.dart", 1); 301 errEx(ResolverErrorCode.DUPLICATE_TOP_LEVEL_DEFINITION, 5, 5, 3));
291 } 302 }
292 303
293 public void testNameShadowNegativeTest9() { 304 public void test_nameShadow_topLevel_getter_setter() {
294 checkNumErrors("NameShadowNegativeTest9.dart", 1); 305 checkSourceErrors(makeCode(
295 } 306 "// filler filler filler filler filler filler filler filler filler fille r",
296 307 "get bar() {}",
297 public void testNameShadowNegativeTest10() { 308 "set bar(x) {}"));
298 checkNumErrors("NameShadowNegativeTest10.dart", 1); 309 }
299 } 310
300 311 public void test_nameShadow_topLevel_setter_getter() {
301 public void testNameShadowNegativeTest11() { 312 checkSourceErrors(makeCode(
302 checkNumErrors("NameShadowNegativeTest11.dart", 1); 313 "// filler filler filler filler filler filler filler filler filler fille r",
314 "set bar(x) {}",
315 "get bar() {}"));
316 }
317
318 public void test_nameShadow_topLevel_getters() {
319 checkSourceErrors(
320 makeCode(
321 "// filler filler filler filler filler filler filler filler filler f iller",
322 "get bar() {}",
323 "get bar() {}"),
324 errEx(ResolverErrorCode.DUPLICATE_TOP_LEVEL_DEFINITION, 2, 5, 3),
325 errEx(ResolverErrorCode.DUPLICATE_TOP_LEVEL_DEFINITION, 3, 5, 3));
326 }
327
328 public void test_nameShadow_topLevel_setters() {
329 checkSourceErrors(
330 makeCode(
331 "// filler filler filler filler filler filler filler filler filler f iller",
332 "set bar(x) {}",
333 "set bar(x) {}"),
334 errEx(ResolverErrorCode.DUPLICATE_TOP_LEVEL_DEFINITION, 2, 5, 3),
335 errEx(ResolverErrorCode.DUPLICATE_TOP_LEVEL_DEFINITION, 3, 5, 3));
336 }
337
338 /**
339 * Multiple unnamed constructor definitions.
340 */
341 public void test_nameShadow_unnamedConstructors() {
342 checkSourceErrors(
343 makeCode(
344 "// filler filler filler filler filler filler filler filler filler f iller",
345 "class A {",
346 " A(x) {}",
347 " A(x,y) {}",
348 "}"),
349 errEx(ResolverErrorCode.DUPLICATE_MEMBER, 3, 3, 1),
350 errEx(ResolverErrorCode.DUPLICATE_MEMBER, 4, 3, 1));
351 {
352 String message = errors.get(0).getMessage();
353 assertTrue(message, message.contains("'A'"));
354 }
355 {
356 String message = errors.get(1).getMessage();
357 assertTrue(message, message.contains("'A'"));
358 }
359 }
360
361 /**
362 * Multiple unnamed constructor definitions. Make sure modifiers works as expe cted.
363 */
364 public void test_nameShadow_unnamedConstructors_constModifier() {
365 checkSourceErrors(
366 makeCode(
367 "// filler filler filler filler filler filler filler filler filler f iller",
368 "class A {",
369 " A(x) {}",
370 " const A(x,y) {}",
371 "}"),
372 errEx(ResolverErrorCode.DUPLICATE_MEMBER, 3, 3, 1),
373 errEx(ResolverErrorCode.DUPLICATE_MEMBER, 4, 9, 1),
374 errEx(ResolverErrorCode.CONST_CONSTRUCTOR_CANNOT_HAVE_BODY, 4, 9, 1));
375 {
376 String message = errors.get(0).getMessage();
377 assertTrue(message, message.contains("'A'"));
378 }
379 }
380
381 /**
382 * Named constructor shadows another named constructor.
383 */
384 public void test_nameShadow_namedConstructors() {
385 checkSourceErrors(
386 makeCode(
387 "// filler filler filler filler filler filler filler filler filler f iller",
388 "class A {",
389 " A.foo() {}",
390 " A.foo() {}",
391 "}"),
392 errEx(ResolverErrorCode.DUPLICATE_MEMBER, 3, 3, 5),
393 errEx(ResolverErrorCode.DUPLICATE_MEMBER, 4, 3, 5));
394 {
395 String message = errors.get(0).getMessage();
396 assertTrue(message, message.contains("'A.foo'"));
397 }
398 {
399 String message = errors.get(1).getMessage();
400 assertTrue(message, message.contains("'A.foo'"));
401 }
402 }
403
404 /**
405 * Method shadows another method.
406 */
407 public void test_nameShadow_methods() {
408 checkSourceErrors(
409 makeCode(
410 "// filler filler filler filler filler filler filler filler filler f iller",
411 "class A {",
412 " foo() {}",
413 " foo() {}",
414 "}"),
415 errEx(ResolverErrorCode.DUPLICATE_MEMBER, 3, 3, 3),
416 errEx(ResolverErrorCode.DUPLICATE_MEMBER, 4, 3, 3));
417 }
418
419 /**
420 * Field shadows method.
421 */
422 public void test_nameShadow_method_field() {
423 checkSourceErrors(
424 makeCode(
425 "// filler filler filler filler filler filler filler filler filler f iller",
426 "class A {",
427 " foo() {}",
428 " var foo;",
429 "}"),
430 errEx(ResolverErrorCode.DUPLICATE_MEMBER, 3, 3, 3),
431 errEx(ResolverErrorCode.DUPLICATE_MEMBER, 4, 7, 3));
432 }
433
434 /**
435 * Static method shadows instance method.
436 */
437 public void test_nameShadow_method_staticMethod() {
438 checkSourceErrors(
439 makeCode(
440 "// filler filler filler filler filler filler filler filler filler f iller",
441 "class A {",
442 " foo(x) {}",
443 " static foo(a,b) {}",
444 "}"),
445 errEx(ResolverErrorCode.DUPLICATE_MEMBER, 3, 3, 3),
446 errEx(ResolverErrorCode.DUPLICATE_MEMBER, 4, 10, 3));
447 }
448
449 /**
450 * Field shadows another field.
451 */
452 public void test_nameShadow_fields() {
453 checkSourceErrors(
454 makeCode(
455 "// filler filler filler filler filler filler filler filler filler f iller",
456 "class A {",
457 " var _a;",
458 " var _a;",
459 "}"),
460 errEx(ResolverErrorCode.DUPLICATE_MEMBER, 3, 7, 2),
461 errEx(ResolverErrorCode.DUPLICATE_MEMBER, 4, 7, 2));
462 }
463
464 /**
465 * Field shadows setter/getter.
466 */
467 public void test_nameShadow_setter_field() {
468 checkSourceErrors(
469 makeCode(
470 "// filler filler filler filler filler filler filler filler filler f iller",
471 "class A {",
472 " set foo(x) {}",
473 " get foo() {}",
474 " var foo;",
475 "}"),
476 errEx(ResolverErrorCode.DUPLICATE_MEMBER, 3, 7, 3),
477 errEx(ResolverErrorCode.DUPLICATE_MEMBER, 5, 7, 3));
478 }
479
480 /**
481 * Setter shadows field.
482 */
483 public void test_nameShadow_field_setter() {
484 checkSourceErrors(
485 makeCode(
486 "// filler filler filler filler filler filler filler filler filler f iller",
487 "class A {",
488 " var foo;",
489 " set foo(x) {}",
490 "}"),
491 errEx(ResolverErrorCode.DUPLICATE_MEMBER, 3, 7, 3),
492 errEx(ResolverErrorCode.DUPLICATE_MEMBER, 4, 7, 3));
493 }
494
495 /**
496 * Method shadows setter.
497 */
498 public void test_nameShadow_setter_method() {
499 checkSourceErrors(
500 makeCode(
501 "// filler filler filler filler filler filler filler filler filler f iller",
502 "class A {",
503 " set foo(x) {}",
504 " foo() {}",
505 "}"),
506 errEx(ResolverErrorCode.DUPLICATE_MEMBER, 3, 7, 3),
507 errEx(ResolverErrorCode.DUPLICATE_MEMBER, 4, 3, 3));
508 }
509
510 /**
511 * Getter shadows field.
512 */
513 public void test_nameShadow_field_getter() {
514 checkSourceErrors(
515 makeCode(
516 "// filler filler filler filler filler filler filler filler filler f iller",
517 "class A {",
518 " var foo;",
519 " get foo() {}",
520 "}"),
521 errEx(ResolverErrorCode.DUPLICATE_MEMBER, 3, 7, 3),
522 errEx(ResolverErrorCode.DUPLICATE_MEMBER, 4, 7, 3));
523 }
524
525 /**
526 * Setter shadows another setter.
zundel 2011/12/12 16:02:59 Setter --> Getter and setter --> getter
527 */
528 public void test_nameShadow_getters() {
529 checkSourceErrors(
530 makeCode(
531 "// filler filler filler filler filler filler filler filler filler f iller",
532 "class A {",
533 " get foo() {}",
534 " set foo(x) {}",
535 " get foo() {}",
536 "}"),
537 errEx(ResolverErrorCode.DUPLICATE_MEMBER, 3, 7, 3),
538 errEx(ResolverErrorCode.DUPLICATE_MEMBER, 5, 7, 3));
539 }
540
541 /**
542 * Setter shadows another setter.
543 */
544 public void test_nameShadow_setters() {
545 checkSourceErrors(
546 makeCode(
547 "// filler filler filler filler filler filler filler filler filler f iller",
548 "class A {",
549 " set foo(x) {}",
550 " get foo() {}",
551 " set foo(x) {}",
552 "}"),
553 errEx(ResolverErrorCode.DUPLICATE_MEMBER, 3, 7, 3),
554 errEx(ResolverErrorCode.DUPLICATE_MEMBER, 5, 7, 3));
555 }
556
557 /**
558 * Field shadows getter.
559 */
560 public void test_nameShadow_getter_field() {
561 checkSourceErrors(
562 makeCode(
563 "// filler filler filler filler filler filler filler filler filler f iller",
564 "class A {",
565 " get foo() {}",
566 " var foo;",
567 "}"),
568 errEx(ResolverErrorCode.DUPLICATE_MEMBER, 3, 7, 3),
569 errEx(ResolverErrorCode.DUPLICATE_MEMBER, 4, 7, 3));
570 }
571
572 /**
573 * Setter shadows method.
574 */
575 public void test_nameShadow_method_setter() {
576 checkSourceErrors(
577 makeCode(
578 "// filler filler filler filler filler filler filler filler filler f iller",
579 "class A {",
580 " foo() {}",
581 " set foo(x) {}",
582 "}"),
583 errEx(ResolverErrorCode.DUPLICATE_MEMBER, 3, 3, 3),
584 errEx(ResolverErrorCode.DUPLICATE_MEMBER, 4, 7, 3));
303 } 585 }
304 586
305 public void testUnresolvedSuperFieldNegativeTest() { 587 public void testUnresolvedSuperFieldNegativeTest() {
306 checkNumErrors("UnresolvedSuperFieldNegativeTest.dart", 1); 588 checkNumErrors("UnresolvedSuperFieldNegativeTest.dart", 1);
307 } 589 }
308 590
309 public void testStaticSuperFieldNegativeTest() { 591 public void testStaticSuperFieldNegativeTest() {
310 checkNumErrors("StaticSuperFieldNegativeTest.dart", 1); 592 checkNumErrors("StaticSuperFieldNegativeTest.dart", 1);
311 } 593 }
312 594
(...skipping 19 matching lines...) Expand all
332 614
333 private TestCompilerContext getContext() { 615 private TestCompilerContext getContext() {
334 return new TestCompilerContext() { 616 return new TestCompilerContext() {
335 @Override 617 @Override
336 public void onError(DartCompilationError event) { 618 public void onError(DartCompilationError event) {
337 errors.add(event); 619 errors.add(event);
338 } 620 }
339 }; 621 };
340 } 622 }
341 } 623 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698