| // Copyright (c) 2017, 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 |
| /*@testedFeatures=inference*/ |
| library test; |
| |
| test() { |
| /*@ returnType=int* */ f0() => 42; |
| /*@ returnType=Future<int*>* */ f1() async => 42; |
| |
| /*@ returnType=int* */ f2() { |
| return 42; |
| } |
| |
| /*@ returnType=Future<int*>* */ f3() async { |
| return 42; |
| } |
| |
| /*@ returnType=Iterable<int*>* */ f4() sync* { |
| yield 42; |
| } |
| |
| /*@ returnType=Stream<int*>* */ f5() async* { |
| yield 42; |
| } |
| |
| num f6() => 42; |
| |
| /*@ returnType=dynamic */ f7() => f7(); |
| /*@ returnType=Stream<int*>* */ f8() => f5(); |
| |
| var /*@ type=() ->* int* */ v0 = f0; |
| var /*@ type=() ->* Future<int*>* */ v1 = f1; |
| var /*@ type=() ->* int* */ v2 = f2; |
| var /*@ type=() ->* Future<int*>* */ v3 = f3; |
| var /*@ type=() ->* Iterable<int*>* */ v4 = f4; |
| var /*@ type=() ->* Stream<int*>* */ v5 = f5; |
| var /*@ type=() ->* num* */ v6 = f6; |
| var /*@ type=() ->* dynamic */ v7 = f7; |
| var /*@ type=() ->* Stream<int*>* */ v8 = f8; |
| } |
| |
| main() {} |