| // Copyright (c) 2017, 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 = 2.9 |
| |
| import "package:expect/expect.dart"; |
| |
| final results = []; |
| |
| int invoke(int f()) => f(); |
| |
| class Base { |
| var f; |
| var z; |
| |
| m(x) => results.add(x); |
| |
| int g() { |
| return 42; |
| } |
| } |
| |
| class C extends Base { |
| final Iterable _iter; |
| |
| C(this._iter) { |
| _iter.map((x) => super.m(x)).toList(); |
| super.f = _iter; |
| z = invoke(super.g); |
| } |
| |
| int g() { |
| return -1; |
| } |
| } |
| |
| main() { |
| var c = new C([1, 2, 3]); |
| Expect.listEquals([1, 2, 3], results); |
| Expect.listEquals([1, 2, 3], c.f); |
| Expect.equals(42, c.z); |
| } |