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

Unified Diff: pkg/analyzer/test/generated/hint_code_test.dart

Issue 2100493002: Allow for library access to `@protected` protected members (linter#254). (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Merge branch 'master' into protected Created 4 years, 6 months 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « pkg/analyzer/lib/src/generated/resolver.dart ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pkg/analyzer/test/generated/hint_code_test.dart
diff --git a/pkg/analyzer/test/generated/hint_code_test.dart b/pkg/analyzer/test/generated/hint_code_test.dart
index e7a1266a7b62987e38163641ec60868231862acd..6644ccd66f82d17f6c72deb7abfe0e372b9224b4 100644
--- a/pkg/analyzer/test/generated/hint_code_test.dart
+++ b/pkg/analyzer/test/generated/hint_code_test.dart
@@ -1268,35 +1268,55 @@ main() {
}
void test_invalidUseOfProtectedMember_closure() {
- Source source = addSource(r'''
+ Source source = addNamedSource(
+ '/lib1.dart',
+ r'''
import 'package:meta/meta.dart';
class A {
@protected
int a() => 42;
}
+''');
+ Source source2 = addNamedSource(
+ '/lib2.dart',
+ r'''
+import 'lib1.dart';
+
void main() {
var leak = new A().a;
print(leak);
-}''');
- computeLibrarySourceErrors(source);
- assertErrors(source, [HintCode.INVALID_USE_OF_PROTECTED_MEMBER]);
- verify([source]);
+}
+''');
+ computeLibrarySourceErrors(source2);
+ assertErrors(source2, [HintCode.INVALID_USE_OF_PROTECTED_MEMBER]);
+ assertNoErrors(source);
+ verify([source, source2]);
}
void test_invalidUseOfProtectedMember_field() {
- Source source = addSource(r'''
+ Source source = addNamedSource(
+ '/lib1.dart',
+ r'''
import 'package:meta/meta.dart';
class A {
@protected
int a;
}
+''');
+ Source source2 = addNamedSource(
+ '/lib2.dart',
+ r'''
+import 'lib1.dart';
+
abstract class B {
int b() => new A().a;
-}''');
- computeLibrarySourceErrors(source);
- assertErrors(source, [HintCode.INVALID_USE_OF_PROTECTED_MEMBER]);
- verify([source]);
+}
+''');
+ computeLibrarySourceErrors(source2);
+ assertErrors(source2, [HintCode.INVALID_USE_OF_PROTECTED_MEMBER]);
+ assertNoErrors(source);
+ verify([source, source2]);
}
void test_invalidUseOfProtectedMember_field_OK() {
@@ -1315,6 +1335,31 @@ abstract class B implements A {
}
void test_invalidUseOfProtectedMember_function() {
+ Source source = addNamedSource(
+ '/lib1.dart',
+ r'''
+import 'package:meta/meta.dart';
+class A {
+ @protected
+ void a(){ }
+}
+''');
+ Source source2 = addNamedSource(
+ '/lib2.dart',
+ r'''
+import 'lib1.dart';
+
+main() {
+ new A().a();
+}
+''');
+ computeLibrarySourceErrors(source2);
+ assertErrors(source2, [HintCode.INVALID_USE_OF_PROTECTED_MEMBER]);
+ assertNoErrors(source);
+ verify([source, source2]);
+ }
+
+ void test_invalidUseOfProtectedMember_function_OK2() {
Source source = addSource(r'''
import 'package:meta/meta.dart';
class A {
@@ -1325,7 +1370,7 @@ main() {
new A().a();
}''');
computeLibrarySourceErrors(source);
- assertErrors(source, [HintCode.INVALID_USE_OF_PROTECTED_MEMBER]);
+ assertNoErrors(source);
verify([source]);
}
@@ -1346,19 +1391,29 @@ abstract class B implements A {
}
void test_invalidUseOfProtectedMember_getter() {
- Source source = addSource(r'''
+ Source source = addNamedSource(
+ '/lib1.dart',
+ r'''
import 'package:meta/meta.dart';
class A {
@protected
int get a => 42;
}
+''');
+ Source source2 = addNamedSource(
+ '/lib2.dart',
+ r'''
+import 'lib1.dart';
+
class B {
A a;
int b() => a.a;
-}''');
- computeLibrarySourceErrors(source);
- assertErrors(source, [HintCode.INVALID_USE_OF_PROTECTED_MEMBER]);
- verify([source]);
+}
+''');
+ computeLibrarySourceErrors(source2);
+ assertErrors(source2, [HintCode.INVALID_USE_OF_PROTECTED_MEMBER]);
+ assertNoErrors(source);
+ verify([source, source2]);
}
void test_invalidUseOfProtectedMember_getter_OK() {
@@ -1398,34 +1453,55 @@ f() {}
}
void test_invalidUseOfProtectedMember_message() {
- Source source = addSource(r'''
+ Source source = addNamedSource(
+ '/lib1.dart',
+ r'''
import 'package:meta/meta.dart';
class A {
@protected
void a(){ }
}
+''');
+ Source source2 = addNamedSource(
+ '/lib2.dart',
+ r'''
+import 'lib1.dart';
+
class B {
void b() => new A().a();
-}''');
- List<AnalysisError> errors = analysisContext2.computeErrors(source);
+}
+''');
+ List<AnalysisError> errors = analysisContext2.computeErrors(source2);
expect(errors, hasLength(1));
expect(errors[0].message,
"The member 'a' can only be used within instance members of subclasses of 'A'");
+ verify([source, source2]);
}
void test_invalidUseOfProtectedMember_method_1() {
- Source source = addSource(r'''
+ Source source = addNamedSource(
+ '/lib1.dart',
+ r'''
import 'package:meta/meta.dart';
class A {
@protected
void a(){ }
}
+''');
+ Source source2 = addNamedSource(
+ '/lib2.dart',
+ r'''
+import 'lib1.dart';
+
class B {
void b() => new A().a();
-}''');
- computeLibrarySourceErrors(source);
- assertErrors(source, [HintCode.INVALID_USE_OF_PROTECTED_MEMBER]);
- verify([source]);
+}
+''');
+
+ computeLibrarySourceErrors(source2);
+ assertErrors(source2, [HintCode.INVALID_USE_OF_PROTECTED_MEMBER]);
+ assertNoErrors(source);
+ verify([source, source2]);
}
void test_invalidUseOfProtectedMember_method_OK() {
@@ -1581,21 +1657,31 @@ class A {
}
void test_invalidUseOfProtectedMember_setter() {
- Source source = addSource(r'''
+ Source source = addNamedSource(
+ '/lib1.dart',
+ r'''
import 'package:meta/meta.dart';
class A {
@protected
void set a(int i) { }
}
+''');
+ Source source2 = addNamedSource(
+ '/lib2.dart',
+ r'''
+import 'lib1.dart';
+
class B{
A a;
b(int i) {
a.a = i;
}
-}''');
- computeLibrarySourceErrors(source);
- assertErrors(source, [HintCode.INVALID_USE_OF_PROTECTED_MEMBER]);
- verify([source]);
+}
+''');
+ computeLibrarySourceErrors(source2);
+ assertErrors(source2, [HintCode.INVALID_USE_OF_PROTECTED_MEMBER]);
+ assertNoErrors(source);
+ verify([source, source2]);
}
void test_invalidUseOfProtectedMember_setter_OK() {
« 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