Merge pull request #18 from dart-lang/json-document-transformer-bind
Fix JsonDocumentTransformer.bind for dart 2
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 093a242..4813e9a 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,8 @@
+## 1.6.5
+
+* Fix an issue with `JsonDocumentTransformer.bind` where it created an internal
+ stream channel which didn't get a properly inferred type for its `sink`.
+
## 1.6.4
* Fix a race condition in `MultiChannel` where messages from a remote virtual
diff --git a/lib/src/json_document_transformer.dart b/lib/src/json_document_transformer.dart
index 86b9ae7..533d238 100644
--- a/lib/src/json_document_transformer.dart
+++ b/lib/src/json_document_transformer.dart
@@ -2,6 +2,7 @@
// 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 'dart:async';
import 'dart:convert';
import 'package:async/async.dart';
@@ -35,9 +36,10 @@
JsonDocumentTransformer._(this._codec);
- StreamChannel bind(StreamChannel<String> channel) {
+ StreamChannel<Object> bind(StreamChannel<String> channel) {
var stream = channel.stream.map(_codec.decode);
- var sink = new StreamSinkTransformer.fromHandlers(handleData: (data, sink) {
+ var sink = new StreamSinkTransformer<Object, String>.fromHandlers(
+ handleData: (data, sink) {
sink.add(_codec.encode(data));
}).bind(channel.sink);
return new StreamChannel.withCloseGuarantee(stream, sink);
diff --git a/pubspec.yaml b/pubspec.yaml
index 393e60f..9221866 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -1,5 +1,5 @@
name: stream_channel
-version: 1.6.4
+version: 1.6.5
description: An abstraction for two-way communication channels.
author: Dart Team <misc@dartlang.org>
homepage: https://github.com/dart-lang/stream_channel