blob: 253ac53c40c7030194d91ff55fb769733aebfd6d [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.
class A {}
class B extends A {}
Future<T> func1<T extends A>(T t) async {
// TODO(37439): We should infer 'T' instead of '<bottom>'.
return /*invoke: <bottom>*/ func2/*<<bottom>>*/(/*as: <bottom>*/ /*T*/ t);
}
T func2<T extends A>(T t) => /*T*/ t;
main() async {
/*B*/ await /*invoke: Future<B>*/ func1/*<B>*/(/*B*/ B());
}