| Index: pkg/analyzer/lib/src/summary/package_bundle_reader.dart
|
| diff --git a/pkg/analyzer/lib/src/summary/package_bundle_reader.dart b/pkg/analyzer/lib/src/summary/package_bundle_reader.dart
|
| index bdccb1eadb91be2500e3f8feb5ce76edab6bd97b..007f07fd808a97984707b2bc51aed84309f10416 100644
|
| --- a/pkg/analyzer/lib/src/summary/package_bundle_reader.dart
|
| +++ b/pkg/analyzer/lib/src/summary/package_bundle_reader.dart
|
| @@ -6,7 +6,7 @@ import 'package:analyzer/src/context/cache.dart';
|
| import 'package:analyzer/src/context/context.dart';
|
| import 'package:analyzer/src/dart/element/element.dart';
|
| import 'package:analyzer/src/generated/engine.dart';
|
| -import 'package:analyzer/src/generated/resolver.dart';
|
| +import 'package:analyzer/src/generated/resolver.dart' show TypeProvider;
|
| import 'package:analyzer/src/generated/source.dart';
|
| import 'package:analyzer/src/generated/source_io.dart';
|
| import 'package:analyzer/src/generated/utilities_dart.dart';
|
| @@ -27,8 +27,8 @@ class InputPackagesResultProvider extends ResynthesizerResultProvider {
|
| InputPackagesResultProvider(
|
| InternalAnalysisContext context, SummaryDataStore dataStore)
|
| : super(context, dataStore) {
|
| - AnalysisContext sdkContext = context.sourceFactory.dartSdk.context;
|
| - createResynthesizer(sdkContext, sdkContext.typeProvider);
|
| + createResynthesizer();
|
| + context.typeProvider = resynthesizer.typeProvider;
|
| }
|
|
|
| @override
|
| @@ -121,7 +121,6 @@ abstract class ResynthesizerResultProvider extends ResultProvider {
|
| final SummaryDataStore _dataStore;
|
|
|
| _FileBasedSummaryResynthesizer _resynthesizer;
|
| - ResynthesizerResultProvider _sdkProvider;
|
|
|
| ResynthesizerResultProvider(this.context, this._dataStore);
|
|
|
| @@ -136,10 +135,13 @@ abstract class ResynthesizerResultProvider extends ResultProvider {
|
|
|
| @override
|
| bool compute(CacheEntry entry, ResultDescriptor result) {
|
| - if (_sdkProvider != null && _sdkProvider.compute(entry, result)) {
|
| + AnalysisTarget target = entry.target;
|
| +
|
| + if (result == TYPE_PROVIDER) {
|
| + entry.setValue(result as ResultDescriptor<TypeProvider>,
|
| + _resynthesizer.typeProvider, TargetedResult.EMPTY_LIST);
|
| return true;
|
| }
|
| - AnalysisTarget target = entry.target;
|
|
|
| // LINE_INFO can be provided using just the UnlinkedUnit.
|
| if (target is Source && result == LINE_INFO) {
|
| @@ -264,19 +266,9 @@ abstract class ResynthesizerResultProvider extends ResultProvider {
|
| *
|
| * Subclasses must call this method in their constructors.
|
| */
|
| - void createResynthesizer(
|
| - InternalAnalysisContext sdkContext, TypeProvider typeProvider) {
|
| - // Set the type provider to prevent the context from computing it.
|
| - context.typeProvider = typeProvider;
|
| - // Create a chained resynthesizer.
|
| - _sdkProvider = sdkContext?.resultProvider;
|
| - _resynthesizer = new _FileBasedSummaryResynthesizer(
|
| - _sdkProvider?.resynthesizer,
|
| - context,
|
| - typeProvider,
|
| - context.sourceFactory,
|
| - context.analysisOptions.strongMode,
|
| - _dataStore);
|
| + void createResynthesizer() {
|
| + _resynthesizer = new _FileBasedSummaryResynthesizer(context,
|
| + context.sourceFactory, context.analysisOptions.strongMode, _dataStore);
|
| }
|
|
|
| /**
|
| @@ -428,14 +420,9 @@ class SummaryDataStore {
|
| class _FileBasedSummaryResynthesizer extends SummaryResynthesizer {
|
| final SummaryDataStore _dataStore;
|
|
|
| - _FileBasedSummaryResynthesizer(
|
| - SummaryResynthesizer parent,
|
| - AnalysisContext context,
|
| - TypeProvider typeProvider,
|
| - SourceFactory sourceFactory,
|
| - bool strongMode,
|
| - this._dataStore)
|
| - : super(parent, context, typeProvider, sourceFactory, strongMode);
|
| + _FileBasedSummaryResynthesizer(AnalysisContext context,
|
| + SourceFactory sourceFactory, bool strongMode, this._dataStore)
|
| + : super(null, context, sourceFactory, strongMode);
|
|
|
| @override
|
| LinkedLibrary getLinkedSummary(String uri) {
|
|
|