| Index: sdk/lib/_internal/pub_generated/lib/src/barback/transformers_needed_by_transformers.dart
|
| diff --git a/sdk/lib/_internal/pub_generated/lib/src/barback/transformers_needed_by_transformers.dart b/sdk/lib/_internal/pub_generated/lib/src/barback/transformers_needed_by_transformers.dart
|
| deleted file mode 100644
|
| index 9bab9cc0a8dd5935d6ebe2d1e8b48b88855ee068..0000000000000000000000000000000000000000
|
| --- a/sdk/lib/_internal/pub_generated/lib/src/barback/transformers_needed_by_transformers.dart
|
| +++ /dev/null
|
| @@ -1,228 +0,0 @@
|
| -library pub.barback.transformers_needed_by_transformers;
|
| -import 'package:path/path.dart' as p;
|
| -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';
|
| -Map<TransformerId, Set<TransformerId>>
|
| - computeTransformersNeededByTransformers(PackageGraph graph) {
|
| - var result = {};
|
| - var computer = new _DependencyComputer(graph);
|
| - for (var packageName in ordered(graph.packages.keys)) {
|
| - var package = graph.packages[packageName];
|
| - for (var phase in package.pubspec.transformers) {
|
| - for (var config in phase) {
|
| - var id = config.id;
|
| - if (id.isBuiltInTransformer) continue;
|
| - if (id.package != graph.entrypoint.root.name &&
|
| - !config.canTransformPublicFiles) {
|
| - continue;
|
| - }
|
| - result[id] = computer.transformersNeededByTransformer(id);
|
| - }
|
| - }
|
| - }
|
| - return result;
|
| -}
|
| -class _DependencyComputer {
|
| - final PackageGraph _graph;
|
| - final _loadingPackageComputers = new Set<String>();
|
| - final _packageComputers = new Map<String, _PackageDependencyComputer>();
|
| - final _transformersNeededByPackages = new Map<String, Set<TransformerId>>();
|
| - _DependencyComputer(this._graph) {
|
| - ordered(_graph.packages.keys).forEach(_loadPackageComputer);
|
| - }
|
| - Set<TransformerId> transformersNeededByTransformer(TransformerId id) {
|
| - if (id.isBuiltInTransformer) return new Set();
|
| - _loadPackageComputer(id.package);
|
| - return _packageComputers[id.package].transformersNeededByTransformer(id);
|
| - }
|
| - Set<TransformerId> transformersNeededByPackageUri(Uri packageUri) {
|
| - var components = p.split(p.fromUri(packageUri.path));
|
| - var packageName = components.first;
|
| - var package = _graph.packages[packageName];
|
| - if (package == null) {
|
| - fail(
|
| - 'A transformer imported unknown package "$packageName" (in ' '"$packageUri").');
|
| - }
|
| - var library = package.path('lib', p.joinAll(components.skip(1)));
|
| - _loadPackageComputer(packageName);
|
| - return _packageComputers[packageName].transformersNeededByLibrary(library);
|
| - }
|
| - Set<TransformerId> transformersNeededByPackage(String rootPackage) {
|
| - if (_transformersNeededByPackages.containsKey(rootPackage)) {
|
| - return _transformersNeededByPackages[rootPackage];
|
| - }
|
| - var results = new Set();
|
| - var seen = new Set();
|
| - traversePackage(packageName) {
|
| - if (seen.contains(packageName)) return;
|
| - seen.add(packageName);
|
| - var package = _graph.packages[packageName];
|
| - for (var phase in package.pubspec.transformers) {
|
| - 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");
|
| - }
|
| - results.add(id);
|
| - }
|
| - }
|
| - var dependencies = packageName == _graph.entrypoint.root.name ?
|
| - package.immediateDependencies :
|
| - package.dependencies;
|
| - for (var dep in dependencies) {
|
| - try {
|
| - traversePackage(dep.name);
|
| - } on CycleException catch (error) {
|
| - throw error.prependStep("$packageName depends on ${dep.name}");
|
| - }
|
| - }
|
| - }
|
| - traversePackage(rootPackage);
|
| - _transformersNeededByPackages[rootPackage] = results;
|
| - return results;
|
| - }
|
| - void _loadPackageComputer(String packageName) {
|
| - if (_loadingPackageComputers.contains(packageName)) {
|
| - throw new CycleException();
|
| - }
|
| - if (_packageComputers.containsKey(packageName)) return;
|
| - _loadingPackageComputers.add(packageName);
|
| - _packageComputers[packageName] =
|
| - new _PackageDependencyComputer(this, packageName);
|
| - _loadingPackageComputers.remove(packageName);
|
| - }
|
| -}
|
| -class _PackageDependencyComputer {
|
| - final _DependencyComputer _dependencyComputer;
|
| - final Package _package;
|
| - final _applicableTransformers = new Set<TransformerConfig>();
|
| - final _directives = new Map<Uri, Set<Uri>>();
|
| - final _activeLibraries = new Set<String>();
|
| - final _transformersNeededByTransformers =
|
| - new Map<TransformerId, Set<TransformerId>>();
|
| - final _transitiveExternalDirectives = new Map<String, Set<Uri>>();
|
| - _PackageDependencyComputer(_DependencyComputer dependencyComputer,
|
| - String packageName)
|
| - : _dependencyComputer = dependencyComputer,
|
| - _package = dependencyComputer._graph.packages[packageName] {
|
| - for (var phase in _package.pubspec.transformers) {
|
| - for (var config in phase) {
|
| - var id = config.id;
|
| - try {
|
| - if (id.package != _package.name) {
|
| - _dependencyComputer.transformersNeededByTransformer(id);
|
| - } else {
|
| - _transformersNeededByTransformers[id] =
|
| - transformersNeededByLibrary(_package.transformerPath(id));
|
| - }
|
| - } on CycleException catch (error) {
|
| - throw error.prependStep("$packageName is transformed by $id");
|
| - }
|
| - }
|
| - _transitiveExternalDirectives.clear();
|
| - _applicableTransformers.addAll(phase);
|
| - }
|
| - }
|
| - Set<TransformerId> transformersNeededByTransformer(TransformerId id) {
|
| - assert(id.package == _package.name);
|
| - if (_transformersNeededByTransformers.containsKey(id)) {
|
| - return _transformersNeededByTransformers[id];
|
| - }
|
| - _transformersNeededByTransformers[id] =
|
| - transformersNeededByLibrary(_package.transformerPath(id));
|
| - return _transformersNeededByTransformers[id];
|
| - }
|
| - Set<TransformerId> transformersNeededByLibrary(String library) {
|
| - library = p.normalize(library);
|
| - if (_activeLibraries.contains(library)) return new Set();
|
| - _activeLibraries.add(library);
|
| - try {
|
| - var externalDirectives = _getTransitiveExternalDirectives(library);
|
| - if (externalDirectives == null) {
|
| - var rootName = _dependencyComputer._graph.entrypoint.root.name;
|
| - var dependencies = _package.name == rootName ?
|
| - _package.immediateDependencies :
|
| - _package.dependencies;
|
| - return _applicableTransformers.map(
|
| - (config) => config.id).toSet().union(unionAll(dependencies.map((dep) {
|
| - try {
|
| - return _dependencyComputer.transformersNeededByPackage(dep.name);
|
| - } on CycleException catch (error) {
|
| - throw error.prependStep("${_package.name} depends on ${dep.name}");
|
| - }
|
| - })));
|
| - } else {
|
| - return unionAll(externalDirectives.map((uri) {
|
| - try {
|
| - return _dependencyComputer.transformersNeededByPackageUri(uri);
|
| - } on CycleException catch (error) {
|
| - var packageName = p.url.split(uri.path).first;
|
| - throw error.prependStep("${_package.name} depends on $packageName");
|
| - }
|
| - }));
|
| - }
|
| - } finally {
|
| - _activeLibraries.remove(library);
|
| - }
|
| - }
|
| - Set<Uri> _getTransitiveExternalDirectives(String rootLibrary) {
|
| - rootLibrary = p.normalize(rootLibrary);
|
| - if (_transitiveExternalDirectives.containsKey(rootLibrary)) {
|
| - return _transitiveExternalDirectives[rootLibrary];
|
| - }
|
| - var results = new Set();
|
| - var seen = new Set();
|
| - traverseLibrary(library) {
|
| - library = p.normalize(library);
|
| - if (seen.contains(library)) return true;
|
| - seen.add(library);
|
| - var directives = _getDirectives(library);
|
| - if (directives == null) return false;
|
| - for (var uri in directives) {
|
| - var path;
|
| - if (uri.scheme == 'package') {
|
| - var components = p.split(p.fromUri(uri.path));
|
| - if (components.first != _package.name) {
|
| - results.add(uri);
|
| - continue;
|
| - }
|
| - path = _package.path('lib', p.joinAll(components.skip(1)));
|
| - } else if (uri.scheme == '' || uri.scheme == 'file') {
|
| - path = p.join(p.dirname(library), p.fromUri(uri));
|
| - } else {
|
| - continue;
|
| - }
|
| - if (!traverseLibrary(path)) return false;
|
| - }
|
| - return true;
|
| - }
|
| - _transitiveExternalDirectives[rootLibrary] =
|
| - traverseLibrary(rootLibrary) ? results : null;
|
| - return _transitiveExternalDirectives[rootLibrary];
|
| - }
|
| - Set<Uri> _getDirectives(String library) {
|
| - var libraryUri = p.toUri(p.normalize(library));
|
| - var relative = p.toUri(_package.relative(library)).path;
|
| - if (_applicableTransformers.any(
|
| - (config) => config.canTransform(relative))) {
|
| - _directives[libraryUri] = null;
|
| - return null;
|
| - }
|
| - if (_directives.containsKey(libraryUri)) return _directives[libraryUri];
|
| - if (!fileExists(library)) {
|
| - _directives[libraryUri] = null;
|
| - return null;
|
| - }
|
| - _directives[libraryUri] = parseImportsAndExports(
|
| - readTextFile(library),
|
| - name: library).map((directive) => Uri.parse(directive.uri.stringValue)).toSet();
|
| - return _directives[libraryUri];
|
| - }
|
| -}
|
|
|