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

Unified Diff: pkg/analysis_server/test/analysis/notification_overrides_test.dart

Issue 1519413002: Issue 25244. Disable invalid overrides. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 5 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « pkg/analysis_server/lib/src/computer/computer_overrides.dart ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pkg/analysis_server/test/analysis/notification_overrides_test.dart
diff --git a/pkg/analysis_server/test/analysis/notification_overrides_test.dart b/pkg/analysis_server/test/analysis/notification_overrides_test.dart
index 2465be3e71cc5a593ae466aae535f46d79a8ada5..ae7551ec70fb81f9e34d290b2f56938c7edb7c62 100644
--- a/pkg/analysis_server/test/analysis/notification_overrides_test.dart
+++ b/pkg/analysis_server/test/analysis/notification_overrides_test.dart
@@ -71,6 +71,20 @@ class AnalysisNotificationOverridesTest extends AbstractAnalysisTest {
}
/**
+ * Validates that there is no [Override] at the offset of [search].
+ *
+ * If [length] is not specified explicitly, then length of an identifier
+ * from [search] is used.
+ */
+ void assertNoOverride(String search, [int length = -1]) {
+ int offset = findOffset(search);
+ if (length == -1) {
+ length = findIdentifierLength(search);
+ }
+ findOverride(offset, length, false);
+ }
+
+ /**
* Asserts that there are no overridden member from the superclass.
*/
void assertNoSuperMember() {
@@ -137,6 +151,110 @@ class B implements A {
assertHasInterfaceMember('m() {} // in A');
}
+ test_BAD_fieldByMethod() async {
+ addTestFile('''
+class A {
+ int fff; // in A
+}
+class B extends A {
+ fff() {} // in B
+}
+''');
+ await prepareOverrides();
+ assertNoOverride('fff() {} // in B');
+ }
+
+ test_BAD_getterByMethod() async {
+ addTestFile('''
+class A {
+ get fff => null;
+}
+class B extends A {
+ fff() {}
+}
+''');
+ await prepareOverrides();
+ assertNoOverride('fff() {}');
+ }
+
+ test_BAD_getterBySetter() async {
+ addTestFile('''
+class A {
+ get fff => null;
+}
+class B extends A {
+ set fff(x) {}
+}
+''');
+ await prepareOverrides();
+ assertNoOverride('fff(x) {}');
+ }
+
+ test_BAD_methodByField() async {
+ addTestFile('''
+class A {
+ fff() {} // in A
+}
+class B extends A {
+ int fff; // in B
+}
+''');
+ await prepareOverrides();
+ assertNoOverride('fff; // in B');
+ }
+
+ test_BAD_methodByGetter() async {
+ addTestFile('''
+class A {
+ fff() {}
+}
+class B extends A {
+ int get fff => null;
+}
+''');
+ await prepareOverrides();
+ assertNoOverride('fff => null');
+ }
+
+ test_BAD_methodBySetter() async {
+ addTestFile('''
+class A {
+ fff(x) {} // A
+}
+class B extends A {
+ set fff(x) {} // B
+}
+''');
+ await prepareOverrides();
+ assertNoOverride('fff(x) {} // B');
+ }
+
+ test_BAD_setterByGetter() async {
+ addTestFile('''
+class A {
+ set fff(x) {}
+}
+class B extends A {
+ get fff => null;
+}
+''');
+ await prepareOverrides();
+ assertNoOverride('fff => null;');
+ }
+
+ test_BAD_setterByMethod() async {
+ addTestFile('''
+class A {
+ set fff(x) {} // A
+}
+class B extends A {
+ fff(x) {} // B
+}
+''');
+ await prepareOverrides();
+ assertNoOverride('fff(x) {} // B');
+ }
+
test_definedInInterface_ofInterface() async {
addTestFile('''
class A {
@@ -318,21 +436,6 @@ class B extends A {
assertNoInterfaceMembers();
}
- test_super_fieldByMethod() async {
- addTestFile('''
-class A {
- int fff; // in A
-}
-class B extends A {
- fff() {} // in B
-}
-''');
- await prepareOverrides();
- assertHasOverride('fff() {} // in B');
- assertHasSuperElement('fff; // in A');
- assertNoInterfaceMembers();
- }
-
test_super_fieldBySetter() async {
addTestFile('''
class A {
« no previous file with comments | « pkg/analysis_server/lib/src/computer/computer_overrides.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698