Chromium Code Reviews| Index: tests/language/src/FieldOverrideTest.dart |
| diff --git a/tests/language/src/FieldOverrideTest.dart b/tests/language/src/FieldOverrideTest.dart |
| index 95a4c26417e634ae44febdd52e193a85a771f217..27816c420d6918f70e404d25c917430c8501d839 100644 |
| --- a/tests/language/src/FieldOverrideTest.dart |
| +++ b/tests/language/src/FieldOverrideTest.dart |
| @@ -1,12 +1,13 @@ |
| // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file |
| // for details. All rights reserved. Use of this source code is governed by a |
| // BSD-style license that can be found in the LICENSE file. |
| - |
| +// VMOptions=--enable_type_checks |
| // Test overriding of fields. |
| -interface A {} |
| -interface B1 extends A {} |
| -interface B2 extends A {} |
| + |
| +class A {} |
| +class B1 extends A {} |
| +class B2 extends A {} |
| class Super { |
| Super() : super(); |
| @@ -17,15 +18,29 @@ class Super { |
| class Sub extends Super { |
| Sub() : super(); |
| - A field; /// 01: compile-time error |
| + A field; |
| } |
| class SubSub extends Super { |
| SubSub() : super(); |
| - B2 field; /// 02: compile-time error |
| + // B2 not assignable to B1 |
| + B2 field; /// 01: static type error |
|
zundel
2011/12/07 19:44:56
??? Dartc's type checker flags this as:
tests/l
ahe
2011/12/08 08:53:46
Would you mind filing a specification bug?
|
| } |
| main() { |
| - new SubSub(); |
| + SubSub val1 = new SubSub(); |
| + val1.field = new B2(); |
| + Expect.equals(true, val1.field is B2); |
| + |
| + Sub val2 = new Sub(); |
| + val2.field = new A(); |
| + Expect.equals(true, val2.field is A); |
| + Expect.equals(false, val2.field is B1); |
| + Expect.equals(false, val2.field is B2); |
| + |
| + Super val3 = new Super(); |
| + val3.field = new B1(); |
| + Expect.equals(true, val3.field is B1); |
| + Expect.equals(false, val3.field is B2); |
| } |