// Copyright (c) 2020, 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. dynamic getNull() => null; Iterable getIterableNull() sync* { yield null; } Iterable getIterableBool() sync* { yield true; } Iterable test1() sync* { yield getNull(); // ok } Iterable test2() => getNull(); // ok bool test3() => getNull(); // ok Iterable test4() sync* { yield* getIterableNull(); // error } Iterable test5() => getIterableNull(); // error Iterable test6() => getIterableBool(); // ok Iterable test7() sync* { yield* getIterableBool(); // ok } test() async { Iterable test1() sync* { yield getNull(); // ok } Iterable test2() => getNull(); // ok bool test3() => getNull(); // ok Iterable test4() sync* { yield* getIterableNull(); // error } Iterable test5() => getIterableNull(); // error Iterable test6() => getIterableBool(); // ok Iterable test7() sync* { yield* getIterableBool(); // ok } Iterable var1 = (() sync* { yield getNull(); })(); // error Iterable var2 = (() => getNull())(); // ok bool var3 = (() => getNull())(); // ok Iterable var4 = (() sync* { yield* getIterableNull(); })(); // error Iterable var5 = (() => getIterableNull())(); // error Iterable var6 = (() => getIterableBool())(); // ok Iterable var7 = (() sync* { yield* getIterableBool(); })(); // ok } main() {}