| OLD | NEW |
| 1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2016, 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 analyzer.test.generated.hint_code_test; | 5 library analyzer.test.generated.hint_code_test; |
| 6 | 6 |
| 7 import 'package:analyzer/src/generated/engine.dart'; | 7 import 'package:analyzer/src/generated/engine.dart'; |
| 8 import 'package:analyzer/src/generated/error.dart'; | 8 import 'package:analyzer/src/generated/error.dart'; |
| 9 import 'package:analyzer/src/generated/source_io.dart'; | 9 import 'package:analyzer/src/generated/source_io.dart'; |
| 10 import 'package:unittest/unittest.dart'; | 10 import 'package:unittest/unittest.dart'; |
| (...skipping 1087 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1098 } | 1098 } |
| 1099 | 1099 |
| 1100 abstract class B implements A { | 1100 abstract class B implements A { |
| 1101 int b() => a(); | 1101 int b() => a(); |
| 1102 }'''); | 1102 }'''); |
| 1103 computeLibrarySourceErrors(source); | 1103 computeLibrarySourceErrors(source); |
| 1104 assertNoErrors(source); | 1104 assertNoErrors(source); |
| 1105 verify([source]); | 1105 verify([source]); |
| 1106 } | 1106 } |
| 1107 | 1107 |
| 1108 void test_invalidUseOfProtectedMember_closure() { |
| 1109 Source source = addSource(r''' |
| 1110 import 'package:meta/meta.dart'; |
| 1111 |
| 1112 class A { |
| 1113 @protected |
| 1114 int a() => 42; |
| 1115 } |
| 1116 void main() { |
| 1117 var leak = new A().a; |
| 1118 print(leak); |
| 1119 }'''); |
| 1120 computeLibrarySourceErrors(source); |
| 1121 assertErrors(source, [HintCode.INVALID_USE_OF_PROTECTED_MEMBER]); |
| 1122 verify([source]); |
| 1123 } |
| 1124 |
| 1108 void test_invalidUseOfProtectedMember_getter() { | 1125 void test_invalidUseOfProtectedMember_getter() { |
| 1109 Source source = addSource(r''' | 1126 Source source = addSource(r''' |
| 1110 import 'package:meta/meta.dart'; | 1127 import 'package:meta/meta.dart'; |
| 1111 class A { | 1128 class A { |
| 1112 @protected | 1129 @protected |
| 1113 int get a => 42; | 1130 int get a => 42; |
| 1114 } | 1131 } |
| 1115 class B { | 1132 class B { |
| 1116 A a; | 1133 A a; |
| 1117 int b() => a.a; | 1134 int b() => a.a; |
| (...skipping 2343 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3461 n() { | 3478 n() { |
| 3462 var a = m(), b = m(); | 3479 var a = m(), b = m(); |
| 3463 } | 3480 } |
| 3464 }'''); | 3481 }'''); |
| 3465 computeLibrarySourceErrors(source); | 3482 computeLibrarySourceErrors(source); |
| 3466 assertErrors( | 3483 assertErrors( |
| 3467 source, [HintCode.USE_OF_VOID_RESULT, HintCode.USE_OF_VOID_RESULT]); | 3484 source, [HintCode.USE_OF_VOID_RESULT, HintCode.USE_OF_VOID_RESULT]); |
| 3468 verify([source]); | 3485 verify([source]); |
| 3469 } | 3486 } |
| 3470 } | 3487 } |
| OLD | NEW |