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

Unified Diff: sdk/lib/_internal/pub_generated/lib/src/entrypoint.dart

Issue 792993004: Properly delete cached dependencies that should no longer be cached. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 years 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 side-by-side diff with in-line comments
Download patch
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 b9fd11f7b7e7a1c58b7870e6f83a91ca1a11b8ac..4927ec0c11f859d2c0b5667541af8c536787ead8 100644
--- a/sdk/lib/_internal/pub_generated/lib/src/entrypoint.dart
+++ b/sdk/lib/_internal/pub_generated/lib/src/entrypoint.dart
@@ -221,99 +221,145 @@ class Entrypoint {
return package.name;
})).toSet();
join1() {
- log.progress("Precompiling dependencies", (() {
- final completer0 = new Completer();
- scheduleMicrotask(() {
- try {
- var packagesToLoad = unionAll(
- dependenciesToPrecompile.map(graph.transitiveDependencies)).map(((package) {
- return package.name;
- })).toSet();
- dependenciesToPrecompile.forEach(((package) {
- return deleteEntry(path.join(depsDir, package));
- }));
- AssetEnvironment.create(
- this,
- BarbackMode.DEBUG,
- packages: packagesToLoad,
- useDart2JS: false).then((x0) {
- try {
- var environment = x0;
- environment.barback.errors.listen(((_) {
- }));
- environment.barback.getAllAssets().then((x1) {
- try {
- var assets = x1;
- waitAndPrintErrors(assets.map(((asset) {
- final completer0 = new Completer();
- scheduleMicrotask(() {
- try {
- join0() {
- var destPath =
- path.join(depsDir, asset.id.package, path.fromUri(asset.id.path));
- ensureDir(path.dirname(destPath));
- createFileFromStream(
- asset.read(),
- destPath).then((x0) {
- try {
- x0;
- completer0.complete();
- } catch (e0, s0) {
- completer0.completeError(e0, s0);
- }
- }, onError: completer0.completeError);
- }
- if (!dependenciesToPrecompile.contains(
- asset.id.package)) {
- completer0.complete(null);
- } else {
- join0();
+ join2() {
+ log.progress("Precompiling dependencies", (() {
+ final completer0 = new Completer();
+ scheduleMicrotask(() {
+ try {
+ var packagesToLoad = unionAll(
+ dependenciesToPrecompile.map(graph.transitiveDependencies)).map(((package) {
+ return package.name;
+ })).toSet();
+ AssetEnvironment.create(
+ this,
+ BarbackMode.DEBUG,
+ packages: packagesToLoad,
+ useDart2JS: false).then((x0) {
+ try {
+ var environment = x0;
+ environment.barback.errors.listen(((_) {
+ }));
+ environment.barback.getAllAssets().then((x1) {
+ try {
+ var assets = x1;
+ waitAndPrintErrors(assets.map(((asset) {
+ final completer0 = new Completer();
+ scheduleMicrotask(() {
+ try {
+ join0() {
+ var destPath =
+ path.join(depsDir, asset.id.package, path.fromUri(asset.id.path));
+ ensureDir(path.dirname(destPath));
+ createFileFromStream(
+ asset.read(),
+ destPath).then((x0) {
+ try {
+ x0;
+ completer0.complete();
+ } catch (e0, s0) {
+ completer0.completeError(e0, s0);
+ }
+ }, onError: completer0.completeError);
+ }
+ if (!dependenciesToPrecompile.contains(
+ asset.id.package)) {
+ completer0.complete(null);
+ } else {
+ join0();
+ }
+ } catch (e, s) {
+ completer0.completeError(e, s);
}
- } catch (e, s) {
- completer0.completeError(e, s);
+ });
+ return completer0.future;
+ }))).then((x2) {
+ try {
+ x2;
+ log.message(
+ "Precompiled " +
+ toSentence(ordered(dependenciesToPrecompile).map(log.bold)) +
+ ".");
+ completer0.complete();
+ } catch (e0, s0) {
+ completer0.completeError(e0, s0);
}
- });
- return completer0.future;
- }))).then((x2) {
- try {
- x2;
- log.message(
- "Precompiled " +
- toSentence(ordered(dependenciesToPrecompile).map(log.bold)) +
- ".");
- completer0.complete();
- } catch (e0, s0) {
- completer0.completeError(e0, s0);
- }
- }, onError: completer0.completeError);
- } catch (e1, s1) {
- completer0.completeError(e1, s1);
- }
- }, onError: completer0.completeError);
- } catch (e2, s2) {
- completer0.completeError(e2, s2);
- }
- }, onError: completer0.completeError);
- } catch (e, s) {
- completer0.completeError(e, s);
+ }, onError: completer0.completeError);
+ } catch (e1, s1) {
+ completer0.completeError(e1, s1);
+ }
+ }, onError: completer0.completeError);
+ } catch (e2, s2) {
+ completer0.completeError(e2, s2);
+ }
+ }, onError: completer0.completeError);
+ } catch (e, s) {
+ completer0.completeError(e, s);
+ }
+ });
+ return completer0.future;
+ })).catchError(((error) {
+ dependenciesToPrecompile.forEach(
+ (package) => deleteEntry(path.join(depsDir, package)));
+ throw error;
+ })).then((x1) {
+ try {
+ x1;
+ completer0.complete();
+ } catch (e0, s0) {
+ completer0.completeError(e0, s0);
}
- });
- return completer0.future;
- })).catchError(((error) {
- dependenciesToPrecompile.forEach(
- (package) => deleteEntry(path.join(depsDir, package)));
- throw error;
- })).then((x1) {
- try {
- x1;
- completer0.complete();
- } catch (e0, s0) {
- completer0.completeError(e0, s0);
- }
- }, onError: completer0.completeError);
+ }, onError: completer0.completeError);
+ }
+ if (dependenciesToPrecompile.isEmpty) {
+ completer0.complete(null);
+ } else {
+ join2();
+ }
}
- if (dependenciesToPrecompile.isEmpty) {
- completer0.complete(null);
+ if (dirExists(depsDir)) {
+ var it0 = dependenciesToPrecompile.iterator;
+ break0() {
+ var it1 = listDir(depsDir).iterator;
+ break1() {
+ join1();
+ }
+ var trampoline1;
+ continue1() {
+ trampoline1 = null;
+ if (it1.moveNext()) {
+ var subdir = it1.current;
+ var package = graph.packages[path.basename(subdir)];
+ join3() {
+ trampoline1 = continue1;
+ }
+ if (package == null ||
+ package.pubspec.transformers.isEmpty ||
+ graph.isPackageMutable(package.name)) {
+ deleteEntry(subdir);
+ join3();
+ } else {
+ join3();
+ }
+ } else {
+ break1();
+ }
+ }
+ trampoline1 = continue1;
+ do trampoline1(); while (trampoline1 != null);
+ }
+ var trampoline0;
+ continue0() {
+ trampoline0 = null;
+ if (it0.moveNext()) {
+ var package = it0.current;
+ deleteEntry(path.join(depsDir, package));
+ trampoline0 = continue0;
+ } else {
+ break0();
+ }
+ }
+ trampoline0 = continue0;
+ do trampoline0(); while (trampoline0 != null);
} else {
join1();
}

Powered by Google App Engine
This is Rietveld 408576698