Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(754)

Unified Diff: pkg/analyzer/lib/src/dart/sdk/sdk.dart

Issue 2277003003: Attempt to load sdk.ds from the only embedder. (Closed)
Patch Set: Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | pkg/analyzer/test/embedder_tests.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pkg/analyzer/lib/src/dart/sdk/sdk.dart
diff --git a/pkg/analyzer/lib/src/dart/sdk/sdk.dart b/pkg/analyzer/lib/src/dart/sdk/sdk.dart
index d692a289058e0f84919428a587c861fb22a90950..ec6403903ea828b90a70246334ac3b765540eabc 100644
--- a/pkg/analyzer/lib/src/dart/sdk/sdk.dart
+++ b/pkg/analyzer/lib/src/dart/sdk/sdk.dart
@@ -265,10 +265,16 @@ class EmbedderSdk extends AbstractDartSdk {
static const String _EMBEDDED_LIB_MAP_KEY = 'embedded_libs';
final Map<String, String> _urlMappings = new HashMap<String, String>();
+ PackageBundle _embedderBundle;
+
EmbedderSdk(
ResourceProvider resourceProvider, Map<Folder, YamlMap> embedderYamls) {
this.resourceProvider = resourceProvider;
embedderYamls?.forEach(_processEmbedderYaml);
+ if (embedderYamls?.length == 1) {
+ Folder libFolder = embedderYamls.keys.first;
+ _loadEmbedderBundle(libFolder);
+ }
}
@override
@@ -281,13 +287,15 @@ class EmbedderSdk extends AbstractDartSdk {
Map<String, String> get urlMappings => _urlMappings;
@override
- PackageBundle getLinkedBundle() => null;
-
- @override
String getRelativePathFromFile(File file) => file.path;
@override
- PackageBundle getSummarySdkBundle(bool strongMode) => null;
+ PackageBundle getSummarySdkBundle(bool strongMode) {
+ if (strongMode) {
+ return _embedderBundle;
+ }
+ return null;
+ }
@override
Source internalMapDartUri(String dartUri) {
@@ -329,6 +337,16 @@ class EmbedderSdk extends AbstractDartSdk {
}
}
+ void _loadEmbedderBundle(Folder libFolder) {
+ File bundleFile = libFolder.parent.getChildAssumingFile('sdk.ds');
+ if (bundleFile.exists) {
+ try {
+ List<int> bytes = bundleFile.readAsBytesSync();
+ _embedderBundle = new PackageBundle.fromBuffer(bytes);
+ } on FileSystemException {}
+ }
+ }
+
/**
* Install the mapping from [name] to [libDir]/[file].
*/
« no previous file with comments | « no previous file | pkg/analyzer/test/embedder_tests.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698