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 abstract class A1 { | 14 abstract class A1 { |
15 A1() {} | 15 A1() {} |
16 method(); // Abstract. | 16 method(); // Abstract. |
17 factory A1.make() { | 17 factory A1.make() { return new B(); } |
18 return new B(); | |
19 } | |
20 } | 18 } |
21 | 19 |
22 class A2 { | 20 class A2 { |
23 // Intentionally abstract method. | 21 // Intentionally abstract method. |
24 method(); // //# 00: static type warning | 22 method(); // //# 00: static type warning |
25 A2.make() {} | 23 A2.make() {} |
26 } | 24 } |
27 | 25 |
28 main() { | 26 main() { |
29 new A1.make(); | 27 new A1.make(); |
30 new A2.make(); //# 00: continued | 28 new A2.make(); //# 00: continued |
31 } | 29 } |
OLD | NEW |