| 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);
|
| }
|
|
|