| OLD | NEW |
| 1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2011, 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 redirection constructors. | 4 // Dart test program for redirection constructors. |
| 5 | 5 |
| 6 import "package:expect/expect.dart"; | 6 import "package:expect/expect.dart"; |
| 7 | 7 |
| 8 class A { | 8 class A { |
| 9 var x; | 9 var x; |
| 10 A(this.x) {} | 10 A(this.x) {} |
| 11 A.named(x, int y) : this(x + y); | 11 A.named(x, int y) : this(x + y); |
| 12 A.named2(int x, int y, z) : this.named(staticFun(x, y), z); | 12 A.named2(int x, int y, z) : this.named(staticFun(x, y), z); |
| 13 | 13 |
| 14 // The following is a bit tricky. It is a compile-time error to | 14 // The following is a bit tricky. It is a compile-time error to |
| 15 // refer to this (implicitly or explicitly) from an initializer. | 15 // refer to this (implicitly or explicitly) from an initializer. |
| 16 // When we remove the line with moreStaticFun, staticFun is really a | 16 // When we remove the line with moreStaticFun, staticFun is really a |
| 17 // static function and it is legal to call it. This is what will | 17 // static function and it is legal to call it. This is what will |
| 18 // happen in the /none version of this test. However, in /01, | 18 // happen in the /none version of this test. However, in /01, |
| 19 // staticFun isn't really a static function and should cause a | 19 // staticFun isn't really a static function and should cause a |
| 20 // compile-time error. | 20 // compile-time error. |
| 21 static | 21 static |
| 22 moreStaticFun() {} /// 01: compile-time error | 22 moreStaticFun() {} //# 01: compile-time error |
| 23 int staticFun(int v1, int v2) { | 23 int staticFun(int v1, int v2) { |
| 24 return v1 * v2; | 24 return v1 * v2; |
| 25 } | 25 } |
| 26 } | 26 } |
| 27 | 27 |
| 28 class B extends A { | 28 class B extends A { |
| 29 B(y) : super(y + 1) {} | 29 B(y) : super(y + 1) {} |
| 30 B.named(y) : super.named(y, y + 1) {} | 30 B.named(y) : super.named(y, y + 1) {} |
| 31 } | 31 } |
| 32 | 32 |
| (...skipping 30 matching lines...) Expand all Loading... |
| 63 D d = const D(498); | 63 D d = const D(498); |
| 64 Expect.equals(499, d.x); | 64 Expect.equals(499, d.x); |
| 65 d = const D.named(249); | 65 d = const D.named(249); |
| 66 Expect.equals(499, d.x); | 66 Expect.equals(499, d.x); |
| 67 } | 67 } |
| 68 } | 68 } |
| 69 | 69 |
| 70 main() { | 70 main() { |
| 71 ConstructorRedirectTest.testMain(); | 71 ConstructorRedirectTest.testMain(); |
| 72 } | 72 } |
| OLD | NEW |