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

Unified Diff: pkg/analyzer/test/src/task/strong/checker_test.dart

Issue 1430953004: Check field overrides (Closed) Base URL: https://github.com/dart-lang/sdk.git@master
Patch Set: fix typo Created 5 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 side-by-side diff with in-line comments
Download patch
Index: pkg/analyzer/test/src/task/strong/checker_test.dart
diff --git a/pkg/analyzer/test/src/task/strong/checker_test.dart b/pkg/analyzer/test/src/task/strong/checker_test.dart
index b11e7926d6e15e1bf6777a36e8f932b08b6b6328..6e8ba4bee1012251af9f42847f878e59cef17ea2 100644
--- a/pkg/analyzer/test/src/task/strong/checker_test.dart
+++ b/pkg/analyzer/test/src/task/strong/checker_test.dart
@@ -1132,6 +1132,13 @@ void main() {
}
class Child extends Base {
+ /*severe:InvalidFieldOverride,severe:InvalidMethodOverride*/A f1; // invalid for getter
+ /*severe:InvalidFieldOverride,severe:InvalidMethodOverride*/C f2; // invalid for setter
+ /*severe:InvalidFieldOverride*/var f3;
+ /*severe:InvalidFieldOverride,severe:InvalidMethodOverride,severe:InvalidMethodOverride*/dynamic f4;
+ }
+
+ class Child2 implements Base {
/*severe:InvalidMethodOverride*/A f1; // invalid for getter
/*severe:InvalidMethodOverride*/C f2; // invalid for setter
var f3;
@@ -1140,6 +1147,40 @@ void main() {
'''
});
+ testChecker('private override', {
+ '/helper.dart': '''
+ import 'main.dart' as main;
+
+ class Base {
+ var f1;
+ var _f2;
+ var _f3;
+ get _f4 => null;
+
+ int _m1();
+ }
+
+ class GrandChild extends main.Child {
+ /*severe:InvalidFieldOverride*/var _f2;
+ /*severe:InvalidFieldOverride*/var _f3;
+ var _f4;
+
+ /*severe:InvalidMethodOverride*/String _m1();
+ }
+ ''',
+ '/main.dart': '''
+ import 'helper.dart' as helper;
+
+ class Child extends helper.Base {
+ /*severe:InvalidFieldOverride*/var f1;
+ var _f2;
+ var _f4;
+
+ String _m1();
+ }
+ '''
+ });
+
testChecker('getter/getter override', {
'/main.dart': '''
class A {}
@@ -1176,6 +1217,13 @@ void main() {
}
class Child extends Base {
+ /*severe:InvalidFieldOverride,severe:InvalidMethodOverride*/A get f1 => null;
+ /*severe:InvalidFieldOverride*/C get f2 => null;
+ /*severe:InvalidFieldOverride*/get f3 => null;
+ /*severe:InvalidFieldOverride,severe:InvalidMethodOverride*/dynamic get f4 => null;
+ }
+
+ class Child2 implements Base {
/*severe:InvalidMethodOverride*/A get f1 => null;
C get f2 => null;
get f3 => null;
@@ -1223,6 +1271,20 @@ void main() {
}
class Child extends Base {
+ /*severe:InvalidFieldOverride*/B get f1 => null;
+ /*severe:InvalidFieldOverride*/B get f2 => null;
+ /*severe:InvalidFieldOverride*/B get f3 => null;
+ /*severe:InvalidFieldOverride*/B get f4 => null;
+ /*severe:InvalidFieldOverride*/B get f5 => null;
+
+ /*severe:InvalidFieldOverride*/void set f1(A value) {}
+ /*severe:InvalidFieldOverride,severe:InvalidMethodOverride*/void set f2(C value) {}
+ /*severe:InvalidFieldOverride*/void set f3(value) {}
+ /*severe:InvalidFieldOverride,severe:InvalidMethodOverride*/void set f4(dynamic value) {}
+ /*severe:InvalidFieldOverride*/set f5(B value) {}
+ }
+
+ class Child2 implements Base {
B get f1 => null;
B get f2 => null;
B get f3 => null;
@@ -1508,18 +1570,34 @@ void main() {
}
class T1 extends Base {
- /*severe:InvalidMethodOverride*/B get f => null;
+ /*severe:InvalidFieldOverride,severe:InvalidMethodOverride*/B get f => null;
}
class T2 extends Base {
- /*severe:InvalidMethodOverride*/set f(B b) => null;
+ /*severe:InvalidFieldOverride,severe:InvalidMethodOverride*/set f(B b) => null;
}
class T3 extends Base {
- /*severe:InvalidMethodOverride*/final B f;
+ /*severe:InvalidFieldOverride,severe:InvalidMethodOverride*/final B f;
}
class T4 extends Base {
// two: one for the getter one for the setter.
+ /*severe:InvalidFieldOverride,severe:InvalidMethodOverride,severe:InvalidMethodOverride*/B f;
+ }
+
+ class T5 implements Base {
+ /*severe:InvalidMethodOverride*/B get f => null;
+ }
+
+ class T6 implements Base {
+ /*severe:InvalidMethodOverride*/set f(B b) => null;
+ }
+
+ class T7 implements Base {
+ /*severe:InvalidMethodOverride*/final B f;
+ }
+ class T8 implements Base {
+ // two: one for the getter one for the setter.
/*severe:InvalidMethodOverride,severe:InvalidMethodOverride*/B f;
}
'''
@@ -1546,12 +1624,14 @@ void main() {
class Grandparent {
m(A a) {}
+ int x;
}
class Parent extends Grandparent {
}
class Test extends Parent {
/*severe:InvalidMethodOverride*/m(B a) {}
+ /*severe:InvalidFieldOverride*/int x;
}
'''
});
@@ -1600,17 +1680,20 @@ void main() {
class Base {
m(A a) {}
+ int x;
}
class M1 {
m(B a) {}
}
- class M2 {}
+ class M2 {
+ int x;
+ }
class T1 extends Base with /*severe:InvalidMethodOverride*/M1 {}
- class T2 extends Base with /*severe:InvalidMethodOverride*/M1, M2 {}
- class T3 extends Base with M2, /*severe:InvalidMethodOverride*/M1 {}
+ class T2 extends Base with /*severe:InvalidMethodOverride*/M1, /*severe:InvalidFieldOverride*/M2 {}
+ class T3 extends Base with /*severe:InvalidFieldOverride*/M2, /*severe:InvalidMethodOverride*/M1 {}
'''
});
@@ -1624,13 +1707,15 @@ void main() {
class M1 {
m(B a) {}
+ int x;
}
class M2 {
m(A a) {}
+ int x;
}
- class T1 extends Base with M1, /*severe:InvalidMethodOverride*/M2 {}
+ class T1 extends Base with M1, /*severe:InvalidMethodOverride,severe:InvalidFieldOverride*/M2 {}
'''
});
« no previous file with comments | « pkg/analyzer/lib/src/task/strong/info.dart ('k') | pkg/analyzer/test/src/task/strong/inferred_type_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698