blob: b23ca8fcf6cc8d7c1ea7baad2e62dbe15b6d4f86 [file] [log] [blame]
// Copyright (c) 2018, 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.
/// @assertion Each element in a list can be one of a few things:
/// A normal expression.
/// An if element.
/// A for element.
/// The body of if and for elements use listElement, not expression, which
/// allows nesting.
///
/// @description Checks that each element in the list can be a normal expression,
/// 'if' element or 'await for' element
/// @author sgrekhov@unipro.ru
import "dart:async";
import "../../Utils/expect.dart";
Stream<int> stream = Stream<int>.fromIterable([1, 2, 3]);
Stream<int> stream2 = Stream<int>.fromIterable([4, 5, 6]);
main() async {
bool b = true;
List<int> listInt = [
3, 1, 4,
if (b) await for (var v in stream) v + 1,
if (!b) 1,
await for (var i in stream2) if (!i.isEven) i
];
Expect.listEquals([3, 1, 4, 2, 3, 4, 5], listInt);
}