| Index: lib/src/error_group.dart
|
| diff --git a/lib/src/error_group.dart b/lib/src/error_group.dart
|
| index da86be1af46e1e88f8690ee77e7bb042a2d005d3..77a1c8db062af65b2c790a5041d55340323c21d4 100644
|
| --- a/lib/src/error_group.dart
|
| +++ b/lib/src/error_group.dart
|
| @@ -65,7 +65,7 @@ class ErrorGroup {
|
| ///
|
| /// If all members of [this] have already completed successfully or with an
|
| /// error, it's a [StateError] to try to register a new [Future].
|
| - Future registerFuture(Future future) {
|
| + Future/*<T>*/ registerFuture/*<T>*/(Future/*<T>*/ future) {
|
| if (_isDone) {
|
| throw new StateError("Can't register new members on a complete "
|
| "ErrorGroup.");
|
| @@ -88,7 +88,7 @@ class ErrorGroup {
|
| ///
|
| /// If all members of [this] have already completed successfully or with an
|
| /// error, it's a [StateError] to try to register a new [Stream].
|
| - Stream registerStream(Stream stream) {
|
| + Stream/*<T>*/ registerStream/*<T>*/(Stream/*<T>*/ stream) {
|
| if (_isDone) {
|
| throw new StateError("Can't register new members on a complete "
|
| "ErrorGroup.");
|
| @@ -161,7 +161,7 @@ class ErrorGroup {
|
| ///
|
| /// It also notifies its parent [ErrorGroup] when it completes successfully or
|
| /// receives an error.
|
| -class _ErrorGroupFuture implements Future {
|
| +class _ErrorGroupFuture<T> implements Future<T> {
|
| /// The parent [ErrorGroup].
|
| final ErrorGroup _group;
|
|
|
| @@ -169,14 +169,14 @@ class _ErrorGroupFuture implements Future {
|
| var _isDone = false;
|
|
|
| /// The underlying [Completer] for [this].
|
| - final _completer = new Completer();
|
| + final _completer = new Completer<T>();
|
|
|
| /// Whether [this] has any listeners.
|
| bool _hasListeners = false;
|
|
|
| /// Creates a new [_ErrorGroupFuture] that's a child of [_group] and wraps
|
| /// [inner].
|
| - _ErrorGroupFuture(this._group, Future inner) {
|
| + _ErrorGroupFuture(this._group, Future<T> inner) {
|
| inner.then((value) {
|
| if (!_isDone) _completer.complete(value);
|
| _isDone = true;
|
| @@ -188,27 +188,27 @@ class _ErrorGroupFuture implements Future {
|
| _completer.future.catchError((_) {});
|
| }
|
|
|
| - Future then(onValue(value), {Function onError}) {
|
| + Future/*<S>*/ then/*<S>*/(/*=S*/ onValue(/*=T*/ value), {Function onError}) {
|
| _hasListeners = true;
|
| return _completer.future.then(onValue, onError: onError);
|
| }
|
|
|
| - Future catchError(Function onError, {bool test(Object error)}) {
|
| + Future<T> catchError(Function onError, {bool test(Object error)}) {
|
| _hasListeners = true;
|
| return _completer.future.catchError(onError, test: test);
|
| }
|
|
|
| - Future whenComplete(void action()) {
|
| + Future<T> whenComplete(void action()) {
|
| _hasListeners = true;
|
| return _completer.future.whenComplete(action);
|
| }
|
|
|
| - Future timeout(Duration timeLimit, {void onTimeout()}) {
|
| + Future<T> timeout(Duration timeLimit, {onTimeout()}) {
|
| _hasListeners = true;
|
| return _completer.future.timeout(timeLimit, onTimeout: onTimeout);
|
| }
|
|
|
| - Stream asStream() {
|
| + Stream<T> asStream() {
|
| _hasListeners = true;
|
| return _completer.future.asStream();
|
| }
|
| @@ -229,7 +229,7 @@ class _ErrorGroupFuture implements Future {
|
| ///
|
| /// It also notifies its parent [ErrorGroup] when it completes successfully or
|
| /// receives an error.
|
| -class _ErrorGroupStream extends Stream {
|
| +class _ErrorGroupStream<T> extends Stream<T> {
|
| /// The parent [ErrorGroup].
|
| final ErrorGroup _group;
|
|
|
| @@ -237,24 +237,24 @@ class _ErrorGroupStream extends Stream {
|
| var _isDone = false;
|
|
|
| /// The underlying [StreamController] for [this].
|
| - final StreamController _controller;
|
| + final StreamController<T> _controller;
|
|
|
| /// The controller's [Stream].
|
| ///
|
| /// May be different than `_controller.stream` if the wrapped stream is a
|
| /// broadcasting stream.
|
| - Stream _stream;
|
| + Stream<T> _stream;
|
|
|
| /// The [StreamSubscription] that connects the wrapped [Stream] to
|
| /// [_controller].
|
| - StreamSubscription _subscription;
|
| + StreamSubscription<T> _subscription;
|
|
|
| /// Whether [this] has any listeners.
|
| bool get _hasListeners => _controller.hasListener;
|
|
|
| /// Creates a new [_ErrorGroupFuture] that's a child of [_group] and wraps
|
| /// [inner].
|
| - _ErrorGroupStream(this._group, Stream inner)
|
| + _ErrorGroupStream(this._group, Stream<T> inner)
|
| : _controller = new StreamController(sync: true) {
|
| // Use old-style asBroadcastStream behavior - cancel source _subscription
|
| // the first time the stream has no listeners.
|
| @@ -272,7 +272,7 @@ class _ErrorGroupStream extends Stream {
|
| });
|
| }
|
|
|
| - StreamSubscription listen(void onData(value),
|
| + StreamSubscription<T> listen(void onData(T value),
|
| {Function onError, void onDone(),
|
| bool cancelOnError}) {
|
| return _stream.listen(onData,
|
|
|