import 'dart:async';

main() async {}
Future<String> returnsString() async => 'a';
Future<String> returnsFutureOrString() async => getFutureOr<String>('a');
Future<String> returnsAwaitFutureOrString() async =>
    await getFutureOr<String>('a');
Future<String> returnsFutureString() async => getFuture<String>('a');
FutureOr<String> returnsAwaitFutureString() async =>
    await getFuture<String>('a');
Future<Object> returnsObject() async => Object();
Future<Object> returnsFutureOrObject() async => getFutureOr<Object>(Object());
Future<Object> returnsAwaitFutureOrObject() async =>
    await getFutureOr<Object>(Object());
Future<Object> returnsFutureObject() async => getFuture<Object>(Object());
FutureOr<Object> returnsAwaitFutureObject() async =>
    await getFuture<Object>(Object());
FutureOr<T> getFutureOr<T>(T v) async => v;
Future<T> getFuture<T>(T v) async => v;
