OLD | NEW |
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 // Dart test program for constructors and initializers. | 4 // Dart test program for constructors and initializers. |
5 | 5 |
6 // Exercises issue 2282, factory constructors in abstract classes should | 6 // Exercises issue 2282, factory constructors in abstract classes should |
7 // not emit a static type warning | 7 // not emit a static type warning |
8 | 8 |
9 class B extends A1 { | 9 class B extends A1 { |
10 B() {} | 10 B() {} |
11 method() {} | 11 method() {} |
12 } | 12 } |
13 | 13 |
14 class A1 { | 14 class A1 { |
15 A1() {} | 15 A1() {} |
16 abstract method(); | 16 abstract method(); |
17 factory A1.make() { return new B(); } | 17 factory A1.make() { return new B(); } |
18 } | 18 } |
19 | 19 |
20 class A2 { | 20 class A2 { |
21 abstract method(); | 21 abstract method(); |
22 A2.make() {} | 22 A2.make() {} |
23 } | 23 } |
24 | 24 |
25 main() { | 25 main() { |
26 new A1.make(); | 26 new A1.make(); |
27 new A2.make(); /// 01: static type warning | 27 new A2.make(); /// 00: static type warning, runtime error |
28 } | 28 } |
OLD | NEW |