| Index: editor/tools/plugins/com.google.dart.engine/src/com/google/dart/engine/internal/constant/ConstantValueComputer.java
|
| diff --git a/editor/tools/plugins/com.google.dart.engine/src/com/google/dart/engine/internal/constant/ConstantValueComputer.java b/editor/tools/plugins/com.google.dart.engine/src/com/google/dart/engine/internal/constant/ConstantValueComputer.java
|
| index adb01bb5838c2102c3f17653f0fc7c189829af91..b5cf6b4d661daf54b16a077da7c656c25c7addf2 100644
|
| --- a/editor/tools/plugins/com.google.dart.engine/src/com/google/dart/engine/internal/constant/ConstantValueComputer.java
|
| +++ b/editor/tools/plugins/com.google.dart.engine/src/com/google/dart/engine/internal/constant/ConstantValueComputer.java
|
| @@ -21,6 +21,7 @@ import com.google.dart.engine.element.CompilationUnitElement;
|
| import com.google.dart.engine.element.VariableElement;
|
| import com.google.dart.engine.error.AnalysisError;
|
| import com.google.dart.engine.internal.element.VariableElementImpl;
|
| +import com.google.dart.engine.internal.resolver.TypeProvider;
|
| import com.google.dart.engine.source.Source;
|
|
|
| import java.util.ArrayList;
|
| @@ -32,11 +33,16 @@ import java.util.Map;
|
| * Instances of the class {@code ConstantValueComputer} compute the values of constant variables in
|
| * one or more compilation units. The expected usage pattern is for the compilation units to be
|
| * added to this computer using the method {@link #add(CompilationUnit)} and then for the method
|
| - * {@link #computeValues()} to invoked exactly once. Any use of an instance after invoking the
|
| + * {@link #computeValues()} to be invoked exactly once. Any use of an instance after invoking the
|
| * method {@link #computeValues()} will result in unpredictable behavior.
|
| */
|
| public class ConstantValueComputer {
|
| /**
|
| + * The type provider used to access the known types.
|
| + */
|
| + private TypeProvider typeProvider;
|
| +
|
| + /**
|
| * The object used to find constant variables in the compilation units that were added.
|
| */
|
| private ConstantFinder constantFinder = new ConstantFinder();
|
| @@ -54,9 +60,11 @@ public class ConstantValueComputer {
|
|
|
| /**
|
| * Initialize a newly created constant value computer.
|
| + *
|
| + * @param typeProvider the type provider used to access known types
|
| */
|
| - public ConstantValueComputer() {
|
| - super();
|
| + public ConstantValueComputer(TypeProvider typeProvider) {
|
| + this.typeProvider = typeProvider;
|
| }
|
|
|
| /**
|
| @@ -96,7 +104,7 @@ public class ConstantValueComputer {
|
| //
|
| AnalysisEngine.getInstance().getLogger().logError(
|
| "Exiting constant value computer with " + referenceGraph.getNodeCount()
|
| - + " variables that are neither sinks no in a cycle");
|
| + + " variables that are neither sinks nor in a cycle");
|
| return;
|
| }
|
| for (VariableElement variable : variablesInCycle) {
|
| @@ -123,7 +131,8 @@ public class ConstantValueComputer {
|
| //
|
| return;
|
| }
|
| - EvaluationResultImpl result = declaration.getInitializer().accept(new ConstantVisitor());
|
| + EvaluationResultImpl result = declaration.getInitializer().accept(
|
| + new ConstantVisitor(typeProvider));
|
| ((VariableElementImpl) variable).setEvaluationResult(result);
|
| if (result instanceof ErrorResult) {
|
| ArrayList<AnalysisError> errors = new ArrayList<AnalysisError>();
|
|
|