blob: 9d6f50cfacab81cb01c15cdc845e0ad3dfa0210c [file] [log] [blame]
// Copyright (c) 2019, 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
// Check that await from a call-via-field expression works.
import 'package:expect/expect.dart';
abstract class A<T> {
T Function(List<int> raw) get decode;
}
class B extends A<int> {
int Function(List<int> raw) get decode => (List<int> raw) => raw.first;
}
class C<T> {
final A<T> aa;
C(this.aa);
}
class D {
final C<int> cc;
D(this.cc);
Future<int> read() async {
return cc.aa.decode(await getList());
}
Future<List<int>> getList() async => <int>[42];
}
main() async {
D dd = new D(new C<int>(new B()));
Expect.equals(42, await dd.read());
}