| 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].
|
| */
|
|
|