Index: editor/tools/plugins/com.google.dart.engine/src/com/google/dart/engine/internal/resolver/ElementResolver.java |
diff --git a/editor/tools/plugins/com.google.dart.engine/src/com/google/dart/engine/internal/resolver/ElementResolver.java b/editor/tools/plugins/com.google.dart.engine/src/com/google/dart/engine/internal/resolver/ElementResolver.java |
index 79a4e8c11785996890f5a915f01dad818b53f6d8..0609419200e92cf0b35da7c9306d929d57072fea 100644 |
--- a/editor/tools/plugins/com.google.dart.engine/src/com/google/dart/engine/internal/resolver/ElementResolver.java |
+++ b/editor/tools/plugins/com.google.dart.engine/src/com/google/dart/engine/internal/resolver/ElementResolver.java |
@@ -318,6 +318,11 @@ public class ElementResolver extends SimpleASTVisitor<Void> { |
private SubtypeManager subtypeManager; |
/** |
+ * The object keeping track of which elements have had their types promoted. |
+ */ |
+ private TypePromotionManager promoteManager; |
+ |
+ /** |
* The name of the method that can be implemented by a class to allow its instances to be invoked |
* as if they were a function. |
*/ |
@@ -342,6 +347,7 @@ public class ElementResolver extends SimpleASTVisitor<Void> { |
dynamicType = resolver.getTypeProvider().getDynamicType(); |
typeType = resolver.getTypeProvider().getTypeType(); |
subtypeManager = new SubtypeManager(); |
+ promoteManager = resolver.getPromoteManager(); |
} |
@Override |
@@ -1597,7 +1603,7 @@ public class ElementResolver extends SimpleASTVisitor<Void> { |
return resolveArgumentsToParameters(false, argumentList, (ExecutableElement) element); |
} else if (element instanceof VariableElement) { |
VariableElement variable = (VariableElement) element; |
- Type type = variable.getType(); |
+ Type type = promoteManager.getStaticType(variable); |
if (type instanceof FunctionType) { |
FunctionType functionType = (FunctionType) type; |
ParameterElement[] parameters = functionType.getParameters(); |