Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1)

Side by Side Diff: sdk/lib/_internal/pub_generated/lib/src/package_graph.dart

Issue 576333002: Precompile immutable dependencies on "pub get". (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Code review changes Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 library pub.package_graph; 1 library pub.package_graph;
2 import 'barback/transformer_cache.dart'; 2 import 'barback/transformer_cache.dart';
3 import 'entrypoint.dart'; 3 import 'entrypoint.dart';
4 import 'lock_file.dart'; 4 import 'lock_file.dart';
5 import 'package.dart'; 5 import 'package.dart';
6 import 'source/cached.dart';
7 import 'source/hosted.dart';
6 import 'utils.dart'; 8 import 'utils.dart';
7 class PackageGraph { 9 class PackageGraph {
8 final Entrypoint entrypoint; 10 final Entrypoint entrypoint;
9 final LockFile lockFile; 11 final LockFile lockFile;
10 final Map<String, Package> packages; 12 final Map<String, Package> packages;
11 Map<String, Set<Package>> _transitiveDependencies; 13 Map<String, Set<Package>> _transitiveDependencies;
12 TransformerCache _transformerCache; 14 TransformerCache _transformerCache;
13 PackageGraph(this.entrypoint, this.lockFile, this.packages); 15 PackageGraph(this.entrypoint, this.lockFile, this.packages);
14 TransformerCache loadTransformerCache() { 16 TransformerCache loadTransformerCache() {
15 if (_transformerCache == null) { 17 if (_transformerCache == null) {
(...skipping 12 matching lines...) Expand all
28 var closure = transitiveClosure( 30 var closure = transitiveClosure(
29 mapMap( 31 mapMap(
30 packages, 32 packages,
31 value: (_, package) => package.dependencies.map((dep) => dep.name) )); 33 value: (_, package) => package.dependencies.map((dep) => dep.name) ));
32 _transitiveDependencies = mapMap( 34 _transitiveDependencies = mapMap(
33 closure, 35 closure,
34 value: (_, names) => names.map((name) => packages[name]).toSet()); 36 value: (_, names) => names.map((name) => packages[name]).toSet());
35 } 37 }
36 return _transitiveDependencies[package]; 38 return _transitiveDependencies[package];
37 } 39 }
40 bool isPackageMutable(String package) {
41 var id = lockFile.packages[package];
42 if (id == null) return true;
43 var source = entrypoint.cache.sources[id.source];
44 if (source is! CachedSource) return true;
45 return transitiveDependencies(package).any((dep) {
46 var depId = lockFile.packages[dep.name];
47 if (depId == null) return true;
48 return entrypoint.cache.sources[depId.source] is! CachedSource;
49 });
50 }
38 } 51 }
OLDNEW
« no previous file with comments | « sdk/lib/_internal/pub_generated/lib/src/entrypoint.dart ('k') | sdk/lib/_internal/pub_generated/lib/src/utils.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698