Index: tests/kernel/unsorted/super_test.dart |
diff --git a/tests/kernel/unsorted/super_test.dart b/tests/kernel/unsorted/super_test.dart |
new file mode 100644 |
index 0000000000000000000000000000000000000000..a2785ea6c94c4a34008871227efd138edc076c13 |
--- /dev/null |
+++ b/tests/kernel/unsorted/super_test.dart |
@@ -0,0 +1,36 @@ |
+import 'expect.dart'; |
Kevin Millikin (Google)
2016/10/21 09:10:58
Copyright header.
Vyacheslav Egorov (Google)
2016/10/21 13:39:43
Done.
|
+ |
+class A { |
+ var field = 9; |
+ var called = false; |
+ |
+ superMethod() { |
+ Expect.isTrue(field == 10); |
+ called = true; |
+ return true; |
+ } |
+} |
+ |
+class B extends A { |
+ doit() { |
+ Expect.isTrue((super.field = 10) == 10); |
+ Expect.isTrue(super.superMethod()); |
+ if (called) { |
+ Expect.isTrue((super.field = 11) == 11); |
+ } |
+ return super.field; |
+ } |
+} |
+ |
+class C extends B { |
+ set field(v) { |
+ throw 'should not happen'; |
+ } |
+} |
+ |
+main() { |
+ var c = new C(); |
+ Expect.isTrue(c.field == 9); |
+ Expect.isTrue(c.doit() == 11); |
+ Expect.isTrue(c.field == 11); |
+} |