| Index: sdk/lib/_internal/pub/lib/src/barback/transformers_needed_by_transformers.dart
|
| diff --git a/sdk/lib/_internal/pub/lib/src/barback/transformers_needed_by_transformers.dart b/sdk/lib/_internal/pub/lib/src/barback/transformers_needed_by_transformers.dart
|
| index 26bac5371f162bab0ac18b1590739b46bfd790d2..e61e1c49400779d1c979166e24054f0ac3cd635d 100644
|
| --- a/sdk/lib/_internal/pub/lib/src/barback/transformers_needed_by_transformers.dart
|
| +++ b/sdk/lib/_internal/pub/lib/src/barback/transformers_needed_by_transformers.dart
|
| @@ -6,13 +6,14 @@ library pub.barback.transformers_needed_by_transformers;
|
|
|
| import 'package:path/path.dart' as p;
|
|
|
| -import '../barback.dart';
|
| import '../dart.dart';
|
| import '../io.dart';
|
| import '../package.dart';
|
| import '../package_graph.dart';
|
| import '../utils.dart';
|
| import 'cycle_exception.dart';
|
| +import 'transformer_config.dart';
|
| +import 'transformer_id.dart';
|
|
|
| /// Returns a dependency graph for transformers in [graph].
|
| ///
|
| @@ -31,7 +32,8 @@ Map<TransformerId, Set<TransformerId>> computeTransformersNeededByTransformers(
|
| for (var packageName in ordered(graph.packages.keys)) {
|
| var package = graph.packages[packageName];
|
| for (var phase in package.pubspec.transformers) {
|
| - for (var id in phase) {
|
| + for (var config in phase) {
|
| + var id = config.id;
|
| if (id.isBuiltInTransformer) continue;
|
| result[id] = computer.transformersNeededByTransformer(id);
|
| }
|
| @@ -122,7 +124,8 @@ class _DependencyComputer {
|
|
|
| var package = _graph.packages[packageName];
|
| for (var phase in package.pubspec.transformers) {
|
| - for (var id in phase) {
|
| + for (var config in phase) {
|
| + var id = config.id;
|
| if (id.isBuiltInTransformer) continue;
|
| if (_loadingPackageComputers.contains(id.package)) {
|
| throw new CycleException("$packageName is transformed by $id");
|
| @@ -179,7 +182,7 @@ class _PackageDependencyComputer {
|
| /// This is added to phase-by-phase while [this] is being initialized. This is
|
| /// necessary to model the dependencies of a transformer that's applied to its
|
| /// own package.
|
| - final _applicableTransformers = new Set();
|
| + final _applicableTransformers = new Set<TransformerConfig>();
|
|
|
| /// A cache of imports and exports parsed from libraries in this package.
|
| final _directives = new Map<Uri, Set<Uri>>();
|
| @@ -213,7 +216,8 @@ class _PackageDependencyComputer {
|
| // [_transformersNeededByLibraries] while [_applicableTransformers] is
|
| // smaller.
|
| for (var phase in _package.pubspec.transformers) {
|
| - for (var id in phase) {
|
| + for (var config in phase) {
|
| + var id = config.id;
|
| try {
|
| if (id.package != _package.name) {
|
| // Probe [id]'s transformer dependencies to ensure that it doesn't
|
| @@ -280,7 +284,8 @@ class _PackageDependencyComputer {
|
| // package is modified by a transformer, we don't know what it will
|
| // load, so we take the conservative approach and say it depends on
|
| // everything.
|
| - return _applicableTransformers.union(unionAll(dependencies.map((dep) {
|
| + return _applicableTransformers.map((config) => config.id).toSet().union(
|
| + unionAll(dependencies.map((dep) {
|
| try {
|
| return _dependencyComputer.transformersNeededByPackage(dep.name);
|
| } on CycleException catch (error) {
|
| @@ -363,7 +368,8 @@ class _PackageDependencyComputer {
|
| Set<Uri> _getDirectives(String library) {
|
| var libraryUri = p.toUri(p.normalize(library));
|
| var relative = p.toUri(p.relative(library, from: _package.dir)).path;
|
| - if (_applicableTransformers.any((id) => id.canTransform(relative))) {
|
| + if (_applicableTransformers.any((config) =>
|
| + config.canTransform(relative))) {
|
| _directives[libraryUri] = null;
|
| return null;
|
| }
|
|
|