@@ -49,10 +49,7 @@ class AnalysisDriver {
49
49
50
50
List <UriResolver > get resolvers {
51
51
DartSdk sdk = new DirectoryBasedDartSdk (new JavaFile (sdkDir));
52
- List <UriResolver > resolvers = [
53
- new DartUriResolver (sdk),
54
- new FileUriResolver ()
55
- ];
52
+ List <UriResolver > resolvers = [new DartUriResolver (sdk)];
56
53
if (options.packageRootPath != null ) {
57
54
JavaFile packageDirectory = new JavaFile (options.packageRootPath);
58
55
resolvers.add (new PackageUriResolver ([packageDirectory]));
@@ -67,6 +64,9 @@ class AnalysisDriver {
67
64
PhysicalResourceProvider .INSTANCE , packageMap));
68
65
}
69
66
}
67
+ // File URI resolver must come last so that files inside "/lib" are
68
+ // are analyzed via "package:" URI's.
69
+ resolvers.add (new FileUriResolver ());
70
70
return resolvers;
71
71
}
72
72
@@ -90,6 +90,12 @@ class AnalysisDriver {
90
90
for (File file in files) {
91
91
JavaFile sourceFile = new JavaFile (file.path);
92
92
Source source = new FileBasedSource .con2 (sourceFile.toURI (), sourceFile);
93
+ Uri uri = context.sourceFactory.restoreUri (source);
94
+ if (uri != null ) {
95
+ // Ensure that we analyze the file using its canonical URI (e.g. if
96
+ // it's in "/lib", analyze it using a "package:" URI).
97
+ source = new FileBasedSource .con2 (uri, sourceFile);
98
+ }
93
99
sources.add (source);
94
100
changeSet.addedSource (source);
95
101
}
0 commit comments