| // 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); |
| } |