| 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 |