a2c7cd6c3f
(There are so many subdirectories under language/ that I figure going a letter at a time is easier to review than going a subdirectory at a time and sending out a huge flurry of tiny CLs.) Change-Id: Ie899b93c5a5f502ca67953b722cecb68c5c6d233 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/400146 Auto-Submit: Bob Nystrom <rnystrom@google.com> Reviewed-by: Lasse Nielsen <lrn@google.com> Commit-Queue: Lasse Nielsen <lrn@google.com>
38 lines
759 B
Dart
38 lines
759 B
Dart
// Copyright (c) 2024, 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.
|
|
|
|
import "package:expect/async_helper.dart";
|
|
import "package:expect/expect.dart";
|
|
|
|
Stream<String> stream() async* {
|
|
yield 'a';
|
|
yield 'b';
|
|
}
|
|
|
|
Stream<String> expandedStream() async* {
|
|
final expanded = stream().asyncExpand((s) async* {
|
|
yield 'before';
|
|
yield s;
|
|
yield 'after';
|
|
});
|
|
|
|
yield* expanded;
|
|
}
|
|
|
|
Future test() async {
|
|
Expect.listEquals([
|
|
'before',
|
|
'a',
|
|
'after',
|
|
'before',
|
|
'b',
|
|
'after',
|
|
], await expandedStream().toList());
|
|
}
|
|
|
|
void main() {
|
|
asyncStart();
|
|
test().then((_) => asyncEnd());
|
|
}
|