Chromium Code Reviews| 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; |
|
Johnni Winther
2016/06/06 09:23:08
Maybe add a test for `x.x` with expected static ty
eernst
2016/06/06 11:01:44
Sounds like we need a combination of multi-testing
|
| } |
| } |
| +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); |
| } |