@@ -12,7 +12,6 @@ import 'package:analyzer/dart/element/element.dart';
1212import 'package:analyzer/error/error.dart' ;
1313import 'package:analyzer/file_system/file_system.dart' as fileSystem;
1414import 'package:analyzer/file_system/physical_file_system.dart' ;
15- import 'package:analyzer/source/embedder.dart' show EmbedderUriResolver;
1615import 'package:analyzer/source/package_map_resolver.dart' ;
1716import 'package:analyzer/source/sdk_ext.dart' ;
1817import 'package:analyzer/src/context/builder.dart' ;
@@ -193,22 +192,25 @@ class DartDoc {
193192 fileSystem.Folder cwd =
194193 PhysicalResourceProvider .INSTANCE .getResource (rootDir.path);
195194 Map <String , List <fileSystem.Folder >> packageMap = _calculatePackageMap (cwd);
196- EmbedderUriResolver embedderUriResolver;
195+
196+ EmbedderSdk embedderSdk;
197+ DartUriResolver embedderResolver;
197198 if (packageMap != null ) {
198199 resolvers.add (new SdkExtUriResolver (packageMap));
199200 resolvers.add (new PackageMapUriResolver (
200201 PhysicalResourceProvider .INSTANCE , packageMap));
201-
202202 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 ) {
205207 // The embedder uri resolver has no mappings. Use the default Dart SDK
206208 // uri resolver.
207209 resolvers.add (new DartUriResolver (sdk));
208210 } else {
209211 // The embedder uri resolver has mappings, use it instead of the default
210212 // Dart SDK uri resolver.
211- resolvers.add (embedderUriResolver );
213+ resolvers.add (embedderResolver );
212214 }
213215 } else {
214216 resolvers.add (new DartUriResolver (sdk));
@@ -220,6 +222,7 @@ class DartDoc {
220222
221223 var options = new AnalysisOptionsImpl ();
222224 options.enableGenericMethods = true ;
225+ options.enableAssertInitializer = true ;
223226
224227 AnalysisEngine .instance.processRequiredPlugins ();
225228
@@ -243,9 +246,18 @@ class DartDoc {
243246 print ('parsing ${name }...' );
244247 JavaFile javaFile = new JavaFile (filePath).getAbsoluteFile ();
245248 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;
247254 if (uri != null ) {
248255 source = new FileBasedSource (javaFile, uri);
256+ } else {
257+ uri = context.sourceFactory.restoreUri (source);
258+ if (uri != null ) {
259+ source = new FileBasedSource (javaFile, uri);
260+ }
249261 }
250262 sources.add (source);
251263 if (context.computeKindOf (source) == SourceKind .LIBRARY ) {
@@ -256,9 +268,9 @@ class DartDoc {
256268
257269 files.forEach (processLibrary);
258270
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);
262274 processLibrary (source.fullName);
263275 });
264276 }
0 commit comments