Index: tests/language/initializing_formal_promotion_test.dart |
diff --git a/tests/language/initializing_formal_access_test.dart b/tests/language/initializing_formal_promotion_test.dart |
similarity index 50% |
copy from tests/language/initializing_formal_access_test.dart |
copy to tests/language/initializing_formal_promotion_test.dart |
index 3d3ceed1be8847abdf736eb6f3b6fa3c7d3f5009..b0314e822a9e23df69e3775048f31ee1f9d053db 100644 |
--- a/tests/language/initializing_formal_access_test.dart |
+++ b/tests/language/initializing_formal_promotion_test.dart |
@@ -6,23 +6,25 @@ |
import "package:expect/expect.dart"; |
-class C { |
- final int x; |
- final int y; |
+class B {} |
- const C.constant(this.x) : y = x + 1; |
- |
- C(this.x) : y = x + 1 { |
- int z = x + 2; |
- assert(z == y + 1); |
+class A { |
+ B x, y; |
+ A(this.x) { |
+ // Promote to subtype. |
+ if (x is C) y = x.x; |
+ // Promotion fails, not a subtype. |
+ if (x is A) y = x; |
} |
} |
+class C extends A implements B { |
+ C(B x) : super(x); |
+} |
+ |
main() { |
- C c = new C(2); |
- Expect.equals(c.x, 2); |
- Expect.equals(c.y, 3); |
- const C cc = const C.constant(4); |
- Expect.equals(cc.x, 4); |
- Expect.equals(cc.y, 5); |
+ C c2 = new C(null); |
+ C cc = new C(c2); |
+ Expect.equals(c2.y, null); |
+ Expect.equals(cc.y, c2); |
} |