| Index: pkg/analyzer/lib/src/summary/summary_sdk.dart
|
| diff --git a/pkg/analyzer/lib/src/summary/summary_sdk.dart b/pkg/analyzer/lib/src/summary/summary_sdk.dart
|
| index 15514a4be6a09769d50b67a6d93f726f658251ee..ce1f023bc50c93feff52d306001d648b806928a2 100644
|
| --- a/pkg/analyzer/lib/src/summary/summary_sdk.dart
|
| +++ b/pkg/analyzer/lib/src/summary/summary_sdk.dart
|
| @@ -8,33 +8,27 @@ import 'package:analyzer/dart/element/element.dart';
|
| import 'package:analyzer/dart/element/type.dart';
|
| import 'package:analyzer/src/context/cache.dart' show CacheEntry;
|
| import 'package:analyzer/src/context/context.dart';
|
| -import 'package:analyzer/src/dart/element/element.dart';
|
| import 'package:analyzer/src/dart/element/type.dart';
|
| import 'package:analyzer/src/generated/constant.dart';
|
| import 'package:analyzer/src/generated/engine.dart';
|
| import 'package:analyzer/src/generated/resolver.dart';
|
| import 'package:analyzer/src/generated/sdk.dart';
|
| import 'package:analyzer/src/generated/source.dart'
|
| - show DartUriResolver, Source, SourceFactory, SourceKind;
|
| + show DartUriResolver, Source, SourceFactory;
|
| import 'package:analyzer/src/summary/idl.dart';
|
| import 'package:analyzer/src/summary/package_bundle_reader.dart';
|
| import 'package:analyzer/src/summary/resynthesize.dart';
|
| import 'package:analyzer/src/task/dart.dart';
|
| -import 'package:analyzer/task/dart.dart';
|
| -import 'package:analyzer/task/model.dart'
|
| - show AnalysisTarget, ResultDescriptor, TargetedResult;
|
| +import 'package:analyzer/task/model.dart' show ResultDescriptor, TargetedResult;
|
|
|
| -class SdkSummaryResultProvider implements SummaryResultProvider {
|
| - final InternalAnalysisContext context;
|
| - final PackageBundle bundle;
|
| +class SdkSummaryResultProvider extends ResynthesizerResultProvider {
|
| final SummaryTypeProvider typeProvider = new SummaryTypeProvider();
|
|
|
| - @override
|
| - SummaryResynthesizer resynthesizer;
|
| -
|
| - SdkSummaryResultProvider(this.context, this.bundle, bool strongMode) {
|
| - resynthesizer = new SdkSummaryResynthesizer(
|
| - context, typeProvider, context.sourceFactory, bundle, strongMode);
|
| + SdkSummaryResultProvider(
|
| + InternalAnalysisContext context, PackageBundle bundle, bool strongMode)
|
| + : super(context, new SummaryDataStore(const <String>[])) {
|
| + addBundle(null, bundle);
|
| + createResynthesizer(null, typeProvider);
|
| _buildCoreLibrary();
|
| _buildAsyncLibrary();
|
| resynthesizer.finalizeCoreAsyncLibraries();
|
| @@ -47,87 +41,12 @@ class SdkSummaryResultProvider implements SummaryResultProvider {
|
| entry.setValue(result, typeProvider, TargetedResult.EMPTY_LIST);
|
| return true;
|
| }
|
| - AnalysisTarget target = entry.target;
|
| - // Only SDK sources after this point.
|
| - if (target.source == null || !target.source.isInSystemLibrary) {
|
| - return false;
|
| - }
|
| - // Constant expressions are always resolved in summaries.
|
| - if (result == CONSTANT_EXPRESSION_RESOLVED &&
|
| - target is ConstantEvaluationTarget) {
|
| - entry.setValue(result, true, TargetedResult.EMPTY_LIST);
|
| - return true;
|
| - }
|
| - if (target is Source) {
|
| - if (result == LIBRARY_ELEMENT1 ||
|
| - result == LIBRARY_ELEMENT2 ||
|
| - result == LIBRARY_ELEMENT3 ||
|
| - result == LIBRARY_ELEMENT4 ||
|
| - result == LIBRARY_ELEMENT5 ||
|
| - result == LIBRARY_ELEMENT6 ||
|
| - result == LIBRARY_ELEMENT7 ||
|
| - result == LIBRARY_ELEMENT8 ||
|
| - result == LIBRARY_ELEMENT9 ||
|
| - result == LIBRARY_ELEMENT) {
|
| - // TODO(scheglov) try to find a way to avoid listing every result
|
| - // e.g. "result.whenComplete == LIBRARY_ELEMENT"
|
| - String uri = target.uri.toString();
|
| - LibraryElement libraryElement = resynthesizer.getLibraryElement(uri);
|
| - entry.setValue(result, libraryElement, TargetedResult.EMPTY_LIST);
|
| - return true;
|
| - } else if (result == READY_LIBRARY_ELEMENT2 ||
|
| - result == READY_LIBRARY_ELEMENT6 ||
|
| - result == READY_LIBRARY_ELEMENT7) {
|
| - entry.setValue(result, true, TargetedResult.EMPTY_LIST);
|
| - return true;
|
| - } else if (result == SOURCE_KIND) {
|
| - String uri = target.uri.toString();
|
| - SourceKind kind = _getSourceKind(uri);
|
| - if (kind != null) {
|
| - entry.setValue(result, kind, TargetedResult.EMPTY_LIST);
|
| - return true;
|
| - }
|
| - return false;
|
| - } else {
|
| -// throw new UnimplementedError('$result of $target');
|
| - }
|
| - }
|
| - if (target is LibrarySpecificUnit) {
|
| - if (target.library == null || !target.library.isInSystemLibrary) {
|
| - return false;
|
| - }
|
| - if (result == CREATED_RESOLVED_UNIT1 ||
|
| - result == CREATED_RESOLVED_UNIT2 ||
|
| - result == CREATED_RESOLVED_UNIT3 ||
|
| - result == CREATED_RESOLVED_UNIT4 ||
|
| - result == CREATED_RESOLVED_UNIT5 ||
|
| - result == CREATED_RESOLVED_UNIT6 ||
|
| - result == CREATED_RESOLVED_UNIT7 ||
|
| - result == CREATED_RESOLVED_UNIT8 ||
|
| - result == CREATED_RESOLVED_UNIT9 ||
|
| - result == CREATED_RESOLVED_UNIT10 ||
|
| - result == CREATED_RESOLVED_UNIT11 ||
|
| - result == CREATED_RESOLVED_UNIT12) {
|
| - entry.setValue(result, true, TargetedResult.EMPTY_LIST);
|
| - return true;
|
| - }
|
| - if (result == COMPILATION_UNIT_ELEMENT) {
|
| - String libraryUri = target.library.uri.toString();
|
| - String unitUri = target.unit.uri.toString();
|
| - CompilationUnitElement unit = resynthesizer.getElement(
|
| - new ElementLocationImpl.con3(<String>[libraryUri, unitUri]));
|
| - if (unit != null) {
|
| - entry.setValue(result, unit, TargetedResult.EMPTY_LIST);
|
| - return true;
|
| - }
|
| - }
|
| - } else if (target is VariableElement) {
|
| - if (result == PROPAGATED_VARIABLE || result == INFERRED_STATIC_VARIABLE) {
|
| - entry.setValue(result, target, TargetedResult.EMPTY_LIST);
|
| - return true;
|
| - }
|
| - }
|
| - return false;
|
| + return super.compute(entry, result);
|
| + }
|
| +
|
| + @override
|
| + bool hasResultsForSource(Source source) {
|
| + return source.source != null && source.isInSystemLibrary;
|
| }
|
|
|
| void _buildAsyncLibrary() {
|
| @@ -139,19 +58,6 @@ class SdkSummaryResultProvider implements SummaryResultProvider {
|
| LibraryElement library = resynthesizer.getLibraryElement('dart:core');
|
| typeProvider.initializeCore(library);
|
| }
|
| -
|
| - /**
|
| - * Return the [SourceKind] of the given [uri] or `null` if it is unknown.
|
| - */
|
| - SourceKind _getSourceKind(String uri) {
|
| - if (bundle.linkedLibraryUris.contains(uri)) {
|
| - return SourceKind.LIBRARY;
|
| - }
|
| - if (bundle.unlinkedUnitUris.contains(uri)) {
|
| - return SourceKind.PART;
|
| - }
|
| - return null;
|
| - }
|
| }
|
|
|
| /**
|
|
|