Index: tests/language/closure_in_initializer_test.dart |
=================================================================== |
--- tests/language/closure_in_initializer_test.dart (revision 0) |
+++ tests/language/closure_in_initializer_test.dart (revision 0) |
@@ -0,0 +1,42 @@ |
+// Copyright (c) 2012, 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. |
+ |
ahe
2012/11/06 15:14:22
What does this test do?
|
+class A { |
+ var f; |
+ var g; |
+ A(a) : f = (() => 42 + a), g = (() => ++a) { |
+ a = 4; |
+ } |
+} |
+ |
+class B extends A { |
+ B() : super(42); |
+} |
+ |
+class C extends A { |
+ var h; |
+ C(a) : super(42), h = (() => ++a); |
+} |
+ |
+main() { |
+ var a = new A(1); |
+ Expect.equals(46, a.f()); |
+ Expect.equals(5, a.g()); |
+ Expect.equals(47, a.f()); |
+ |
+ a = new B(); |
+ Expect.equals(46, a.f()); |
+ Expect.equals(5, a.g()); |
+ Expect.equals(47, a.f()); |
+ |
+ a = new C(0); |
+ Expect.equals(46, a.f()); |
+ Expect.equals(5, a.g()); |
+ Expect.equals(47, a.f()); |
+ Expect.equals(1, a.h()); |
+ Expect.equals(2, a.h()); |
+ Expect.equals(47, a.f()); |
+ Expect.equals(6, a.g()); |
+ Expect.equals(48, a.f()); |
+} |