Chromium Code Reviews| Index: tests/language/constructor_initializer_test.dart |
| =================================================================== |
| --- tests/language/constructor_initializer_test.dart (revision 0) |
| +++ tests/language/constructor_initializer_test.dart (revision 0) |
| @@ -0,0 +1,34 @@ |
| +// Copyright (c) 2013, 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. |
| + |
| +class A { |
| + var _x, _y; |
| + A(x, [y = 10]): _x = x++, _y = y++ { |
| + // Check that value of modified constructor parameters |
| + // is remembered in the constructor body. |
| + Expect.equals(x, _x + 1); |
| + Expect.equals(y, _y + 1); |
| + Expect.isFalse(?y); |
| + } |
| +} |
| + |
| +class B extends A { |
| + var _a, _b; |
| + // The super call in the middle of the initializer list conceptually |
| + // forces two super call chains, one for initializer list and a second |
| + // one for the constructor bodies. |
| + B(a, b): _a = a++, super(a + b++), _b = b++ { |
| + Expect.equals(a, _a + 1); |
| + Expect.equals(b, _b + 1); |
| + Expect.equals(a + (b-2), _x); |
| + } |
| +} |
| + |
| +main() { |
| + var o = new B(3, 5); |
|
Ivan Posva
2013/03/28 17:46:27
Please make sure that calling A on its own also ge
hausner
2013/03/28 20:06:47
Done.
|
| + Expect.equals(3, o._a); |
| + Expect.equals(6, o._b); |
| + Expect.equals(9, o._x); |
| + Expect.equals(10, o._y); |
| +} |