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

Unified Diff: compiler/java/com/google/dart/compiler/UrlLibrarySource.java

Issue 10823060: fix resolving import uri's for packages (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 8 years, 5 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: compiler/java/com/google/dart/compiler/UrlLibrarySource.java
===================================================================
--- compiler/java/com/google/dart/compiler/UrlLibrarySource.java (revision 9991)
+++ compiler/java/com/google/dart/compiler/UrlLibrarySource.java (working copy)
@@ -33,8 +33,8 @@
return null;
}
try {
- // Force the creation of an escaped relative URI to deal with spaces, etc.
- URI uri = getUri().resolve(new URI(null, null, relPath, null)).normalize();
+ // Force the creation of an escaped relative URI to deal with spaces, etc.s
+ URI uri = getUri().resolve(new URI(null, null, relPath, null, null)).normalize();
return new UrlDartSource(uri, relPath, this, systemLibraryManager);
} catch (Throwable e) {
return null;
@@ -48,23 +48,27 @@
}
try {
// Force the creation of an escaped relative URI to deal with spaces, etc.
- URI uri = getUri().resolve(new URI(null, null, relPath, null)).normalize();
+ URI uri = getUri().resolve(new URI(null, null, relPath, null, null)).normalize();
String path = uri.getPath();
// Resolve relative reference out of one system library into another
- if (SystemLibraryManager.isDartUri(uri) && path != null && path.startsWith("/..")) {
- URI fileUri = systemLibraryManager.resolveDartUri(uri);
- URI shortUri = systemLibraryManager.getShortUri(fileUri);
- if (shortUri != null) {
- uri = shortUri;
+ if (SystemLibraryManager.isDartUri(uri)) {
+ if(path != null && path.startsWith("/..")) {
+ URI fileUri = systemLibraryManager.resolveDartUri(uri);
+ URI shortUri = systemLibraryManager.getShortUri(fileUri);
+ if (shortUri != null) {
+ uri = shortUri;
+ }
}
- }
- if (SystemLibraryManager.isPackageUri(uri)){
+ } else if (SystemLibraryManager.isPackageUri(uri)){
URI fileUri = systemLibraryManager.resolveDartUri(uri);
if (fileUri != null){
uri = fileUri;
}
-
+ } else if (path != null && !(new File(path).exists())){
+ // resolve against package root directories to find file
+ uri = systemLibraryManager.resolveRelativeUri(uri);
}
+
return new UrlLibrarySource(uri, systemLibraryManager);
} catch (Throwable e) {
return null;

Powered by Google App Engine
This is Rietveld 408576698