blob: 8a4d911d25e5c5988f797ed27d113200309b5bc2 [file] [log] [blame]
// Copyright (c) 2022, 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.
import 'dart:async';
main() async {
await returnsString();
await returnsFutureOrString();
await returnsAwaitFutureOrString();
await returnsFutureString();
await returnsAwaitFutureString();
await returnsObject();
await returnsFutureOrObject();
await returnsAwaitFutureOrObject();
await returnsFutureObject();
await returnsAwaitFutureObject();
}
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;