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

Unified Diff: sdk/lib/_internal/pub_generated/lib/src/barback/pub_package_provider.dart

Issue 608533003: Properly report assets from static packages as not found. (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 side-by-side diff with in-line comments
Download patch
Index: sdk/lib/_internal/pub_generated/lib/src/barback/pub_package_provider.dart
diff --git a/sdk/lib/_internal/pub_generated/lib/src/barback/pub_package_provider.dart b/sdk/lib/_internal/pub_generated/lib/src/barback/pub_package_provider.dart
index ee505c2c13926031aaf59d33e9ec2617b9ad7df6..77807e755189c228576f7e6297ccc432b34c165f 100644
--- a/sdk/lib/_internal/pub_generated/lib/src/barback/pub_package_provider.dart
+++ b/sdk/lib/_internal/pub_generated/lib/src/barback/pub_package_provider.dart
@@ -18,31 +18,57 @@ class PubPackageProvider implements StaticPackageProvider {
r"$pub",
r"$sdk"]..addAll(graph.packages.keys.where(graph.isPackageStatic));
Future<Asset> getAsset(AssetId id) {
- if (id.package == r'$pub') {
- var components = path.url.split(id.path);
- assert(components.isNotEmpty);
- assert(components.first == 'lib');
- components[0] = 'dart';
- var file = assetPath(path.joinAll(components));
- if (!_graph.packages.containsKey("barback")) {
- return new Future.value(new Asset.fromPath(id, file));
+ final completer0 = new Completer();
+ scheduleMicrotask(() {
+ try {
+ join0() {
+ join1() {
+ var nativePath = path.fromUri(id.path);
+ var file = _graph.packages[id.package].path(nativePath);
+ _assertExists(file, id);
+ completer0.complete(new Asset.fromPath(id, file));
+ }
+ if (id.package == r'$sdk') {
+ var parts = path.split(path.fromUri(id.path));
+ assert(parts.isNotEmpty && parts[0] == 'lib');
+ parts = parts.skip(1);
+ var file = path.join(sdk.rootDirectory, path.joinAll(parts));
+ _assertExists(file, id);
+ completer0.complete(new Asset.fromPath(id, file));
+ } else {
+ join1();
+ }
+ }
+ if (id.package == r'$pub') {
+ var components = path.url.split(id.path);
+ assert(components.isNotEmpty);
+ assert(components.first == 'lib');
+ components[0] = 'dart';
+ var file = assetPath(path.joinAll(components));
+ _assertExists(file, id);
+ join2() {
+ var versions =
+ mapMap(_graph.packages, value: ((_, package) => package.version));
+ var contents = readTextFile(file);
+ contents = preprocess(contents, versions, path.toUri(file));
+ completer0.complete(new Asset.fromString(id, contents));
+ }
+ if (!_graph.packages.containsKey("barback")) {
+ completer0.complete(new Asset.fromPath(id, file));
+ } else {
+ join2();
+ }
+ } else {
+ join0();
+ }
+ } catch (e0) {
+ completer0.completeError(e0);
}
- var versions =
- mapMap(_graph.packages, value: (_, package) => package.version);
- var contents = readTextFile(file);
- contents = preprocess(contents, versions, path.toUri(file));
- return new Future.value(new Asset.fromString(id, contents));
- }
- if (id.package == r'$sdk') {
- var parts = path.split(path.fromUri(id.path));
- assert(parts.isNotEmpty && parts[0] == 'lib');
- parts = parts.skip(1);
- var file = path.join(sdk.rootDirectory, path.joinAll(parts));
- return new Future.value(new Asset.fromPath(id, file));
- }
- var nativePath = path.fromUri(id.path);
- var file = _graph.packages[id.package].path(nativePath);
- return new Future.value(new Asset.fromPath(id, file));
+ });
+ return completer0.future;
+ }
+ void _assertExists(String path, AssetId id) {
+ if (!fileExists(path)) throw new AssetNotFoundException(id);
}
Stream<AssetId> getAllAssetIds(String packageName) {
if (packageName == r'$pub') {

Powered by Google App Engine
This is Rietveld 408576698