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 9dc108257b24214576011c40a6aec86e73c1ad97..702b0d1ec02001d02b7916707d28abeb6eb16be3 100644 |
--- a/pkg/analyzer/lib/src/task/dart.dart |
+++ b/pkg/analyzer/lib/src/task/dart.dart |
@@ -1678,6 +1678,11 @@ class ComputeConstantDependenciesTask extends ConstantEvaluationAnalysisTask { |
*/ |
static const String UNIT_INPUT = 'UNIT_INPUT'; |
+ /** |
+ * The name of the [TYPE_PROVIDER] input. |
+ */ |
+ static const String TYPE_PROVIDER_INPUT = 'TYPE_PROVIDER_INPUT'; |
+ |
static final TaskDescriptor DESCRIPTOR = new TaskDescriptor( |
'ComputeConstantDependenciesTask', createTask, buildInputs, |
<ResultDescriptor>[CONSTANT_DEPENDENCIES]); |
@@ -1700,7 +1705,7 @@ class ComputeConstantDependenciesTask extends ConstantEvaluationAnalysisTask { |
// |
ConstantEvaluationTarget constant = target; |
AnalysisContext context = constant.context; |
- TypeProvider typeProvider = context.typeProvider; |
+ TypeProvider typeProvider = getRequiredInput(TYPE_PROVIDER_INPUT); |
// |
// Compute dependencies. |
// |
@@ -1724,12 +1729,14 @@ class ComputeConstantDependenciesTask extends ConstantEvaluationAnalysisTask { |
.getAncestor((Element element) => element is CompilationUnitElement); |
return <String, TaskInput>{ |
UNIT_INPUT: RESOLVED_UNIT6 |
- .of(new LibrarySpecificUnit(unit.librarySource, target.source)) |
+ .of(new LibrarySpecificUnit(unit.librarySource, target.source)), |
+ TYPE_PROVIDER_INPUT: TYPE_PROVIDER.of(AnalysisContextTarget.request) |
}; |
} else if (target is ConstantEvaluationTarget_Annotation) { |
return <String, TaskInput>{ |
UNIT_INPUT: RESOLVED_UNIT6 |
- .of(new LibrarySpecificUnit(target.librarySource, target.source)) |
+ .of(new LibrarySpecificUnit(target.librarySource, target.source)), |
+ TYPE_PROVIDER_INPUT: TYPE_PROVIDER.of(AnalysisContextTarget.request) |
}; |
} else { |
// Should never happen. |
@@ -1759,6 +1766,11 @@ class ComputeConstantValueTask extends ConstantEvaluationAnalysisTask { |
*/ |
static const String DEPENDENCIES_INPUT = 'DEPENDENCIES_INPUT'; |
+ /** |
+ * The name of the [TYPE_PROVIDER] input. |
+ */ |
+ static const String TYPE_PROVIDER_INPUT = 'TYPE_PROVIDER_INPUT'; |
+ |
static final TaskDescriptor DESCRIPTOR = new TaskDescriptor( |
'ComputeConstantValueTask', createTask, buildInputs, |
<ResultDescriptor>[CONSTANT_VALUE]); |
@@ -1780,7 +1792,7 @@ class ComputeConstantValueTask extends ConstantEvaluationAnalysisTask { |
// are computed first. |
ConstantEvaluationTarget constant = target; |
AnalysisContext context = constant.context; |
- TypeProvider typeProvider = context.typeProvider; |
+ TypeProvider typeProvider = getRequiredInput(TYPE_PROVIDER_INPUT); |
// |
// Compute the value of the constant. |
// |
@@ -1800,7 +1812,8 @@ class ComputeConstantValueTask extends ConstantEvaluationAnalysisTask { |
static Map<String, TaskInput> buildInputs(ConstantEvaluationTarget target) { |
return <String, TaskInput>{ |
DEPENDENCIES_INPUT: |
- CONSTANT_DEPENDENCIES.of(target).toListOf(CONSTANT_VALUE) |
+ CONSTANT_DEPENDENCIES.of(target).toListOf(CONSTANT_VALUE), |
+ TYPE_PROVIDER_INPUT: TYPE_PROVIDER.of(AnalysisContextTarget.request) |
}; |
} |
@@ -2285,6 +2298,11 @@ class GenerateHintsTask extends SourceBasedAnalysisTask { |
static const String USED_IMPORTED_ELEMENTS_INPUT = 'USED_IMPORTED_ELEMENTS'; |
/** |
+ * The name of the [TYPE_PROVIDER] input. |
+ */ |
+ static const String TYPE_PROVIDER_INPUT = 'TYPE_PROVIDER_INPUT'; |
+ |
+ /** |
* The task descriptor describing this kind of task. |
*/ |
static final TaskDescriptor DESCRIPTOR = new TaskDescriptor( |
@@ -2338,7 +2356,7 @@ class GenerateHintsTask extends SourceBasedAnalysisTask { |
// Dart best practices. |
InheritanceManager inheritanceManager = |
new InheritanceManager(libraryElement); |
- TypeProvider typeProvider = context.typeProvider; |
+ TypeProvider typeProvider = getRequiredInput(TYPE_PROVIDER_INPUT); |
unit.accept(new BestPracticesVerifier(errorReporter, typeProvider)); |
unit.accept(new OverrideVerifier(errorReporter, inheritanceManager)); |
// Find to-do comments. |
@@ -2365,7 +2383,8 @@ class GenerateHintsTask extends SourceBasedAnalysisTask { |
USED_IMPORTED_ELEMENTS_INPUT: UNITS.of(libSource).toList((unit) { |
LibrarySpecificUnit target = new LibrarySpecificUnit(libSource, unit); |
return USED_IMPORTED_ELEMENTS.of(target); |
- }) |
+ }), |
+ TYPE_PROVIDER_INPUT: TYPE_PROVIDER.of(AnalysisContextTarget.request) |
}; |
} |
@@ -2800,6 +2819,11 @@ class ResolveReferencesTask extends SourceBasedAnalysisTask { |
static const String UNIT_INPUT = 'UNIT_INPUT'; |
/** |
+ * The name of the [TYPE_PROVIDER] input. |
+ */ |
+ static const String TYPE_PROVIDER_INPUT = 'TYPE_PROVIDER_INPUT'; |
+ |
+ /** |
* The task descriptor describing this kind of task. |
*/ |
static final TaskDescriptor DESCRIPTOR = new TaskDescriptor( |
@@ -2823,7 +2847,7 @@ class ResolveReferencesTask extends SourceBasedAnalysisTask { |
LibraryElement libraryElement = getRequiredInput(LIBRARY_INPUT); |
CompilationUnit unit = getRequiredInput(UNIT_INPUT); |
CompilationUnitElement unitElement = unit.element; |
- TypeProvider typeProvider = unitElement.context.typeProvider; |
+ TypeProvider typeProvider = getRequiredInput(TYPE_PROVIDER_INPUT); |
// |
// Resolve references. |
// |
@@ -2847,7 +2871,8 @@ class ResolveReferencesTask extends SourceBasedAnalysisTask { |
static Map<String, TaskInput> buildInputs(LibrarySpecificUnit target) { |
return <String, TaskInput>{ |
LIBRARY_INPUT: LIBRARY_ELEMENT.of(target.library), |
- UNIT_INPUT: RESOLVED_UNIT5.of(target) |
+ UNIT_INPUT: RESOLVED_UNIT5.of(target), |
+ TYPE_PROVIDER_INPUT: TYPE_PROVIDER.of(AnalysisContextTarget.request) |
}; |
} |
@@ -2871,6 +2896,11 @@ class ResolveUnitTypeNamesTask extends SourceBasedAnalysisTask { |
static const String UNIT_INPUT = 'UNIT_INPUT'; |
/** |
+ * The name of the [TYPE_PROVIDER] input. |
+ */ |
+ static const String TYPE_PROVIDER_INPUT = 'TYPE_PROVIDER_INPUT'; |
+ |
+ /** |
* The task descriptor describing this kind of task. |
*/ |
static final TaskDescriptor DESCRIPTOR = new TaskDescriptor( |
@@ -2894,12 +2924,12 @@ class ResolveUnitTypeNamesTask extends SourceBasedAnalysisTask { |
// |
CompilationUnit unit = getRequiredInput(UNIT_INPUT); |
CompilationUnitElement unitElement = unit.element; |
+ TypeProvider typeProvider = getRequiredInput(TYPE_PROVIDER_INPUT); |
// |
// Resolve TypeName nodes. |
// |
TypeResolverVisitor visitor = new TypeResolverVisitor.con2( |
- unitElement.library, unitElement.source, context.typeProvider, |
- errorListener); |
+ unitElement.library, unitElement.source, typeProvider, errorListener); |
unit.accept(visitor); |
// |
// Record outputs. |
@@ -2914,7 +2944,10 @@ class ResolveUnitTypeNamesTask extends SourceBasedAnalysisTask { |
* given [target]. |
*/ |
static Map<String, TaskInput> buildInputs(LibrarySpecificUnit target) { |
- return <String, TaskInput>{UNIT_INPUT: RESOLVED_UNIT3.of(target)}; |
+ return <String, TaskInput>{ |
+ UNIT_INPUT: RESOLVED_UNIT3.of(target), |
+ TYPE_PROVIDER_INPUT: TYPE_PROVIDER.of(AnalysisContextTarget.request) |
+ }; |
} |
/** |
@@ -2942,6 +2975,11 @@ class ResolveVariableReferencesTask extends SourceBasedAnalysisTask { |
static const String UNIT_INPUT = 'UNIT_INPUT'; |
/** |
+ * The name of the [TYPE_PROVIDER] input. |
+ */ |
+ static const String TYPE_PROVIDER_INPUT = 'TYPE_PROVIDER_INPUT'; |
+ |
+ /** |
* The task descriptor describing this kind of task. |
*/ |
static final TaskDescriptor DESCRIPTOR = new TaskDescriptor( |
@@ -2967,7 +3005,7 @@ class ResolveVariableReferencesTask extends SourceBasedAnalysisTask { |
// |
// Resolve local variables. |
// |
- TypeProvider typeProvider = unitElement.context.typeProvider; |
+ TypeProvider typeProvider = getRequiredInput(TYPE_PROVIDER_INPUT); |
Scope nameScope = new LibraryScope(libraryElement, errorListener); |
AstVisitor visitor = new VariableResolverVisitor.con2(libraryElement, |
unitElement.source, typeProvider, nameScope, errorListener); |
@@ -2986,7 +3024,8 @@ class ResolveVariableReferencesTask extends SourceBasedAnalysisTask { |
static Map<String, TaskInput> buildInputs(LibrarySpecificUnit target) { |
return <String, TaskInput>{ |
LIBRARY_INPUT: LIBRARY_ELEMENT.of(target.library), |
- UNIT_INPUT: RESOLVED_UNIT4.of(target) |
+ UNIT_INPUT: RESOLVED_UNIT4.of(target), |
+ TYPE_PROVIDER_INPUT: TYPE_PROVIDER.of(AnalysisContextTarget.request) |
}; |
} |
@@ -3077,6 +3116,11 @@ class VerifyUnitTask extends SourceBasedAnalysisTask { |
static const String UNIT_INPUT = 'UNIT_INPUT'; |
/** |
+ * The name of the [TYPE_PROVIDER] input. |
+ */ |
+ static const String TYPE_PROVIDER_INPUT = 'TYPE_PROVIDER_INPUT'; |
+ |
+ /** |
* The task descriptor describing this kind of task. |
*/ |
static final TaskDescriptor DESCRIPTOR = new TaskDescriptor('VerifyUnitTask', |
@@ -3098,7 +3142,7 @@ class VerifyUnitTask extends SourceBasedAnalysisTask { |
RecordingErrorListener errorListener = new RecordingErrorListener(); |
Source source = getRequiredSource(); |
errorReporter = new ErrorReporter(errorListener, source); |
- TypeProvider typeProvider = context.typeProvider; |
+ TypeProvider typeProvider = getRequiredInput(TYPE_PROVIDER_INPUT); |
// |
// Prepare inputs. |
// |
@@ -3160,7 +3204,10 @@ class VerifyUnitTask extends SourceBasedAnalysisTask { |
* given [target]. |
*/ |
static Map<String, TaskInput> buildInputs(LibrarySpecificUnit target) { |
- return <String, TaskInput>{UNIT_INPUT: RESOLVED_UNIT.of(target)}; |
+ return <String, TaskInput>{ |
+ UNIT_INPUT: RESOLVED_UNIT.of(target), |
+ TYPE_PROVIDER_INPUT: TYPE_PROVIDER.of(AnalysisContextTarget.request) |
+ }; |
} |
/** |