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

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

Issue 1216523003: Make BuildSourceClosuresTask explicitly dependent on LIBRARY_ELEMENT2. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 5 years, 6 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 | no next file » | no next file with comments »
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 7e315b9a4e0e9a96bb647db645f2523cf4c29816..7a83a39366a9f94e5e99f592bd2fab64de02d44b 100644
--- a/pkg/analyzer/lib/src/task/dart.dart
+++ b/pkg/analyzer/lib/src/task/dart.dart
@@ -1575,9 +1575,10 @@ class BuildSourceClosuresTask extends SourceBasedAnalysisTask {
static Map<String, TaskInput> buildInputs(AnalysisTarget target) {
Source source = target;
return <String, TaskInput>{
- IMPORT_INPUT: new _ImportSourceClosureTaskInput(source),
- EXPORT_INPUT: new _ExportSourceClosureTaskInput(source),
- IMPORT_EXPORT_INPUT: new _ImportExportSourceClosureTaskInput(source)
+ IMPORT_INPUT: new _ImportSourceClosureTaskInput(source, LIBRARY_ELEMENT2),
+ EXPORT_INPUT: new _ExportSourceClosureTaskInput(source, LIBRARY_ELEMENT2),
+ IMPORT_EXPORT_INPUT:
+ new _ImportExportSourceClosureTaskInput(source, LIBRARY_ELEMENT2)
};
}
@@ -3607,44 +3608,58 @@ class VerifyUnitTask extends SourceBasedAnalysisTask {
/**
* A [TaskInput] whose value is a list of library sources exported directly
* or indirectly by the target [Source].
+ *
+ * [resultDescriptor] is the type of result which should be produced for each
+ * target [Source].
*/
class _ExportSourceClosureTaskInput extends TaskInputImpl<List<Source>> {
final Source target;
+ final ResultDescriptor resultDescriptor;
- _ExportSourceClosureTaskInput(this.target);
+ _ExportSourceClosureTaskInput(this.target, this.resultDescriptor);
@override
TaskInputBuilder<List<Source>> createBuilder() =>
- new _SourceClosureTaskInputBuilder(target, _SourceClosureKind.EXPORT);
+ new _SourceClosureTaskInputBuilder(
+ target, _SourceClosureKind.EXPORT, resultDescriptor);
}
/**
* A [TaskInput] whose value is a list of library sources imported or exported,
* directly or indirectly by the target [Source].
+ *
+ * [resultDescriptor] is the type of result which should be produced for each
+ * target [Source].
*/
class _ImportExportSourceClosureTaskInput extends TaskInputImpl<List<Source>> {
final Source target;
+ final ResultDescriptor resultDescriptor;
- _ImportExportSourceClosureTaskInput(this.target);
+ _ImportExportSourceClosureTaskInput(this.target, this.resultDescriptor);
@override
TaskInputBuilder<List<Source>> createBuilder() =>
new _SourceClosureTaskInputBuilder(
- target, _SourceClosureKind.IMPORT_EXPORT);
+ target, _SourceClosureKind.IMPORT_EXPORT, resultDescriptor);
}
/**
* A [TaskInput] whose value is a list of library sources imported directly
* or indirectly by the target [Source].
+ *
+ * [resultDescriptor] is the type of result which should be produced for each
+ * target [Source].
*/
class _ImportSourceClosureTaskInput extends TaskInputImpl<List<Source>> {
final Source target;
+ final ResultDescriptor resultDescriptor;
- _ImportSourceClosureTaskInput(this.target);
+ _ImportSourceClosureTaskInput(this.target, this.resultDescriptor);
@override
TaskInputBuilder<List<Source>> createBuilder() =>
- new _SourceClosureTaskInputBuilder(target, _SourceClosureKind.IMPORT);
+ new _SourceClosureTaskInputBuilder(
+ target, _SourceClosureKind.IMPORT, resultDescriptor);
}
/**
@@ -3660,16 +3675,17 @@ class _SourceClosureTaskInputBuilder implements TaskInputBuilder<List<Source>> {
final Set<LibraryElement> _libraries = new HashSet<LibraryElement>();
final List<Source> _newSources = <Source>[];
+ @override
+ final ResultDescriptor currentResult;
+
Source currentTarget;
- _SourceClosureTaskInputBuilder(Source librarySource, this.kind) {
+ _SourceClosureTaskInputBuilder(
+ Source librarySource, this.kind, this.currentResult) {
_newSources.add(librarySource);
}
@override
- ResultDescriptor get currentResult => LIBRARY_ELEMENT2;
-
- @override
void set currentValue(Object value) {
LibraryElement library = value;
if (_libraries.add(library)) {
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698