| Index: pkg/analyzer/lib/src/task/dart.dart
|
| diff --git a/pkg/analyzer/lib/src/task/dart.dart b/pkg/analyzer/lib/src/task/dart.dart
|
| index bb7801375a67dd8b9c2b3c68467d480a15f72496..84b0301107fb78064f61828c94b41dbd4b4c7461 100644
|
| --- a/pkg/analyzer/lib/src/task/dart.dart
|
| +++ b/pkg/analyzer/lib/src/task/dart.dart
|
| @@ -616,6 +616,17 @@ final ResultDescriptor<ReferencedNames> REFERENCED_NAMES =
|
| new ResultDescriptor<ReferencedNames>('REFERENCED_NAMES', null);
|
|
|
| /**
|
| + * The sources of the Dart files that a library references.
|
| + *
|
| + * The list is the union of [IMPORTED_LIBRARIES], [EXPORTED_LIBRARIES] and
|
| + * [UNITS] of the defining unit and [INCLUDED_PARTS]. Never empty or `null`.
|
| + *
|
| + * The result is only available for [Source]s representing a library.
|
| + */
|
| +final ListResultDescriptor<Source> REFERENCED_SOURCES =
|
| + new ListResultDescriptor<Source>('REFERENCED_SOURCES', Source.EMPTY_LIST);
|
| +
|
| +/**
|
| * The errors produced while resolving type names.
|
| *
|
| * The list will be empty if there were no errors, but will not be `null`.
|
| @@ -995,18 +1006,10 @@ class BuildDirectiveElementsTask extends SourceBasedAnalysisTask {
|
| static const String UNIT_INPUT_NAME = 'UNIT_INPUT_NAME';
|
|
|
| /**
|
| - * The input with a map from imported library sources to their modification
|
| - * times.
|
| - */
|
| - static const String IMPORTS_MODIFICATION_TIME_INPUT_NAME =
|
| - 'IMPORTS_MODIFICATION_TIME_INPUT_NAME';
|
| -
|
| - /**
|
| - * The input with a map from exported library sources to their modification
|
| - * times.
|
| + * The input with a map from referenced sources to their modification times.
|
| */
|
| - static const String EXPORTS_MODIFICATION_TIME_INPUT_NAME =
|
| - 'EXPORTS_MODIFICATION_TIME_INPUT_NAME';
|
| + static const String SOURCES_MODIFICATION_TIME_INPUT_NAME =
|
| + 'SOURCES_MODIFICATION_TIME_INPUT_NAME';
|
|
|
| /**
|
| * The input with a list of [LIBRARY_ELEMENT3]s of imported libraries.
|
| @@ -1055,10 +1058,8 @@ class BuildDirectiveElementsTask extends SourceBasedAnalysisTask {
|
| //
|
| LibraryElementImpl libraryElement = getRequiredInput(LIBRARY_INPUT);
|
| CompilationUnit libraryUnit = getRequiredInput(UNIT_INPUT_NAME);
|
| - Map<Source, int> importModificationTimeMap =
|
| - getRequiredInput(IMPORTS_MODIFICATION_TIME_INPUT_NAME);
|
| - Map<Source, int> exportModificationTimeMap =
|
| - getRequiredInput(EXPORTS_MODIFICATION_TIME_INPUT_NAME);
|
| + Map<Source, int> sourceModificationTimeMap =
|
| + getRequiredInput(SOURCES_MODIFICATION_TIME_INPUT_NAME);
|
| Map<Source, LibraryElement> importLibraryMap =
|
| getRequiredInput(IMPORTS_LIBRARY_ELEMENT_INPUT_NAME);
|
| Map<Source, LibraryElement> exportLibraryMap =
|
| @@ -1090,10 +1091,9 @@ class BuildDirectiveElementsTask extends SourceBasedAnalysisTask {
|
| DirectiveElementBuilder builder = new DirectiveElementBuilder(
|
| context,
|
| libraryElement,
|
| - importModificationTimeMap,
|
| + sourceModificationTimeMap,
|
| importLibraryMap,
|
| importSourceKindMap,
|
| - exportModificationTimeMap,
|
| exportLibraryMap,
|
| exportSourceKindMap);
|
| libraryUnit.accept(builder);
|
| @@ -1123,10 +1123,8 @@ class BuildDirectiveElementsTask extends SourceBasedAnalysisTask {
|
| LIBRARY_INPUT: LIBRARY_ELEMENT1.of(source),
|
| UNIT_INPUT_NAME:
|
| RESOLVED_UNIT1.of(new LibrarySpecificUnit(source, source)),
|
| - IMPORTS_MODIFICATION_TIME_INPUT_NAME:
|
| - IMPORTED_LIBRARIES.of(source).toMapOf(MODIFICATION_TIME),
|
| - EXPORTS_MODIFICATION_TIME_INPUT_NAME:
|
| - EXPORTED_LIBRARIES.of(source).toMapOf(MODIFICATION_TIME),
|
| + SOURCES_MODIFICATION_TIME_INPUT_NAME:
|
| + REFERENCED_SOURCES.of(source).toMapOf(MODIFICATION_TIME),
|
| IMPORTS_LIBRARY_ELEMENT_INPUT_NAME:
|
| IMPORTED_LIBRARIES.of(source).toMapOf(LIBRARY_ELEMENT1),
|
| EXPORTS_LIBRARY_ELEMENT_INPUT_NAME:
|
| @@ -3500,7 +3498,8 @@ class ParseDartTask extends SourceBasedAnalysisTask {
|
| PARSE_ERRORS,
|
| PARSED_UNIT,
|
| SOURCE_KIND,
|
| - UNITS
|
| + UNITS,
|
| + REFERENCED_SOURCES
|
| ]);
|
|
|
| /**
|
| @@ -3594,6 +3593,11 @@ class ParseDartTask extends SourceBasedAnalysisTask {
|
| List<Source> includedSources = includedSourceSet.toList();
|
| List<AnalysisError> parseErrors = getUniqueErrors(errorListener.errors);
|
| List<Source> unitSources = <Source>[source]..addAll(includedSourceSet);
|
| + List<Source> referencedSources = (new Set<Source>()
|
| + ..addAll(importedSources)
|
| + ..addAll(exportedSources)
|
| + ..addAll(unitSources))
|
| + .toList();
|
| List<LibrarySpecificUnit> librarySpecificUnits =
|
| unitSources.map((s) => new LibrarySpecificUnit(source, s)).toList();
|
| outputs[EXPLICITLY_IMPORTED_LIBRARIES] = explicitlyImportedSources;
|
| @@ -3605,6 +3609,7 @@ class ParseDartTask extends SourceBasedAnalysisTask {
|
| outputs[PARSED_UNIT] = unit;
|
| outputs[SOURCE_KIND] = sourceKind;
|
| outputs[UNITS] = unitSources;
|
| + outputs[REFERENCED_SOURCES] = referencedSources;
|
| }
|
|
|
| /**
|
|
|