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 4fc84670e22c7ca7a3f6af388c7f74b68201227f..7225ee5e275d048e4c4cccd0046ed91d8a07af6f 100644 |
--- a/pkg/analyzer/lib/src/task/dart.dart |
+++ b/pkg/analyzer/lib/src/task/dart.dart |
@@ -1680,6 +1680,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]); |
@@ -1702,7 +1707,7 @@ class ComputeConstantDependenciesTask extends ConstantEvaluationAnalysisTask { |
// |
ConstantEvaluationTarget constant = target; |
AnalysisContext context = constant.context; |
- TypeProvider typeProvider = context.typeProvider; |
+ TypeProvider typeProvider = getRequiredInput(TYPE_PROVIDER_INPUT); |
// |
// Compute dependencies. |
// |
@@ -1726,12 +1731,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. |
@@ -1761,6 +1768,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]); |
@@ -1782,7 +1794,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. |
// |
@@ -1802,7 +1814,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) |
}; |
} |
@@ -2287,6 +2300,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( |
@@ -2340,7 +2358,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. |
@@ -2367,7 +2385,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) |
}; |
} |
@@ -2802,6 +2821,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( |
@@ -2825,7 +2849,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. |
// |
@@ -2849,7 +2873,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) |
}; |
} |
@@ -2873,6 +2898,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( |
@@ -2896,12 +2926,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. |
@@ -2916,7 +2946,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) |
+ }; |
} |
/** |
@@ -2944,6 +2977,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( |
@@ -2969,7 +3007,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); |
@@ -2988,7 +3026,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) |
}; |
} |
@@ -3079,6 +3118,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', |
@@ -3100,7 +3144,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. |
// |
@@ -3125,7 +3169,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) |
+ }; |
} |
/** |