blob: 12a1435b43f71c0fd2a81e22a79e02de21cc6b0f [file] [log] [blame]
// Copyright (c) 2024, 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.
// This test case exercises the code path in type constraint generation where a
// type is constrained by a `FutureOr<T>` from above for some type `T`.
import 'dart:async';
Future<T> inferable1<T>(T t) => new Future<T>.value(t);
context1(FutureOr<num> futureOrNum) {}
FutureOr<T> inferable2<T>(T t) => t;
context2(Object x) {}
main() {
context1(inferable1 /*cfe.T <: num,T :> int,T :> int*/
/*analyzer.T <: num,T :> int*/ (0));
context2(inferable2 /*cfe.T <: Object,T :> bool,T :> bool*/
/*analyzer.T <: Object,T :> bool*/ (false));
}