Index: sdk/lib/_internal/pub/lib/src/barback/load_all_transformers.dart |
diff --git a/sdk/lib/_internal/pub/lib/src/barback/load_all_transformers.dart b/sdk/lib/_internal/pub/lib/src/barback/load_all_transformers.dart |
index ac4ec0925ddaaa2c3954122da2d467299e909606..ff9f1acae3120f6b670debef2a0175c67fa7a0a0 100644 |
--- a/sdk/lib/_internal/pub/lib/src/barback/load_all_transformers.dart |
+++ b/sdk/lib/_internal/pub/lib/src/barback/load_all_transformers.dart |
@@ -90,7 +90,7 @@ Future loadAllTransformers(BarbackServer server, PackageGraph graph, |
var transformers = [[rewrite]]; |
return Future.forEach(graph.packages[package].pubspec.transformers, |
(phase) { |
- return Future.wait(phase.where((id) => id.asset.package == package) |
+ return Future.wait(phase.where((id) => id.package == package) |
.map(loader.load)).then((_) { |
transformers.add(unionAll(phase.map( |
(id) => loader.transformersFor(id)))); |
@@ -157,7 +157,7 @@ Map<String, Set<String>> _computeOrderingDeps(PackageGraph graph) { |
/// Returns the set of transformer dependencies for [package]. |
Set<String> _transformerDeps(PackageGraph graph, String package) => |
unionAll(graph.packages[package].pubspec.transformers) |
- .map((id) => id.asset.package).toSet(); |
+ .map((id) => id.package).toSet(); |
/// Returns an [ApplicationException] describing an ordering dependency cycle |
/// detected in [graph]. |
@@ -176,8 +176,8 @@ ApplicationException _cycleError(PackageGraph graph, String dependee, |
return new ApplicationException("Transformer cycle detected:\n" + |
pairs(path).map((pair) { |
var transformers = unionAll(graph.packages[pair.first].pubspec.transformers) |
- .where((id) => id.asset.package == pair.last) |
- .map((id) => idToLibraryIdentifier(id.asset)).toList(); |
+ .where((id) => id.package == pair.last) |
+ .map((id) => id.toString()).toList(); |
if (transformers.isEmpty) { |
return " ${pair.first} depends on ${pair.last}"; |
} else { |
@@ -195,7 +195,7 @@ Map<String, Set<TransformerId>> _computePackageTransformers( |
for (var package in graph.packages.values) { |
for (var phase in package.pubspec.transformers) { |
for (var id in phase) { |
- packageTransformers[id.asset.package].add(id); |
+ packageTransformers[id.package].add(id); |
} |
} |
} |
@@ -213,12 +213,13 @@ class _TransformerLoader { |
/// The packages that use each transformer asset id. |
/// |
/// Used for error reporting. |
- final _transformerUsers = new Map<AssetId, Set<String>>(); |
+ final _transformerUsers = new Map<Pair<String, String>, Set<String>>(); |
_TransformerLoader(this._server, PackageGraph graph) { |
for (var package in graph.packages.values) { |
for (var id in unionAll(package.pubspec.transformers)) { |
- _transformerUsers.putIfAbsent(id.asset, () => new Set<String>()) |
+ _transformerUsers.putIfAbsent( |
+ new Pair(id.package, id.path), () => new Set<String>()) |
.add(package.name); |
} |
} |
@@ -244,9 +245,19 @@ class _TransformerLoader { |
if (id.configuration != null) { |
message += " that accept configuration"; |
} |
+ |
+ var location; |
+ if (id.path == null) { |
+ location = 'package:${id.package}/transformer.dart or ' |
+ 'package:${id.package}/${id.package}.dart'; |
+ } else { |
+ location = 'package:$id.dart'; |
+ } |
+ var pair = new Pair(id.package, id.path); |
+ |
throw new ApplicationException( |
- "$message were defined in ${idToPackageUri(id.asset)},\n" |
- "required by ${ordered(_transformerUsers[id.asset]).join(', ')}."); |
+ "$message were defined in $location,\n" |
+ "required by ${ordered(_transformerUsers[pair]).join(', ')}."); |
}); |
} |