blob: 073adedae93e13dc20db5a58fcd66f47373af713 [file] [log] [blame]
// Copyright (c) 2018, 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.
/*@testedFeatures=inference*/
library test;
import 'dart:async';
abstract class MyFuture implements Future<int> {}
void test(
int x0,
Future<int> x1,
Future<Future<int>> x2,
Future<FutureOr<int>> x3,
Future<MyFuture> x4,
FutureOr<int> x5,
FutureOr<Future<int>> x6,
FutureOr<FutureOr<int>> x7,
FutureOr<MyFuture> x8,
MyFuture x9) async {
/*@returnType=Future<int>*/ test0() async => x0;
/*@returnType=Future<int>*/ test1() async => x1;
/*@returnType=Future<int>*/ test2() async => x2;
/*@returnType=Future<int>*/ test3() async => x3;
/*@returnType=Future<int>*/ test4() async => x4;
/*@returnType=Future<int>*/ test5() async => x5;
/*@returnType=Future<int>*/ test6() async => x6;
/*@returnType=Future<int>*/ test7() async => x7;
/*@returnType=Future<int>*/ test8() async => x8;
/*@returnType=Future<int>*/ test9() async => x9;
var /*@type=int*/ y0 = await x0;
var /*@type=int*/ y1 = await x1;
var /*@type=Future<int>*/ y2 = await x2;
var /*@type=FutureOr<int>*/ y3 = await x3;
var /*@type=MyFuture*/ y4 = await x4;
var /*@type=int*/ y5 = await x5;
var /*@type=Future<int>*/ y6 = await x6;
var /*@type=FutureOr<int>*/ y7 = await x7;
var /*@type=MyFuture*/ y8 = await x8;
var /*@type=int*/ y9 = await x9;
}
main() {}