| Index: lib/src/multi_package_resolver.dart
|
| diff --git a/lib/src/multi_package_resolver.dart b/lib/src/multi_package_resolver.dart
|
| index 8321419cf9eb24a6a9b37aae35abfe807d4055fb..5851c377de098ea235c6e70e7acb2f1df75bb6c4 100644
|
| --- a/lib/src/multi_package_resolver.dart
|
| +++ b/lib/src/multi_package_resolver.dart
|
| @@ -20,13 +20,16 @@ class MultiPackageResolver extends UriResolver {
|
|
|
| @override
|
| Source resolveAbsolute(Uri uri) {
|
| - var path = _expandPath(uri);
|
| - if (path == null) return null;
|
| -
|
| - var resolvedPath = _resolve(path);
|
| - if (resolvedPath == null) return null;
|
| -
|
| - return new FileBasedSource.con2(uri, new JavaFile(resolvedPath));
|
| + var candidates = _expandPath(uri);
|
| + if (candidates == null) return null;
|
| +
|
| + for (var path in candidates) {
|
| + var resolvedPath = _resolve(path);
|
| + if (resolvedPath != null) {
|
| + return new FileBasedSource.con2(uri, new JavaFile(resolvedPath));
|
| + }
|
| + }
|
| + return null;
|
| }
|
|
|
| /// Resolve [path] by looking at each prefix in [searchPaths] and returning
|
| @@ -40,12 +43,12 @@ class MultiPackageResolver extends UriResolver {
|
| }
|
|
|
| /// Expand `uri.path`, replacing dots in the package name with slashes.
|
| - String _expandPath(Uri uri) {
|
| + List<String> _expandPath(Uri uri) {
|
| if (uri.scheme != 'package') return null;
|
| var path = uri.path;
|
| var slashPos = path.indexOf('/');
|
| var packagePath = path.substring(0, slashPos).replaceAll(".", "/");
|
| var filePath = path.substring(slashPos + 1);
|
| - return '${packagePath}/lib/${filePath}';
|
| + return ['$packagePath/lib/$filePath', '$packagePath/$filePath'];
|
| }
|
| }
|
|
|