Index: pkg/dev_compiler/lib/src/compiler/code_generator.dart |
diff --git a/pkg/dev_compiler/lib/src/compiler/code_generator.dart b/pkg/dev_compiler/lib/src/compiler/code_generator.dart |
index 9cbc9ec0944963f19f5db971f50c5027fa1cbfb1..6cc873085de59bfb706dd49027afe90186225141 100644 |
--- a/pkg/dev_compiler/lib/src/compiler/code_generator.dart |
+++ b/pkg/dev_compiler/lib/src/compiler/code_generator.dart |
@@ -31,7 +31,7 @@ import 'package:analyzer/src/summary/summarize_elements.dart' |
import 'package:analyzer/src/summary/summary_sdk.dart'; |
import 'package:analyzer/src/task/strong/ast_properties.dart' |
show isDynamicInvoke, setIsDynamicInvoke, getImplicitAssignmentCast; |
-import 'package:path/path.dart' show separator; |
+import 'package:path/path.dart' show separator, isWithin, fromUri; |
import '../closure/closure_annotator.dart' show ClosureAnnotator; |
import '../js_ast/js_ast.dart' as JS; |
@@ -5452,16 +5452,16 @@ String jsLibraryName(String libraryRoot, LibraryElement library) { |
return uri.path; |
} |
// TODO(vsm): This is not necessarily unique if '__' appears in a file name. |
- var separator = '__'; |
+ var customSeparator = '__'; |
String qualifiedPath; |
if (uri.scheme == 'package') { |
// Strip the package name. |
// TODO(vsm): This is not unique if an escaped '/'appears in a filename. |
// E.g., "foo/bar.dart" and "foo$47bar.dart" would collide. |
- qualifiedPath = uri.pathSegments.skip(1).join(separator); |
- } else if (uri.toFilePath().startsWith(libraryRoot)) { |
+ qualifiedPath = uri.pathSegments.skip(1).join(customSeparator); |
+ } else if (isWithin(libraryRoot, uri.toFilePath())) { |
qualifiedPath = |
- uri.path.substring(libraryRoot.length).replaceAll('/', separator); |
+ fromUri(uri).substring(libraryRoot.length).replaceAll(separator, customSeparator); |
vsm
2016/10/12 20:32:05
Can you run ./tool/format.sh ? It should fix the
|
} else { |
// We don't have a unique name. |
throw 'Invalid library root. $libraryRoot does not contain ${uri |