Skip to content

Commit eb7cac2

Browse files
committed
Merge pull request #1109 from johnmccutchan/fix_embedder_yaml
Fix embedder yaml
2 parents 8163c1b + a96b465 commit eb7cac2

File tree

6 files changed

+24
-7
lines changed

6 files changed

+24
-7
lines changed

lib/dartdoc.dart

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -138,12 +138,13 @@ class DartDoc {
138138
PackageMapInfo packageMapInfo =
139139
pubPackageMapProvider.computePackageMap(cwd);
140140
Map<String, List<fileSystem.Folder>> packageMap = packageMapInfo.packageMap;
141+
EmbedderUriResolver embedderUriResolver;
141142
if (packageMap != null) {
142143
resolvers.add(new SdkExtUriResolver(packageMap));
143144
resolvers.add(new PackageMapUriResolver(
144145
PhysicalResourceProvider.INSTANCE, packageMap));
145146

146-
EmbedderUriResolver embedderUriResolver = new EmbedderUriResolver(
147+
embedderUriResolver = new EmbedderUriResolver(
147148
new EmbedderYamlLocator(packageMap).embedderYamls);
148149
if (embedderUriResolver.length == 0) {
149150
// The embedder uri resolver has no mappings. Use the default Dart SDK
@@ -175,7 +176,7 @@ class DartDoc {
175176

176177
List<Source> sources = [];
177178

178-
files.forEach((String filePath) {
179+
void processLibrary(String filePath) {
179180
String name = filePath;
180181
if (name.startsWith(Directory.current.path)) {
181182
name = name.substring(Directory.current.path.length);
@@ -193,7 +194,16 @@ class DartDoc {
193194
LibraryElement library = context.computeLibraryElement(source);
194195
libraries.add(library);
195196
}
196-
});
197+
}
198+
199+
files.forEach(processLibrary);
200+
201+
if ((embedderUriResolver != null) && (embedderUriResolver.length > 0)) {
202+
embedderUriResolver.dartSdk.uris.forEach((String dartUri) {
203+
Source source = embedderUriResolver.dartSdk.mapDartUri(dartUri);
204+
processLibrary(source.fullName);
205+
});
206+
}
197207

198208
// Ensure that the analysis engine performs all remaining work.
199209
AnalysisResult result = context.performAnalysisTask();

test/dartdoc_test.dart

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,14 @@ void main() {
114114
expect(p.libraries, hasLength(3));
115115
expect(p.libraries.map((lib) => lib.name).contains('dart:core'), isTrue);
116116
expect(p.libraries.map((lib) => lib.name).contains('dart:async'), isTrue);
117-
expect(p.libraries.map((lib) => lib.name).contains('grizzly'), isTrue);
117+
expect(p.libraries.map((lib) => lib.name).contains('dart:bear'), isTrue);
118+
// Ensure that we actually parsed some source by checking for
119+
// the 'Bear' class.
120+
Library dart_bear =
121+
p.libraries.firstWhere((lib) => lib.name == 'dart:bear');
122+
expect(dart_bear, isNotNull);
123+
expect(dart_bear.allClasses.map((cls) => cls.name).contains('Bear'),
124+
isTrue);
118125
});
119126
});
120127
}
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
embedded_libs:
2-
"dart:bear": "grizzly.dart"
3-
"dart:core": "core.dart"
4-
"dart:async": "async.dart"
2+
"dart:bear": "../sdk/grizzly.dart"
3+
"dart:core": "../sdk/core.dart"
4+
"dart:async": "../sdk/async.dart"

0 commit comments

Comments
 (0)