Skip to content

Commit 14ccc77

Browse files
tvolkertcommit-bot@chromium.org
authored andcommitted
Use decoder.bind(stream) instead of stream.transform(decoder)
This updates the implementation of `Encoding.decodeStream()` to use `decoder.bind(stream)` rather than `stream.transform(decoder)` in order to put the stream in a covariant position. This in turn allows callers to use `decodeStream` on cases that recently changed from `Stream<List<int>>` to `Stream<Uint8List>` (such as `HttpClientResponse` or `File.openRead()`) without breaking those call sites. Bug: #36900 Change-Id: Id98fa7f88f0870c46371903ec47300af2091e613 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/108161 Reviewed-by: William Hesse <[email protected]> Commit-Queue: Todd Volkert <[email protected]>
1 parent f41d6de commit 14ccc77

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

sdk/lib/convert/encoding.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@ abstract class Encoding extends Codec<String, List<int>> {
1919
Converter<List<int>, String> get decoder;
2020

2121
Future<String> decodeStream(Stream<List<int>> byteStream) {
22-
return byteStream
23-
.transform<String>(decoder)
22+
return decoder
23+
.bind(byteStream)
2424
.fold(StringBuffer(),
2525
(StringBuffer buffer, String string) => buffer..write(string))
2626
.then((StringBuffer buffer) => buffer.toString());

0 commit comments

Comments
 (0)