| 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)
|
| + };
|
| }
|
|
|
| /**
|
|
|