Index: sdk/lib/_internal/pub/lib/src/barback/dependency_computer.dart |
diff --git a/sdk/lib/_internal/pub/lib/src/barback/dependency_computer.dart b/sdk/lib/_internal/pub/lib/src/barback/dependency_computer.dart |
index dfca1273ba84209dfda7230ed9b941f619d8d8dd..9e46b46d06b15d1f3d0cff2ac6801abdb6af3dea 100644 |
--- a/sdk/lib/_internal/pub/lib/src/barback/dependency_computer.dart |
+++ b/sdk/lib/_internal/pub/lib/src/barback/dependency_computer.dart |
@@ -11,6 +11,7 @@ import '../dart.dart'; |
import '../io.dart'; |
import '../package.dart'; |
import '../package_graph.dart'; |
+import '../pubspec.dart'; |
import '../utils.dart'; |
import 'cycle_exception.dart'; |
import 'transformer_config.dart'; |
@@ -104,6 +105,17 @@ class DependencyComputer { |
/// loaded. |
Set<TransformerId> _transformersNeededByTransformer(TransformerId id) { |
if (id.isBuiltInTransformer) return new Set(); |
+ |
+ if (!_graph.packages.containsKey(id.package)) { |
+ // Throw this here rather than during pubspec parsing because by the time |
+ // we're here, we're sure that the package is actually transforming public |
+ // assets and that being unable to load it will be a problem. |
+ throw new PubspecException( |
+ 'Error loading transformer "$id": package "${id.package}" is not ' |
+ 'a dependency.', |
+ id.span); |
+ } |
+ |
_loadPackageComputer(id.package); |
return _packageComputers[id.package]._transformersNeededByTransformer(id); |
} |