| // 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() {} |