// 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. foo(bool condition, Iterable iterable, List? a, Set? b, Iterable? c, Map? d) { return [ {...a}, // Error. {...b}, // Error. {...c}, // Error. {...d}, // Error. {...a}, // Error. {...d}, // Error. {if (condition) ...a}, // Error. {if (condition) ...b}, // Error. {if (condition) ...c}, // Error. {if (condition) ...d}, // Error. {for (dynamic e in iterable) ...a}, // Error. {for (dynamic e in iterable) ...b}, // Error. {for (dynamic e in iterable) ...c}, // Error. {for (dynamic e in iterable) ...d}, // Error. {for (int i = 0; i < 42; ++i) ...a}, // Error. {for (int i = 0; i < 42; ++i) ...b}, // Error. {for (int i = 0; i < 42; ++i) ...c}, // Error. {for (int i = 0; i < 42; ++i) ...d}, // Error. {...?a}, // Ok. {...?b}, // Ok. {...?c}, // Ok. {...?d}, // Ok. {if (condition) ...?a}, // Ok. {if (condition) ...?b}, // Ok. {if (condition) ...?c}, // Ok. {if (condition) ...?d}, // Ok. {for (dynamic e in iterable) ...?a}, // Ok. {for (dynamic e in iterable) ...?b}, // Ok. {for (dynamic e in iterable) ...?c}, // Ok. {for (dynamic e in iterable) ...?d}, // Ok. {for (int i = 0; i < 42; ++i) ...?a}, // Ok. {for (int i = 0; i < 42; ++i) ...?b}, // Ok. {for (int i = 0; i < 42; ++i) ...?c}, // Ok. {for (int i = 0; i < 42; ++i) ...?d}, // Ok. ]; } bar?, Y extends Set?, Z extends Iterable?, W extends Map?>( bool condition, Iterable iterable, X x, Y y, Z z, W w) { return [ {...x}, // Error. {...y}, // Error. {...z}, // Error. {...w}, // Error. {...x}, // Error. {...w}, // Error. {if (condition) ...x}, // Error. {if (condition) ...y}, // Error. {if (condition) ...z}, // Error. {if (condition) ...w}, // Error. {for (dynamic e in iterable) ...x}, // Error. {for (dynamic e in iterable) ...y}, // Error. {for (dynamic e in iterable) ...z}, // Error. {for (dynamic e in iterable) ...w}, // Error. {for (int i = 0; i < 42; ++i) ...x}, // Error. {for (int i = 0; i < 42; ++i) ...y}, // Error. {for (int i = 0; i < 42; ++i) ...z}, // Error. {for (int i = 0; i < 42; ++i) ...w}, // Error. {...?x}, // Ok. {...?y}, // Ok. {...?z}, // Ok. {...?w}, // Ok. {if (condition) ...?x}, // Ok. {if (condition) ...?y}, // Ok. {if (condition) ...?z}, // Ok. {if (condition) ...?w}, // Ok. {for (dynamic e in iterable) ...?x}, // Ok. {for (dynamic e in iterable) ...?y}, // Ok. {for (dynamic e in iterable) ...?z}, // Ok. {for (dynamic e in iterable) ...?w}, // Ok. {for (int i = 0; i < 42; ++i) ...?x}, // Ok. {for (int i = 0; i < 42; ++i) ...?y}, // Ok. {for (int i = 0; i < 42; ++i) ...?z}, // Ok. {for (int i = 0; i < 42; ++i) ...?w}, // Ok. ]; } main() {}