Index: sdk/lib/_internal/pub_generated/lib/src/entrypoint.dart |
diff --git a/sdk/lib/_internal/pub_generated/lib/src/entrypoint.dart b/sdk/lib/_internal/pub_generated/lib/src/entrypoint.dart |
index eadf9a997c76aec1888035644eb5d7fcd0ff9d6b..c3df8ce1fee3c9bcdc3a58043b5730fe9b877d24 100644 |
--- a/sdk/lib/_internal/pub_generated/lib/src/entrypoint.dart |
+++ b/sdk/lib/_internal/pub_generated/lib/src/entrypoint.dart |
@@ -526,35 +526,125 @@ class Entrypoint { |
}); |
} |
Future<PackageGraph> loadPackageGraph([SolveResult result]) { |
- if (_packageGraph != null) return new Future.value(_packageGraph); |
- return new Future.sync(() { |
- if (result != null) { |
- return Future.wait(result.packages.map((id) { |
- return cache.sources[id.source].getDirectory( |
- id).then((dir) => new Package(result.pubspecs[id.name], dir)); |
- })).then((packages) { |
- return new PackageGraph( |
- this, |
- new LockFile(result.packages), |
- new Map.fromIterable(packages, key: (package) => package.name)); |
- }); |
- } else { |
- return ensureLockFileIsUpToDate().then((_) { |
- return Future.wait(lockFile.packages.values.map((id) { |
- var source = cache.sources[id.source]; |
- return source.getDirectory( |
- id).then((dir) => new Package.load(id.name, dir, cache.sources)); |
- })).then((packages) { |
- var packageMap = new Map.fromIterable(packages, key: (p) => p.name); |
- packageMap[root.name] = root; |
- return new PackageGraph(this, lockFile, packageMap); |
+ final completer0 = new Completer(); |
+ scheduleMicrotask(() { |
+ try { |
+ join0() { |
+ log.progress("Loading package graph", (() { |
+ final completer0 = new Completer(); |
+ scheduleMicrotask(() { |
+ try { |
+ join0() { |
+ ensureLockFileIsUpToDate().then((x0) { |
+ try { |
+ x0; |
+ Future.wait(lockFile.packages.values.map(((id) { |
+ final completer0 = new Completer(); |
+ scheduleMicrotask(() { |
+ try { |
+ var source = cache.sources[id.source]; |
+ source.getDirectory(id).then((x0) { |
+ try { |
+ var dir = x0; |
+ completer0.complete( |
+ new Package.load(id.name, dir, cache.sources)); |
+ } catch (e0) { |
+ completer0.completeError(e0); |
+ } |
+ }, onError: (e1) { |
+ completer0.completeError(e1); |
+ }); |
+ } catch (e2) { |
+ completer0.completeError(e2); |
+ } |
+ }); |
+ return completer0.future; |
+ }))).then((x1) { |
+ try { |
+ var packages = x1; |
+ var packageMap = |
+ new Map.fromIterable(packages, key: ((p) => p.name)); |
+ packageMap[root.name] = root; |
+ completer0.complete( |
+ new PackageGraph(this, lockFile, packageMap)); |
+ } catch (e1) { |
+ completer0.completeError(e1); |
+ } |
+ }, onError: (e2) { |
+ completer0.completeError(e2); |
+ }); |
+ } catch (e0) { |
+ completer0.completeError(e0); |
+ } |
+ }, onError: (e3) { |
+ completer0.completeError(e3); |
+ }); |
+ } |
+ if (result != null) { |
+ Future.wait(result.packages.map(((id) { |
+ final completer0 = new Completer(); |
+ scheduleMicrotask(() { |
+ try { |
+ cache.sources[id.source].getDirectory(id).then((x0) { |
+ try { |
+ var dir = x0; |
+ completer0.complete( |
+ new Package(result.pubspecs[id.name], dir)); |
+ } catch (e0) { |
+ completer0.completeError(e0); |
+ } |
+ }, onError: (e1) { |
+ completer0.completeError(e1); |
+ }); |
+ } catch (e2) { |
+ completer0.completeError(e2); |
+ } |
+ }); |
+ return completer0.future; |
+ }))).then((x2) { |
+ try { |
+ var packages = x2; |
+ completer0.complete( |
+ new PackageGraph( |
+ this, |
+ new LockFile(result.packages), |
+ new Map.fromIterable(packages, key: ((package) => package.name)))); |
+ } catch (e4) { |
+ completer0.completeError(e4); |
+ } |
+ }, onError: (e5) { |
+ completer0.completeError(e5); |
+ }); |
+ } else { |
+ join0(); |
+ } |
+ } catch (e6) { |
+ completer0.completeError(e6); |
+ } |
+ }); |
+ return completer0.future; |
+ }), fine: true).then((x0) { |
+ try { |
+ var graph = x0; |
+ _packageGraph = graph; |
+ completer0.complete(graph); |
+ } catch (e0) { |
+ completer0.completeError(e0); |
+ } |
+ }, onError: (e1) { |
+ completer0.completeError(e1); |
}); |
- }); |
+ } |
+ if (_packageGraph != null) { |
+ completer0.complete(_packageGraph); |
+ } else { |
+ join0(); |
+ } |
+ } catch (e2) { |
+ completer0.completeError(e2); |
} |
- }).then((graph) { |
- _packageGraph = graph; |
- return graph; |
}); |
+ return completer0.future; |
} |
void _saveLockFile(List<PackageId> packageIds) { |
_lockFile = new LockFile(packageIds); |