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

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

Issue 724113002: Report HintCode.UNUSED_ELEMENT for non-synthetic property accessors. (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
« no previous file with comments | « pkg/analyzer/lib/src/generated/resolver.dart ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 library 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
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_unusedElement_getter_notUsed_noReference() {
3344 enableUnusedElement = true;
3345 Source source = addSource(r'''
3346 class A {
3347 get _g => null;
3348 }''');
3349 resolve(source);
3350 assertErrors(source, [HintCode.UNUSED_ELEMENT]);
3351 verify([source]);
3352 }
3353
3354 void test_unusedElement_getter_notUsed_referenceFromItself() {
3355 enableUnusedElement = true;
3356 Source source = addSource(r'''
3357 class A {
3358 get _g {
3359 return _g;
3360 }
3361 }''');
3362 resolve(source);
3363 assertErrors(source, [HintCode.UNUSED_ELEMENT]);
3364 verify([source]);
3365 }
3366
3367 void test_unusedElement_getter_isUsed_invocation_implicitThis() {
3368 enableUnusedElement = true;
3369 Source source = addSource(r'''
3370 class A {
3371 get _g => null;
3372 useGetter() {
3373 var v = _g;
Brian Wilkerson 2014/11/13 17:12:34 I assume that we will eventually generate a hint f
scheglov 2014/11/13 17:14:43 We have a lot of tests like this, that don't use d
3374 }
3375 }''');
3376 resolve(source);
3377 assertNoErrors(source);
3378 verify([source]);
3379 }
3380
3381 void test_unusedElement_getter_isUsed_invocation_PrefixedIdentifier() {
3382 enableUnusedElement = true;
3383 Source source = addSource(r'''
3384 class A {
3385 get _g => null;
3386 }
3387 main(A a) {
3388 var v = a._g;
3389 }
3390 ''');
3391 resolve(source);
3392 assertNoErrors(source);
3393 verify([source]);
3394 }
3395
3396 void test_unusedElement_getter_isUsed_invocation_PropertyAccess() {
3397 enableUnusedElement = true;
3398 Source source = addSource(r'''
3399 class A {
3400 get _g => null;
3401 }
3402 main() {
3403 var v = new A()._g;
3404 }
3405 ''');
3406 resolve(source);
3407 assertNoErrors(source);
3408 verify([source]);
3409 }
3410
3411 void test_unusedElement_setter_notUsed_noReference() {
3412 enableUnusedElement = true;
3413 Source source = addSource(r'''
3414 class A {
3415 set _s(x) {}
3416 }''');
3417 resolve(source);
3418 assertErrors(source, [HintCode.UNUSED_ELEMENT]);
3419 verify([source]);
3420 }
3421
3422 void test_unusedElement_setter_notUsed_referenceFromItself() {
3423 enableUnusedElement = true;
3424 Source source = addSource(r'''
3425 class A {
3426 set _s(int x) {
3427 if (x > 5) {
3428 _s = x - 1;
3429 }
3430 }
3431 }''');
3432 resolve(source);
3433 assertErrors(source, [HintCode.UNUSED_ELEMENT]);
3434 verify([source]);
3435 }
3436
3437 void test_unusedElement_setter_isUsed_invocation_implicitThis() {
3438 enableUnusedElement = true;
3439 Source source = addSource(r'''
3440 class A {
3441 set _s(x) {}
3442 useSetter() {
3443 _s = 42;
3444 }
3445 }''');
3446 resolve(source);
3447 assertNoErrors(source);
3448 verify([source]);
3449 }
3450
3451 void test_unusedElement_setter_isUsed_invocation_PrefixedIdentifier() {
3452 enableUnusedElement = true;
3453 Source source = addSource(r'''
3454 class A {
3455 set _s(x) {}
3456 }
3457 main(A a) {
3458 a._s = 42;
3459 }
3460 ''');
3461 resolve(source);
3462 assertNoErrors(source);
3463 verify([source]);
3464 }
3465
3466 void test_unusedElement_setter_isUsed_invocation_PropertyAccess() {
3467 enableUnusedElement = true;
3468 Source source = addSource(r'''
3469 class A {
3470 set _s(x) {}
3471 }
3472 main() {
3473 new A()._s = 42;
3474 }
3475 ''');
3476 resolve(source);
3477 assertNoErrors(source);
3478 verify([source]);
3479 }
3480
3343 void test_unusedElement_method_notUsed_noReference() { 3481 void test_unusedElement_method_notUsed_noReference() {
3344 enableUnusedElement = true; 3482 enableUnusedElement = true;
3345 Source source = addSource(r''' 3483 Source source = addSource(r'''
3346 class A { 3484 class A {
3347 static _m() {} 3485 static _m() {}
3348 }'''); 3486 }''');
3349 resolve(source); 3487 resolve(source);
3350 assertErrors(source, [HintCode.UNUSED_ELEMENT]); 3488 assertErrors(source, [HintCode.UNUSED_ELEMENT]);
3351 verify([source]); 3489 verify([source]);
3352 } 3490 }
(...skipping 8763 matching lines...) Expand 10 before | Expand all | Expand 10 after
12116 runReflectiveTests(TypeResolverVisitorTest); 12254 runReflectiveTests(TypeResolverVisitorTest);
12117 runReflectiveTests(CheckedModeCompileTimeErrorCodeTest); 12255 runReflectiveTests(CheckedModeCompileTimeErrorCodeTest);
12118 runReflectiveTests(ErrorResolverTest); 12256 runReflectiveTests(ErrorResolverTest);
12119 runReflectiveTests(HintCodeTest); 12257 runReflectiveTests(HintCodeTest);
12120 runReflectiveTests(MemberMapTest); 12258 runReflectiveTests(MemberMapTest);
12121 runReflectiveTests(NonHintCodeTest); 12259 runReflectiveTests(NonHintCodeTest);
12122 runReflectiveTests(SimpleResolverTest); 12260 runReflectiveTests(SimpleResolverTest);
12123 runReflectiveTests(StrictModeTest); 12261 runReflectiveTests(StrictModeTest);
12124 runReflectiveTests(TypePropagationTest); 12262 runReflectiveTests(TypePropagationTest);
12125 } 12263 }
OLDNEW
« no previous file with comments | « pkg/analyzer/lib/src/generated/resolver.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698