Index: lib/src/graph/phase.dart |
diff --git a/lib/src/graph/phase.dart b/lib/src/graph/phase.dart |
index 4bfc5e19fd1a74decd504ee8e1f1b8aa3a9a0a19..629291a11d00c4754ca8da08030f9b9e027d548c 100644 |
--- a/lib/src/graph/phase.dart |
+++ b/lib/src/graph/phase.dart |
@@ -6,6 +6,8 @@ library barback.graph.phase; |
import 'dart:async'; |
+import 'package:collection/collection.dart'; |
+ |
import '../asset/asset_id.dart'; |
import '../asset/asset_node.dart'; |
import '../asset/asset_node_set.dart'; |
@@ -14,7 +16,6 @@ import '../log.dart'; |
import '../transformer/aggregate_transformer.dart'; |
import '../transformer/transformer.dart'; |
import '../transformer/transformer_group.dart'; |
-import '../utils.dart'; |
import '../utils/multiset.dart'; |
import 'asset_cascade.dart'; |
import 'group_runner.dart'; |
@@ -205,7 +206,7 @@ class Phase { |
/// |
/// If the output cannot be found, returns null. |
Future<AssetNode> getOutput(AssetId id) { |
- return syncFuture(() { |
+ return new Future.sync(() { |
if (id.package != cascade.package) return cascade.graph.getAssetNode(id); |
if (_outputs.containsKey(id)) { |
var output = _outputs[id].output; |
@@ -258,8 +259,8 @@ class Phase { |
} |
} |
- var newGroups = transformers.where((op) => op is TransformerGroup) |
- .toSet(); |
+ var newGroups = DelegatingSet.typed/*<TransformerGroup>*/( |
+ transformers.where((op) => op is TransformerGroup).toSet()); |
var oldGroups = _groups.keys.toSet(); |
for (var removed in oldGroups.difference(newGroups)) { |
_groups.remove(removed).remove(); |
@@ -389,7 +390,9 @@ class Phase { |
asset.whenStateChanges().then((state) { |
if (state.isRemoved) return getOutput(asset.id); |
return asset; |
- }).then(request.complete).catchError(request.completeError); |
+ }) |
+ .then((asset) => request.complete(asset)) |
+ .catchError(request.completeError); |
} |
String toString() => "phase $_location.$_index"; |