| 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);
|
|
|