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

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

Issue 868463003: Regenerate pub's sources and remove workarounds for fixed issues. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Code review changes Created 5 years, 11 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 side-by-side diff with in-line comments
Download patch
Index: sdk/lib/_internal/pub_generated/lib/src/global_packages.dart
diff --git a/sdk/lib/_internal/pub_generated/lib/src/global_packages.dart b/sdk/lib/_internal/pub_generated/lib/src/global_packages.dart
index aff228f3be99a1d759f0daa1c93b3177591ab309..3dfed37924599d5a6add3a9cb3c45609e762a92b 100644
--- a/sdk/lib/_internal/pub_generated/lib/src/global_packages.dart
+++ b/sdk/lib/_internal/pub_generated/lib/src/global_packages.dart
@@ -427,51 +427,81 @@ class GlobalPackages {
///
/// Returns an [Entrypoint] loaded with the active package if found.
Future<Entrypoint> find(String name) {
- // TODO(rnystrom): Use async/await here when on __ catch is supported.
- // See: https://github.com/dart-lang/async_await/issues/27
- return new Future.sync(() {
- var lockFilePath = _getLockFilePath(name);
- var lockFile;
+ final completer0 = new Completer();
+ scheduleMicrotask(() {
try {
- lockFile = new LockFile.load(lockFilePath, cache.sources);
- } on IOException catch (error) {
- var oldLockFilePath = p.join(_directory, '$name.lock');
+ var lockFilePath = _getLockFilePath(name);
+ var lockFile;
+ join0() {
+ var id = lockFile.packages[name];
+ lockFile.packages.remove(name);
+ var source = cache.sources[id.source];
+ join1() {
+ assert(id.source == "path");
+ completer0.complete(
+ new Entrypoint(PathSource.pathFromDescription(id.description), cache));
+ }
+ if (source is CachedSource) {
+ new Future.value(
+ cache.sources[id.source].getDirectory(id)).then((x0) {
+ try {
+ var dir = x0;
+ var package = new Package.load(name, dir, cache.sources);
+ completer0.complete(
+ new Entrypoint.inMemory(package, lockFile, cache));
+ } catch (e0, s0) {
+ completer0.completeError(e0, s0);
+ }
+ }, onError: completer0.completeError);
+ } else {
+ join1();
+ }
+ }
+ catch0(error, s1) {
+ try {
+ if (error is IOException) {
+ var oldLockFilePath = p.join(_directory, '${name}.lock');
+ join2() {
+ ensureDir(p.dirname(lockFilePath));
+ new File(oldLockFilePath).renameSync(lockFilePath);
+ join0();
+ }
+ catch1(error, s2) {
+ try {
+ if (error is IOException) {
+ dataError("No active package ${log.bold(name)}.");
+ join2();
+ } else {
+ throw error;
+ }
+ } catch (error, s2) {
+ completer0.completeError(error, s2);
+ }
+ }
+ try {
+ lockFile = new LockFile.load(oldLockFilePath, cache.sources);
+ join2();
+ } catch (e1, s3) {
+ catch1(e1, s3);
+ }
+ } else {
+ throw error;
+ }
+ } catch (error, s1) {
+ completer0.completeError(error, s1);
+ }
+ }
try {
- // TODO(nweiz): This looks for Dart 1.6's old lockfile location.
- // Remove it when Dart 1.6 is old enough that we don't think anyone
- // will have these lockfiles anymore (issue 20703).
- lockFile = new LockFile.load(oldLockFilePath, cache.sources);
- } on IOException catch (error) {
- // If we couldn't read the lock file, it's not activated.
- dataError("No active package ${log.bold(name)}.");
+ lockFile = new LockFile.load(lockFilePath, cache.sources);
+ join0();
+ } catch (e2, s4) {
+ catch0(e2, s4);
}
-
- // Move the old lockfile to its new location.
- ensureDir(p.dirname(lockFilePath));
- new File(oldLockFilePath).renameSync(lockFilePath);
- }
-
- // Load the package from the cache.
- var id = lockFile.packages[name];
- lockFile.packages.remove(name);
-
- var source = cache.sources[id.source];
- if (source is CachedSource) {
- // For cached sources, the package itself is in the cache and the
- // lockfile is the one we just loaded.
- return cache.sources[id.source].getDirectory(
- id).then((dir) => new Package.load(name, dir, cache.sources)).then((package) {
- return new Entrypoint.inMemory(package, lockFile, cache);
- });
+ } catch (e, s) {
+ completer0.completeError(e, s);
}
-
- // For uncached sources (i.e. path), the ID just points to the real
- // directory for the package.
- assert(id.source == "path");
- return new Entrypoint(
- PathSource.pathFromDescription(id.description),
- cache);
});
+ return completer0.future;
}
/// Runs [package]'s [executable] with [args].
@@ -612,6 +642,7 @@ class GlobalPackages {
var id;
join3() {
trampoline0 = continue0;
+ do trampoline0(); while (trampoline0 != null);
}
catch0(error, stackTrace) {
try {
@@ -723,6 +754,7 @@ class GlobalPackages {
var entry = it1.current;
join7() {
trampoline1 = continue1;
+ do trampoline1(); while (trampoline1 != null);
}
catch1(error, stackTrace) {
try {
« no previous file with comments | « sdk/lib/_internal/pub_generated/lib/src/executable.dart ('k') | sdk/lib/_internal/pub_generated/lib/src/source/git.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698