@@ -12,7 +12,6 @@ import 'package:analyzer/dart/element/element.dart';
12
12
import 'package:analyzer/error/error.dart' ;
13
13
import 'package:analyzer/file_system/file_system.dart' as fileSystem;
14
14
import 'package:analyzer/file_system/physical_file_system.dart' ;
15
- import 'package:analyzer/source/embedder.dart' show EmbedderUriResolver;
16
15
import 'package:analyzer/source/package_map_resolver.dart' ;
17
16
import 'package:analyzer/source/sdk_ext.dart' ;
18
17
import 'package:analyzer/src/context/builder.dart' ;
@@ -193,22 +192,25 @@ class DartDoc {
193
192
fileSystem.Folder cwd =
194
193
PhysicalResourceProvider .INSTANCE .getResource (rootDir.path);
195
194
Map <String , List <fileSystem.Folder >> packageMap = _calculatePackageMap (cwd);
196
- EmbedderUriResolver embedderUriResolver;
195
+
196
+ EmbedderSdk embedderSdk;
197
+ DartUriResolver embedderResolver;
197
198
if (packageMap != null ) {
198
199
resolvers.add (new SdkExtUriResolver (packageMap));
199
200
resolvers.add (new PackageMapUriResolver (
200
201
PhysicalResourceProvider .INSTANCE , packageMap));
201
-
202
202
var embedderYamls = new EmbedderYamlLocator (packageMap).embedderYamls;
203
- embedderUriResolver = new EmbedderUriResolver (embedderYamls);
204
- if (embedderUriResolver.length == 0 ) {
203
+ embedderSdk =
204
+ new EmbedderSdk (PhysicalResourceProvider .INSTANCE , embedderYamls);
205
+ embedderResolver = new DartUriResolver (embedderSdk);
206
+ if (embedderSdk.urlMappings.length == 0 ) {
205
207
// The embedder uri resolver has no mappings. Use the default Dart SDK
206
208
// uri resolver.
207
209
resolvers.add (new DartUriResolver (sdk));
208
210
} else {
209
211
// The embedder uri resolver has mappings, use it instead of the default
210
212
// Dart SDK uri resolver.
211
- resolvers.add (embedderUriResolver );
213
+ resolvers.add (embedderResolver );
212
214
}
213
215
} else {
214
216
resolvers.add (new DartUriResolver (sdk));
@@ -220,6 +222,7 @@ class DartDoc {
220
222
221
223
var options = new AnalysisOptionsImpl ();
222
224
options.enableGenericMethods = true ;
225
+ options.enableAssertInitializer = true ;
223
226
224
227
AnalysisEngine .instance.processRequiredPlugins ();
225
228
@@ -243,9 +246,18 @@ class DartDoc {
243
246
print ('parsing ${name }...' );
244
247
JavaFile javaFile = new JavaFile (filePath).getAbsoluteFile ();
245
248
Source source = new FileBasedSource (javaFile);
246
- Uri uri = context.sourceFactory.restoreUri (source);
249
+
250
+ // TODO(jcollins-g): remove the manual reversal using embedderSdk when we
251
+ // upgrade to analyzer-0.30 (where DartUriResolver implements
252
+ // restoreAbsolute)
253
+ Uri uri = embedderSdk? .fromFileUri (source.uri)? .uri;
247
254
if (uri != null ) {
248
255
source = new FileBasedSource (javaFile, uri);
256
+ } else {
257
+ uri = context.sourceFactory.restoreUri (source);
258
+ if (uri != null ) {
259
+ source = new FileBasedSource (javaFile, uri);
260
+ }
249
261
}
250
262
sources.add (source);
251
263
if (context.computeKindOf (source) == SourceKind .LIBRARY ) {
@@ -256,9 +268,9 @@ class DartDoc {
256
268
257
269
files.forEach (processLibrary);
258
270
259
- if ((embedderUriResolver != null ) && (embedderUriResolver .length > 0 )) {
260
- embedderUriResolver.dartSdk.uris .forEach ((String dartUri) {
261
- Source source = embedderUriResolver.dartSdk .mapDartUri (dartUri);
271
+ if ((embedderSdk != null ) && (embedderSdk.urlMappings .length > 0 )) {
272
+ embedderSdk.urlMappings.keys .forEach ((String dartUri) {
273
+ Source source = embedderSdk .mapDartUri (dartUri);
262
274
processLibrary (source.fullName);
263
275
});
264
276
}
0 commit comments