| // Copyright (c) 2011, 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. |
| // Dart test program for testing invocation of implicit closures. |
| |
| // @dart = 2.9 |
| |
| import "package:expect/expect.dart"; |
| |
| class BaseClass { |
| BaseClass(this._i) {} |
| int foo() { |
| return _i; |
| } |
| |
| int _i; |
| } |
| |
| class DerivedClass extends BaseClass { |
| DerivedClass(this._y, int j) : super(j) {} |
| int foo() { |
| return _y; |
| } |
| |
| getSuper() { |
| return super.foo; |
| } |
| |
| int _y; |
| } |
| |
| class SuperImplicitClosureTest { |
| static void testMain() { |
| DerivedClass obj = new DerivedClass(20, 10); |
| |
| var ib = obj.foo; |
| Expect.equals(obj._y, ib()); |
| |
| ib = obj.getSuper(); |
| Expect.equals(obj._i, ib()); |
| } |
| } |
| |
| main() { |
| SuperImplicitClosureTest.testMain(); |
| } |