Iterable<bool> getIterableBool() sync* {}
Iterable<bool> test1() sync* {}
Iterable<bool> test2() => getNull();
Iterable<bool> test4() sync* {}
Iterable<bool> test5() => getIterableNull();
Iterable<bool> test6() => getIterableBool();
Iterable<bool> test7() sync* {}
Iterable<dynamic> getIterableNull() sync* {}
bool test3() => getNull();
dynamic getNull() => null;
main() {}
test() async {}
