Index: sdk/lib/async/future.dart |
diff --git a/sdk/lib/async/future.dart b/sdk/lib/async/future.dart |
index 9d28ee6e4c054611273d24592fd56768435e79eb..674fffd7bfd2c93e2aa71dca4307c50378681c0c 100644 |
--- a/sdk/lib/async/future.dart |
+++ b/sdk/lib/async/future.dart |
@@ -294,11 +294,11 @@ abstract class Future<T> { |
* The call to `cleanUp` should not throw. If it does, the error will be an |
* uncaught asynchronous error. |
*/ |
- static Future<List/*<T>*/> wait/*<T>*/(Iterable<Future/*<T>*/> futures, |
+ static Future<List<T>> wait<T>(Iterable<Future<T>> futures, |
{bool eagerError: false, |
- void cleanUp(/*=T*/ successValue)}) { |
- final _Future<List/*<T>*/> result = new _Future<List/*<T>*/>(); |
- List/*<T>*/ values; // Collects the values. Set to null on error. |
+ void cleanUp(T successValue)}) { |
+ final _Future<List<T>> result = new _Future<List<T>>(); |
+ List<T> values; // Collects the values. Set to null on error. |
int remaining = 0; // How many futures are we waiting for. |
var error; // The first error from a future. |
StackTrace stackTrace; // The stackTrace that came with the error. |
@@ -332,7 +332,7 @@ abstract class Future<T> { |
// position in the list of values. |
for (Future future in futures) { |
int pos = remaining; |
- future.then((Object/*=T*/ value) { |
+ future.then((T value) { |
remaining--; |
if (values != null) { |
values[pos] = value; |
@@ -357,7 +357,7 @@ abstract class Future<T> { |
if (remaining == 0) { |
return new Future.value(const []); |
} |
- values = new List/*<T>*/(remaining); |
+ values = new List<T>(remaining); |
} catch (e, st) { |
// The error must have been thrown while iterating over the futures |
// list, or while installing a callback handler on the future. |
@@ -390,9 +390,9 @@ abstract class Future<T> { |
* If [futures] is empty, or if none of its futures complete, |
* the returned future never completes. |
*/ |
- static Future/*<T>*/ any/*<T>*/(Iterable<Future/*<T>*/> futures) { |
- var completer = new Completer/*<T>*/.sync(); |
- var onValue = (/*=T*/ value) { |
+ static Future<T> any<T>(Iterable<Future<T>> futures) { |
+ var completer = new Completer<T>.sync(); |
+ var onValue = (T value) { |
if (!completer.isCompleted) completer.complete(value); |
}; |
var onError = (error, stack) { |
@@ -497,7 +497,7 @@ abstract class Future<T> { |
* with a `test` parameter, instead of handling both value and error in a |
* single [then] call. |
*/ |
- Future/*<S>*/ then/*<S>*/(onValue(T value), { Function onError }); |
+ Future<S> then<S>(onValue(T value), { Function onError }); |
/** |
* Handles errors emitted by this [Future]. |
@@ -560,7 +560,7 @@ abstract class Future<T> { |
// `isCheck` we should also expect functions that take a specific argument. |
// Note: making `catchError` return a `Future<T>` in non-strong mode could be |
// a breaking change. |
- Future/*<T>*/ catchError(Function onError, |
+ Future<T> catchError(Function onError, |
{bool test(Object error)}); |
/** |