Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(266)

Unified Diff: pkg/analyzer/lib/src/task/dart.dart

Issue 1005693007: Add toMap / toMapOf / toList (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 5 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | pkg/analyzer/lib/src/task/inputs.dart » ('j') | pkg/analyzer/lib/src/task/inputs.dart » ('J')
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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)};
}
/**
« no previous file with comments | « no previous file | pkg/analyzer/lib/src/task/inputs.dart » ('j') | pkg/analyzer/lib/src/task/inputs.dart » ('J')

Powered by Google App Engine
This is Rietveld 408576698