| OLD | NEW |
| 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 library engine.resolver_test; | 5 library engine.resolver_test; |
| 6 | 6 |
| 7 import 'dart:collection'; | 7 import 'dart:collection'; |
| 8 import 'package:analyzer/src/generated/java_core.dart'; | 8 import 'package:analyzer/src/generated/java_core.dart'; |
| 9 import 'package:analyzer/src/generated/java_engine.dart'; | 9 import 'package:analyzer/src/generated/java_engine.dart'; |
| 10 import 'package:analyzer/src/generated/java_engine_io.dart'; | 10 import 'package:analyzer/src/generated/java_engine_io.dart'; |
| (...skipping 3322 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3333 static m() {} | 3333 static m() {} |
| 3334 } | 3334 } |
| 3335 main() { | 3335 main() { |
| 3336 _A.m(); | 3336 _A.m(); |
| 3337 }'''); | 3337 }'''); |
| 3338 resolve(source); | 3338 resolve(source); |
| 3339 assertNoErrors(source); | 3339 assertNoErrors(source); |
| 3340 verify([source]); | 3340 verify([source]); |
| 3341 } | 3341 } |
| 3342 | 3342 |
| 3343 void test_unusedLocalVariable() { | 3343 void test_unusedElement_method_notUsed_noReference() { |
| 3344 enableUnusedElement = true; |
| 3345 Source source = addSource(r''' |
| 3346 class A { |
| 3347 static _m() {} |
| 3348 }'''); |
| 3349 resolve(source); |
| 3350 assertErrors(source, [HintCode.UNUSED_ELEMENT]); |
| 3351 verify([source]); |
| 3352 } |
| 3353 |
| 3354 void test_unusedElement_method_notUsed_referenceFromItself() { |
| 3355 enableUnusedElement = true; |
| 3356 Source source = addSource(r''' |
| 3357 class A { |
| 3358 static _m(int p) { |
| 3359 _m(p - 1); |
| 3360 } |
| 3361 }'''); |
| 3362 resolve(source); |
| 3363 assertErrors(source, [HintCode.UNUSED_ELEMENT]); |
| 3364 verify([source]); |
| 3365 } |
| 3366 |
| 3367 void test_unusedElement_method_isUsed_staticInvocation() { |
| 3368 enableUnusedElement = true; |
| 3369 Source source = addSource(r''' |
| 3370 class A { |
| 3371 static _m() {} |
| 3372 } |
| 3373 main() { |
| 3374 A._m(); |
| 3375 }'''); |
| 3376 resolve(source); |
| 3377 assertNoErrors(source); |
| 3378 verify([source]); |
| 3379 } |
| 3380 |
| 3381 void test_unusedElement_method_isUsed_invocation_static() { |
| 3382 enableUnusedElement = true; |
| 3383 Source source = addSource(r''' |
| 3384 class A { |
| 3385 _m() {} |
| 3386 } |
| 3387 main() { |
| 3388 A a = new A(); |
| 3389 a._m(); |
| 3390 }'''); |
| 3391 resolve(source); |
| 3392 assertNoErrors(source); |
| 3393 verify([source]); |
| 3394 } |
| 3395 |
| 3396 void test_unusedElement_method_isUsed_invocation_implicitThis() { |
| 3397 enableUnusedElement = true; |
| 3398 Source source = addSource(r''' |
| 3399 class A { |
| 3400 _m() {} |
| 3401 useMethod() { |
| 3402 _m(); |
| 3403 } |
| 3404 }'''); |
| 3405 resolve(source); |
| 3406 assertNoErrors(source); |
| 3407 verify([source]); |
| 3408 } |
| 3409 |
| 3410 void test_unusedElement_method_isUsed_invocation_propagated() { |
| 3411 enableUnusedElement = true; |
| 3412 Source source = addSource(r''' |
| 3413 class A { |
| 3414 _m() {} |
| 3415 } |
| 3416 main() { |
| 3417 var a = new A(); |
| 3418 a._m(); |
| 3419 }'''); |
| 3420 resolve(source); |
| 3421 assertNoErrors(source); |
| 3422 verify([source]); |
| 3423 } |
| 3424 |
| 3425 void test_unusedElement_method_isUsed_invocation_subclass() { |
| 3426 enableUnusedElement = true; |
| 3427 Source source = addSource(r''' |
| 3428 class A { |
| 3429 _m() {} |
| 3430 } |
| 3431 class B extends A { |
| 3432 _m() {} |
| 3433 } |
| 3434 main(A a) { |
| 3435 a._m(); |
| 3436 }'''); |
| 3437 resolve(source); |
| 3438 assertNoErrors(source); |
| 3439 verify([source]); |
| 3440 } |
| 3441 |
| 3442 void test_unusedElement_method_isUsed_invocation_implicitThis_subclass() { |
| 3443 enableUnusedElement = true; |
| 3444 Source source = addSource(r''' |
| 3445 class A { |
| 3446 _m() {} |
| 3447 useMethod() { |
| 3448 _m(); |
| 3449 } |
| 3450 } |
| 3451 class B extends A { |
| 3452 _m() {} |
| 3453 }'''); |
| 3454 resolve(source); |
| 3455 assertNoErrors(source); |
| 3456 verify([source]); |
| 3457 } |
| 3458 |
| 3459 void test_unusedElement_method_isUsed_invocation_MemberElement() { |
| 3460 enableUnusedElement = true; |
| 3461 Source source = addSource(r''' |
| 3462 class A<T> { |
| 3463 _m(T t) {} |
| 3464 } |
| 3465 main(A<int> a) { |
| 3466 a._m(0); |
| 3467 }'''); |
| 3468 resolve(source); |
| 3469 assertNoErrors(source); |
| 3470 verify([source]); |
| 3471 } |
| 3472 |
| 3473 void test_unusedElement_method_isUsed_notPrivate() { |
| 3474 enableUnusedElement = true; |
| 3475 Source source = addSource(r''' |
| 3476 class A { |
| 3477 m() {} |
| 3478 } |
| 3479 main() { |
| 3480 }'''); |
| 3481 resolve(source); |
| 3482 assertNoErrors(source); |
| 3483 verify([source]); |
| 3484 } |
| 3485 |
| 3486 void test_unusedElement_method_isUsed_hasReference_implicitThis() { |
| 3487 enableUnusedElement = true; |
| 3488 Source source = addSource(r''' |
| 3489 class A { |
| 3490 _m() {} |
| 3491 useMethod() { |
| 3492 print(_m); |
| 3493 } |
| 3494 } |
| 3495 print(x) {} |
| 3496 '''); |
| 3497 resolve(source); |
| 3498 assertNoErrors(source); |
| 3499 verify([source]); |
| 3500 } |
| 3501 |
| 3502 void test_unusedElement_method_isUsed_hasReference_implicitThis_subclass() { |
| 3503 enableUnusedElement = true; |
| 3504 Source source = addSource(r''' |
| 3505 class A { |
| 3506 _m() {} |
| 3507 useMethod() { |
| 3508 print(_m); |
| 3509 } |
| 3510 } |
| 3511 class B extends A { |
| 3512 _m() {} |
| 3513 } |
| 3514 print(x) {} |
| 3515 '''); |
| 3516 resolve(source); |
| 3517 assertNoErrors(source); |
| 3518 verify([source]); |
| 3519 } |
| 3520 |
| 3521 void test_unusedElement_method_isUsed_hasReference_PropertyAccess() { |
| 3522 enableUnusedElement = true; |
| 3523 Source source = addSource(r''' |
| 3524 class A { |
| 3525 _m() {} |
| 3526 } |
| 3527 main() { |
| 3528 new A()._m; |
| 3529 }'''); |
| 3530 resolve(source); |
| 3531 assertNoErrors(source); |
| 3532 verify([source]); |
| 3533 } |
| 3534 |
| 3535 void test_unusedElement_method_isUsed_hasReference_PrefixedIdentifier() { |
| 3536 enableUnusedElement = true; |
| 3537 Source source = addSource(r''' |
| 3538 class A { |
| 3539 _m() {} |
| 3540 } |
| 3541 main(A a) { |
| 3542 a._m; |
| 3543 }'''); |
| 3544 resolve(source); |
| 3545 assertNoErrors(source); |
| 3546 verify([source]); |
| 3547 } |
| 3548 |
| 3549 void test_unusedLocalVariable_inFunction() { |
| 3344 enableUnusedLocalVariable = true; | 3550 enableUnusedLocalVariable = true; |
| 3345 Source source = addSource(r''' | 3551 Source source = addSource(r''' |
| 3346 main() { | 3552 main() { |
| 3347 var v = 1; | 3553 var v = 1; |
| 3348 v = 2; | 3554 v = 2; |
| 3349 }'''); | 3555 }'''); |
| 3350 resolve(source); | 3556 resolve(source); |
| 3351 assertErrors(source, [HintCode.UNUSED_LOCAL_VARIABLE]); | 3557 assertErrors(source, [HintCode.UNUSED_LOCAL_VARIABLE]); |
| 3352 verify([source]); | 3558 verify([source]); |
| 3353 } | 3559 } |
| 3354 | 3560 |
| 3561 void test_unusedLocalVariable_inMethod() { |
| 3562 enableUnusedLocalVariable = true; |
| 3563 Source source = addSource(r''' |
| 3564 class A { |
| 3565 foo() { |
| 3566 var v = 1; |
| 3567 v = 2; |
| 3568 } |
| 3569 }'''); |
| 3570 resolve(source); |
| 3571 assertErrors(source, [HintCode.UNUSED_LOCAL_VARIABLE]); |
| 3572 verify([source]); |
| 3573 } |
| 3574 |
| 3355 void test_unusedLocalVariable_isRead_notUsed_compoundAssign() { | 3575 void test_unusedLocalVariable_isRead_notUsed_compoundAssign() { |
| 3356 enableUnusedLocalVariable = true; | 3576 enableUnusedLocalVariable = true; |
| 3357 Source source = addSource(r''' | 3577 Source source = addSource(r''' |
| 3358 main() { | 3578 main() { |
| 3359 var v = 1; | 3579 var v = 1; |
| 3360 v += 2; | 3580 v += 2; |
| 3361 }'''); | 3581 }'''); |
| 3362 resolve(source); | 3582 resolve(source); |
| 3363 assertErrors(source, [HintCode.UNUSED_LOCAL_VARIABLE]); | 3583 assertErrors(source, [HintCode.UNUSED_LOCAL_VARIABLE]); |
| 3364 verify([source]); | 3584 verify([source]); |
| (...skipping 8531 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 11896 runReflectiveTests(TypeResolverVisitorTest); | 12116 runReflectiveTests(TypeResolverVisitorTest); |
| 11897 runReflectiveTests(CheckedModeCompileTimeErrorCodeTest); | 12117 runReflectiveTests(CheckedModeCompileTimeErrorCodeTest); |
| 11898 runReflectiveTests(ErrorResolverTest); | 12118 runReflectiveTests(ErrorResolverTest); |
| 11899 runReflectiveTests(HintCodeTest); | 12119 runReflectiveTests(HintCodeTest); |
| 11900 runReflectiveTests(MemberMapTest); | 12120 runReflectiveTests(MemberMapTest); |
| 11901 runReflectiveTests(NonHintCodeTest); | 12121 runReflectiveTests(NonHintCodeTest); |
| 11902 runReflectiveTests(SimpleResolverTest); | 12122 runReflectiveTests(SimpleResolverTest); |
| 11903 runReflectiveTests(StrictModeTest); | 12123 runReflectiveTests(StrictModeTest); |
| 11904 runReflectiveTests(TypePropagationTest); | 12124 runReflectiveTests(TypePropagationTest); |
| 11905 } | 12125 } |
| OLD | NEW |