Chromium Code Reviews| 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 a731cd19b7e4334292e59b7feeda108aff71c1e7..8a0e4a65b4aee164ab502954a50a701f94d5a21d 100644 |
| --- a/pkg/analyzer/lib/src/task/dart.dart |
| +++ b/pkg/analyzer/lib/src/task/dart.dart |
| @@ -19,7 +19,6 @@ import 'package:analyzer/src/generated/source.dart'; |
| import 'package:analyzer/src/generated/utilities_general.dart'; |
| import 'package:analyzer/src/task/driver.dart'; |
| import 'package:analyzer/src/task/general.dart'; |
| -import 'package:analyzer/src/task/inputs.dart'; |
| import 'package:analyzer/task/dart.dart'; |
| import 'package:analyzer/task/general.dart'; |
| import 'package:analyzer/task/model.dart'; |
| @@ -65,8 +64,8 @@ final ResultDescriptor<List<AnalysisError>> BUILD_LIBRARY_ERRORS = |
| * |
| * The result is only available for targets representing a Dart library. |
| */ |
| -final ResultDescriptor<List<Source>> EXPORT_SOURCE_CLOSURE = |
| - new ResultDescriptor<List<Source>>('EXPORT_SOURCE_CLOSURE', null); |
| +final ListResultDescriptor<Source> EXPORT_SOURCE_CLOSURE = |
| + new ListResultDescriptor<Source>('EXPORT_SOURCE_CLOSURE', null); |
| /** |
| * The partial [LibraryElement] associated with a library. |
| @@ -183,6 +182,17 @@ final ResultDescriptor<TypeProvider> TYPE_PROVIDER = |
| new ResultDescriptor<TypeProvider>('TYPE_PROVIDER', null); |
| /** |
| + * Return a [MapTaskInput] that maps unit [Source]s into [result]s for the |
| + * pair of [libSource] and the unit [Source]. |
| + */ |
| +MapTaskInput _lutMapInput(Source libSource, ResultDescriptor result) { |
|
Brian Wilkerson
2015/03/24 15:07:10
I'd really prefer a name that didn't include an ab
scheglov
2015/03/24 17:16:38
Done.
|
| + return (Source unitSource) { |
| + LibraryUnitTarget lut = new LibraryUnitTarget(libSource, unitSource); |
| + return result.of(lut); |
| + }; |
| +} |
| + |
| +/** |
| * A task that builds a compilation unit element for a single compilation unit. |
| */ |
| class BuildCompilationUnitElementTask extends SourceBasedAnalysisTask { |
| @@ -242,7 +252,7 @@ class BuildCompilationUnitElementTask extends SourceBasedAnalysisTask { |
| */ |
| static Map<String, TaskInput> buildInputs(LibraryUnitTarget target) { |
| return <String, TaskInput>{ |
| - PARSED_UNIT_INPUT_NAME: PARSED_UNIT.inputFor(target.unit) |
| + PARSED_UNIT_INPUT_NAME: PARSED_UNIT.of(target.unit) |
| }; |
| } |
| @@ -439,26 +449,18 @@ class BuildDirectiveElementsTask extends SourceBasedAnalysisTask { |
| * given library [libSource]. |
| */ |
| static Map<String, TaskInput> buildInputs(Source libSource) { |
| + lut(Source unit) => new LibraryUnitTarget(libSource, unit); |
|
Brian Wilkerson
2015/03/24 15:07:10
I don't understand the point of defining a local m
scheglov
2015/03/24 17:16:38
Done.
|
| return <String, TaskInput>{ |
| - 'defining_LIBRARY_ELEMENT1': LIBRARY_ELEMENT1.inputFor(libSource), |
| - UNIT_INPUT_NAME: |
| - RESOLVED_UNIT1.inputFor(new LibraryUnitTarget(libSource, libSource)), |
| + 'defining_LIBRARY_ELEMENT1': LIBRARY_ELEMENT1.of(libSource), |
| + UNIT_INPUT_NAME: RESOLVED_UNIT1.of(lut(libSource)), |
| IMPORTS_LIBRARY_ELEMENT_INPUT_NAME: |
| - new ListToMapTaskInput<Source, LibraryElement>( |
| - IMPORTED_LIBRARIES.inputFor(libSource), |
| - (Source source) => LIBRARY_ELEMENT1.inputFor(source)), |
| + IMPORTED_LIBRARIES.of(libSource).toMapOf(LIBRARY_ELEMENT1), |
| EXPORTS_LIBRARY_ELEMENT_INPUT_NAME: |
| - new ListToMapTaskInput<Source, LibraryElement>( |
| - EXPORTED_LIBRARIES.inputFor(libSource), |
| - (Source source) => LIBRARY_ELEMENT1.inputFor(source)), |
| + EXPORTED_LIBRARIES.of(libSource).toMapOf(LIBRARY_ELEMENT1), |
| IMPORTS_SOURCE_KIND_INPUT_NAME: |
| - new ListToMapTaskInput<Source, SourceKind>( |
| - IMPORTED_LIBRARIES.inputFor(libSource), |
| - (Source source) => SOURCE_KIND.inputFor(source)), |
| + IMPORTED_LIBRARIES.of(libSource).toMapOf(SOURCE_KIND), |
| EXPORTS_SOURCE_KIND_INPUT_NAME: |
| - new ListToMapTaskInput<Source, SourceKind>( |
| - EXPORTED_LIBRARIES.inputFor(libSource), |
| - (Source source) => SOURCE_KIND.inputFor(source)) |
| + EXPORTED_LIBRARIES.of(libSource).toMapOf(SOURCE_KIND) |
| }; |
| } |
| @@ -553,9 +555,8 @@ class BuildEnumMemberElementsTask extends SourceBasedAnalysisTask { |
| */ |
| static Map<String, TaskInput> buildInputs(LibraryUnitTarget target) { |
| return <String, TaskInput>{ |
| - TYPE_PROVIDER_INPUT: |
| - TYPE_PROVIDER.inputFor(AnalysisContextTarget.request), |
| - UNIT_INPUT: RESOLVED_UNIT1.inputFor(target) |
| + TYPE_PROVIDER_INPUT: TYPE_PROVIDER.of(AnalysisContextTarget.request), |
| + UNIT_INPUT: RESOLVED_UNIT1.of(target) |
| }; |
| } |
| @@ -623,11 +624,9 @@ class BuildExportNamespaceTask extends SourceBasedAnalysisTask { |
| */ |
| static Map<String, TaskInput> buildInputs(Source libSource) { |
| return <String, TaskInput>{ |
| - LIBRARY_INPUT: LIBRARY_ELEMENT3.inputFor(libSource), |
| + LIBRARY_INPUT: LIBRARY_ELEMENT3.of(libSource), |
| 'exportsLibraryPublicNamespace': |
| - new ListToMapTaskInput<Source, LibraryElement>( |
| - EXPORT_SOURCE_CLOSURE.inputFor(libSource), |
| - (Source source) => LIBRARY_ELEMENT3.inputFor(source)) |
| + EXPORT_SOURCE_CLOSURE.of(libSource).toMapOf(LIBRARY_ELEMENT3) |
| }; |
| } |
| @@ -686,7 +685,7 @@ class BuildExportSourceClosureTask extends SourceBasedAnalysisTask { |
| */ |
| static Map<String, TaskInput> buildInputs(Source libSource) { |
| return <String, TaskInput>{ |
| - LIBRARY2_ELEMENT_INPUT: LIBRARY_ELEMENT2.inputFor(libSource) |
| + LIBRARY2_ELEMENT_INPUT: LIBRARY_ELEMENT2.of(libSource) |
| }; |
| } |
| @@ -779,13 +778,11 @@ class BuildFunctionTypeAliasesTask extends SourceBasedAnalysisTask { |
| */ |
| static Map<String, TaskInput> buildInputs(LibraryUnitTarget target) { |
| return <String, TaskInput>{ |
| - TYPE_PROVIDER_INPUT: |
| - TYPE_PROVIDER.inputFor(AnalysisContextTarget.request), |
| - 'importsExportNamespace': new ListToMapTaskInput<Source, LibraryElement>( |
| - IMPORTED_LIBRARIES.inputFor(target.library), |
| - (Source importSource) => LIBRARY_ELEMENT4.inputFor(importSource)), |
| - LIBRARY_INPUT: LIBRARY_ELEMENT4.inputFor(target.library), |
| - UNIT_INPUT: RESOLVED_UNIT2.inputFor(target) |
| + TYPE_PROVIDER_INPUT: TYPE_PROVIDER.of(AnalysisContextTarget.request), |
| + 'importsExportNamespace': |
| + IMPORTED_LIBRARIES.of(target.library).toMapOf(LIBRARY_ELEMENT4), |
| + LIBRARY_INPUT: LIBRARY_ELEMENT4.of(target.library), |
| + UNIT_INPUT: RESOLVED_UNIT2.of(target) |
| }; |
| } |
| @@ -1044,12 +1041,12 @@ class BuildLibraryElementTask extends SourceBasedAnalysisTask { |
| * [libSource]. |
| */ |
| static Map<String, TaskInput> buildInputs(Source libSource) { |
| + lut(Source unit) => new LibraryUnitTarget(libSource, unit); |
| return <String, TaskInput>{ |
| - DEFINING_UNIT_INPUT: |
| - RESOLVED_UNIT1.inputFor(new LibraryUnitTarget(libSource, libSource)), |
| - PARTS_UNIT_INPUT: new ListToListTaskInput<Source, CompilationUnit>( |
| - INCLUDED_PARTS.inputFor(libSource), (Source source) => |
| - RESOLVED_UNIT1.inputFor(new LibraryUnitTarget(libSource, source))) |
| + DEFINING_UNIT_INPUT: RESOLVED_UNIT1.of(lut(libSource)), |
| + PARTS_UNIT_INPUT: INCLUDED_PARTS |
| + .of(libSource) |
| + .toList(_lutMapInput(libSource, RESOLVED_UNIT1)) |
| }; |
| } |
| @@ -1099,9 +1096,7 @@ class BuildPublicNamespaceTask extends SourceBasedAnalysisTask { |
| * given library [libSource]. |
| */ |
| static Map<String, TaskInput> buildInputs(Source libSource) { |
| - return <String, TaskInput>{ |
| - LIBRARY_INPUT: LIBRARY_ELEMENT2.inputFor(libSource) |
| - }; |
| + return <String, TaskInput>{LIBRARY_INPUT: LIBRARY_ELEMENT2.of(libSource)}; |
| } |
| /** |
| @@ -1162,8 +1157,8 @@ class BuildTypeProviderTask extends SourceBasedAnalysisTask { |
| Source coreSource = sourceFactory.forUri(DartSdk.DART_CORE); |
| Source asyncSource = sourceFactory.forUri(DartSdk.DART_ASYNC); |
| return <String, TaskInput>{ |
| - CORE_INPUT: LIBRARY_ELEMENT3.inputFor(coreSource), |
| - ASYNC_INPUT: LIBRARY_ELEMENT3.inputFor(asyncSource) |
| + CORE_INPUT: LIBRARY_ELEMENT3.of(coreSource), |
| + ASYNC_INPUT: LIBRARY_ELEMENT3.of(asyncSource) |
| }; |
| } |
| @@ -1415,8 +1410,8 @@ class ParseDartTask extends SourceBasedAnalysisTask { |
| */ |
| static Map<String, TaskInput> buildInputs(Source source) { |
| return <String, TaskInput>{ |
| - LINE_INFO_INPUT_NAME: LINE_INFO.inputFor(source), |
| - TOKEN_STREAM_INPUT_NAME: TOKEN_STREAM.inputFor(source) |
| + LINE_INFO_INPUT_NAME: LINE_INFO.of(source), |
| + TOKEN_STREAM_INPUT_NAME: TOKEN_STREAM.of(source) |
| }; |
| } |
| @@ -1546,13 +1541,13 @@ class ResolveLibraryTypeNamesTask extends SourceBasedAnalysisTask { |
| * given [target]. |
| */ |
| static Map<String, TaskInput> buildInputs(Source libSource) { |
| + lut(Source unit) => new LibraryUnitTarget(libSource, unit); |
|
Brian Wilkerson
2015/03/24 15:07:10
Even if it's useful to abbreviate the code here (w
scheglov
2015/03/24 17:16:38
Given that this local function is declared 3 lines
|
| return <String, TaskInput>{ |
| - LIBRARY_INPUT: LIBRARY_ELEMENT4.inputFor(libSource), |
| - 'resolvedDefiningUnit': |
| - RESOLVED_UNIT4.inputFor(new LibraryUnitTarget(libSource, libSource)), |
| - 'resolvedPartsUnit': new ListToMapTaskInput<Source, CompilationUnit>( |
| - INCLUDED_PARTS.inputFor(libSource), (Source source) => RESOLVED_UNIT4 |
| - .inputFor(new LibraryUnitTarget(libSource, source))), |
| + LIBRARY_INPUT: LIBRARY_ELEMENT4.of(libSource), |
| + 'resolvedDefiningUnit': RESOLVED_UNIT4.of(lut(libSource)), |
| + 'resolvedPartsUnit': INCLUDED_PARTS |
| + .of(libSource) |
| + .toMap((Source source) => RESOLVED_UNIT4.of(lut(source))) |
| }; |
| } |
| @@ -1619,7 +1614,7 @@ class ResolveUnitTypeNamesTask extends SourceBasedAnalysisTask { |
| * given [target]. |
| */ |
| static Map<String, TaskInput> buildInputs(LibraryUnitTarget target) { |
| - return <String, TaskInput>{UNIT_INPUT: RESOLVED_UNIT3.inputFor(target)}; |
| + return <String, TaskInput>{UNIT_INPUT: RESOLVED_UNIT3.of(target)}; |
| } |
| /** |
| @@ -1681,7 +1676,7 @@ class ScanDartTask extends SourceBasedAnalysisTask { |
| * [source]. |
| */ |
| static Map<String, TaskInput> buildInputs(Source source) { |
| - return <String, TaskInput>{CONTENT_INPUT_NAME: CONTENT.inputFor(source)}; |
| + return <String, TaskInput>{CONTENT_INPUT_NAME: CONTENT.of(source)}; |
| } |
| /** |