| Index: pkg/analysis_server/lib/src/context_manager.dart
|
| diff --git a/pkg/analysis_server/lib/src/context_manager.dart b/pkg/analysis_server/lib/src/context_manager.dart
|
| index 347788b1c0707176de0f7143a6dc87cac89714c1..86b13a101c120425708e6795a0a7d54a5e83ce34 100644
|
| --- a/pkg/analysis_server/lib/src/context_manager.dart
|
| +++ b/pkg/analysis_server/lib/src/context_manager.dart
|
| @@ -16,14 +16,15 @@ import 'package:analyzer/plugin/options.dart';
|
| import 'package:analyzer/plugin/resolver_provider.dart';
|
| import 'package:analyzer/source/analysis_options_provider.dart';
|
| import 'package:analyzer/source/config.dart';
|
| -import 'package:analyzer/source/embedder.dart';
|
| import 'package:analyzer/source/package_map_provider.dart';
|
| import 'package:analyzer/source/package_map_resolver.dart';
|
| import 'package:analyzer/source/path_filter.dart';
|
| import 'package:analyzer/source/pub_package_map_provider.dart';
|
| import 'package:analyzer/source/sdk_ext.dart';
|
| +import 'package:analyzer/src/context/builder.dart';
|
| import 'package:analyzer/src/context/context.dart' as context;
|
| import 'package:analyzer/src/context/source.dart';
|
| +import 'package:analyzer/src/dart/sdk/sdk.dart';
|
| import 'package:analyzer/src/generated/engine.dart';
|
| import 'package:analyzer/src/generated/java_engine.dart';
|
| import 'package:analyzer/src/generated/java_io.dart';
|
| @@ -391,6 +392,13 @@ class ContextManagerImpl implements ContextManager {
|
| static const String PACKAGE_SPEC_NAME = '.packages';
|
|
|
| /**
|
| + * The name of the key in an embedder file whose value is the list of
|
| + * libraries in the SDK.
|
| + * TODO(brianwilkerson) This is also defined in sdk.dart.
|
| + */
|
| + static const String _EMBEDDED_LIB_MAP_KEY = 'embedded_libs';
|
| +
|
| + /**
|
| * The [ResourceProvider] using which paths are converted into [Resource]s.
|
| */
|
| final ResourceProvider resourceProvider;
|
| @@ -515,6 +523,7 @@ class ContextManagerImpl implements ContextManager {
|
| contexts.add(info.context);
|
| info.children.forEach(addContextAndDescendants);
|
| }
|
| +
|
| if (innermostContainingInfo != null) {
|
| if (analysisRoot == innermostContainingInfo.folder) {
|
| addContextAndDescendants(innermostContainingInfo);
|
| @@ -529,6 +538,11 @@ class ContextManagerImpl implements ContextManager {
|
| return contexts;
|
| }
|
|
|
| + /**
|
| + * Check if this map defines embedded libraries.
|
| + */
|
| + bool definesEmbeddedLibs(Map map) => map[_EMBEDDED_LIB_MAP_KEY] != null;
|
| +
|
| @override
|
| AnalysisContext getContextFor(String path) {
|
| return _getInnermostContextInfoFor(path)?.context;
|
| @@ -913,7 +927,8 @@ class ContextManagerImpl implements ContextManager {
|
| .where((r) => r is! DartUriResolver)
|
| .toList();
|
| // Add an embedded URI resolver in its place.
|
| - resolvers.add(new DartUriResolver(new EmbedderSdk(embedderYamls)));
|
| + resolvers.add(new DartUriResolver(
|
| + new EmbedderSdk(resourceProvider, embedderYamls)));
|
|
|
| // Set a new source factory.
|
| SourceFactoryImpl newFactory = sourceFactory.clone();
|
| @@ -1158,7 +1173,7 @@ class ContextManagerImpl implements ContextManager {
|
| EmbedderYamlLocator locator =
|
| disposition.getEmbedderLocator(resourceProvider);
|
| Map<Folder, YamlMap> embedderYamls = locator.embedderYamls;
|
| - EmbedderSdk embedderSdk = new EmbedderSdk(embedderYamls);
|
| + EmbedderSdk embedderSdk = new EmbedderSdk(resourceProvider, embedderYamls);
|
| if (embedderSdk.libraryMap.size() == 0) {
|
| // There was no embedder file, or the file was empty, so used the default
|
| // SDK.
|
|
|