Merge pull request dart-lang/stream_transform#42 from dart-lang/corelib_2_2

Updates for Dart 2.0 core library changes (wave 2.2)
diff --git a/pkgs/stream_transform/.travis.yml b/pkgs/stream_transform/.travis.yml
index 57bec94..65c7fc3 100644
--- a/pkgs/stream_transform/.travis.yml
+++ b/pkgs/stream_transform/.travis.yml
@@ -2,8 +2,6 @@
 sudo: false
 dart:
   - dev
-  - stable
-  - 1.22.1
 cache:
   directories:
     - $HOME/.pub-cache
@@ -14,9 +12,3 @@
   - dartfmt
   - dartanalyzer
   - dartanalyzer: --no-strong .
-matrix:
-  exclude:
-    - dart: 1.22.1
-      dart_task: dartfmt
-    - dart: 1.22.1
-      dart_task: dartanalyzer
diff --git a/pkgs/stream_transform/CHANGELOG.md b/pkgs/stream_transform/CHANGELOG.md
index 056eebd..fe8eaa2 100644
--- a/pkgs/stream_transform/CHANGELOG.md
+++ b/pkgs/stream_transform/CHANGELOG.md
@@ -1,3 +1,10 @@
+## 0.0.10
+
+- Updates to support Dart 2.0 core library changes (wave
+  2.2). See [issue 31847][sdk#31847] for details.
+  
+  [sdk#31847]: https://github.com/dart-lang/sdk/issues/31847
+
 ## 0.0.9
 
 - Add `asyncMapBuffer`.
diff --git a/pkgs/stream_transform/lib/src/bind.dart b/pkgs/stream_transform/lib/src/bind.dart
index 603cc0f..169653f 100644
--- a/pkgs/stream_transform/lib/src/bind.dart
+++ b/pkgs/stream_transform/lib/src/bind.dart
@@ -12,7 +12,7 @@
 StreamTransformer<S, T> fromBind<S, T>(Bind<S, T> bindFn) =>
     new _StreamTransformer(bindFn);
 
-class _StreamTransformer<S, T> implements StreamTransformer<S, T> {
+class _StreamTransformer<S, T> extends StreamTransformerBase<S, T> {
   final Bind<S, T> _bind;
 
   _StreamTransformer(this._bind);
diff --git a/pkgs/stream_transform/lib/src/buffer.dart b/pkgs/stream_transform/lib/src/buffer.dart
index 5c594c8..0d9b87f 100644
--- a/pkgs/stream_transform/lib/src/buffer.dart
+++ b/pkgs/stream_transform/lib/src/buffer.dart
@@ -24,7 +24,7 @@
 ///
 /// Errors from the source stream or the trigger are immediately forwarded to
 /// the output.
-class _Buffer<T> implements StreamTransformer<T, List<T>> {
+class _Buffer<T> extends StreamTransformerBase<T, List<T>> {
   final Stream _trigger;
 
   _Buffer(this._trigger);
diff --git a/pkgs/stream_transform/lib/src/concat.dart b/pkgs/stream_transform/lib/src/concat.dart
index 39e747b..bf0559d 100644
--- a/pkgs/stream_transform/lib/src/concat.dart
+++ b/pkgs/stream_transform/lib/src/concat.dart
@@ -19,7 +19,7 @@
 /// buffered.
 StreamTransformer<T, T> concat<T>(Stream<T> next) => new _Concat<T>(next);
 
-class _Concat<T> implements StreamTransformer<T, T> {
+class _Concat<T> extends StreamTransformerBase<T, T> {
   final Stream<T> _next;
 
   _Concat(this._next);
diff --git a/pkgs/stream_transform/lib/src/from_handlers.dart b/pkgs/stream_transform/lib/src/from_handlers.dart
index 52ad5b4..36a0417 100644
--- a/pkgs/stream_transform/lib/src/from_handlers.dart
+++ b/pkgs/stream_transform/lib/src/from_handlers.dart
@@ -20,7 +20,7 @@
         handleError: handleError,
         handleDone: handleDone);
 
-class _StreamTransformer<S, T> implements StreamTransformer<S, T> {
+class _StreamTransformer<S, T> extends StreamTransformerBase<S, T> {
   final HandleData<S, T> _handleData;
   final HandleDone<T> _handleDone;
   final HandleError<T> _handleError;
diff --git a/pkgs/stream_transform/lib/src/merge.dart b/pkgs/stream_transform/lib/src/merge.dart
index 3653eb9..06dd9d3 100644
--- a/pkgs/stream_transform/lib/src/merge.dart
+++ b/pkgs/stream_transform/lib/src/merge.dart
@@ -21,7 +21,7 @@
 StreamTransformer<T, T> mergeAll<T>(List<Stream<T>> others) =>
     new _Merge<T>(others);
 
-class _Merge<T> implements StreamTransformer<T, T> {
+class _Merge<T> extends StreamTransformerBase<T, T> {
   final List<Stream<T>> _others;
 
   _Merge(this._others);
diff --git a/pkgs/stream_transform/lib/src/switch.dart b/pkgs/stream_transform/lib/src/switch.dart
index 193cbaa..1774dd9 100644
--- a/pkgs/stream_transform/lib/src/switch.dart
+++ b/pkgs/stream_transform/lib/src/switch.dart
@@ -26,7 +26,7 @@
 StreamTransformer<Stream<T>, T> switchLatest<T>() =>
     new _SwitchTransformer<T>();
 
-class _SwitchTransformer<T> implements StreamTransformer<Stream<T>, T> {
+class _SwitchTransformer<T> extends StreamTransformerBase<Stream<T>, T> {
   const _SwitchTransformer();
 
   @override
diff --git a/pkgs/stream_transform/lib/src/take_until.dart b/pkgs/stream_transform/lib/src/take_until.dart
index 27674c2..0c10856 100644
--- a/pkgs/stream_transform/lib/src/take_until.dart
+++ b/pkgs/stream_transform/lib/src/take_until.dart
@@ -12,7 +12,7 @@
 /// a subscription immediately stops values.
 StreamTransformer<T, T> takeUntil<T>(Future trigger) => new _TakeUntil(trigger);
 
-class _TakeUntil<T> implements StreamTransformer<T, T> {
+class _TakeUntil<T> extends StreamTransformerBase<T, T> {
   final Future _trigger;
 
   _TakeUntil(this._trigger);
diff --git a/pkgs/stream_transform/pubspec.yaml b/pkgs/stream_transform/pubspec.yaml
index 996e405..06d650d 100644
--- a/pkgs/stream_transform/pubspec.yaml
+++ b/pkgs/stream_transform/pubspec.yaml
@@ -2,10 +2,10 @@
 description: A collection of utilities to transform and manipulate streams.
 author: Dart Team <misc@dartlang.org>
 homepage: https://www.github.com/dart-lang/stream_transform
-version: 0.0.10-dev
+version: 0.0.10
 
 environment:
-  sdk: ">=1.22.0 <2.0.0"
+  sdk: ">=2.0.0-dev.20.0 <2.0.0"
 
 dev_dependencies:
   test: ^0.12.20+13