import 'dart:async';

String returnImplicit() {}
String returnExplicit() {}
String returnMixed(bool b) {}
Future returnAsync1() async {}
FutureOr returnAsync2() async {}
FutureOr<int> returnAsync3() async {}
FutureOr<int?> returnAsync4() async {}
returnAsync5() async {}
Future<int?> returnAsync6() async {}
Future<int?> returnAsync7() async {}
Iterable yieldSync() sync* {}
Stream yieldAsync() async* {}
enum Enum { a, b }
Enum caseReturn1(Enum e) {}
Enum caseReturn2(Enum e) {}
localFunctions() {}
main() {}
