Index: sdk/lib/_internal/compiler/implementation/universe/universe.dart |
diff --git a/sdk/lib/_internal/compiler/implementation/universe/universe.dart b/sdk/lib/_internal/compiler/implementation/universe/universe.dart |
index ae3b54b4f93250132e282f297243a795d101f9b0..bb558012d3d1320a5610cc92044c61a2e0a2b947 100644 |
--- a/sdk/lib/_internal/compiler/implementation/universe/universe.dart |
+++ b/sdk/lib/_internal/compiler/implementation/universe/universe.dart |
@@ -50,6 +50,20 @@ class Universe { |
final Set<Element> fieldSetters; |
final Set<DartType> isChecks; |
+ /** |
+ * Set of [:call:] methods in instantiated classes that use type variables |
+ * in their signature. |
+ */ |
+ final Set<Element> genericCallMethods; |
+ |
+ /** |
+ * Set of methods in instantiated classes that use type variables in their |
+ * signature and have potentially been closurized. |
+ */ |
+ final Set<Element> closurizedGenericMembers; |
+ |
+ final Set<Element> closurizedMembers; |
+ |
bool usingFactoryWithTypeArguments = false; |
Universe() : instantiatedClasses = new Set<ClassElement>(), |
@@ -60,7 +74,10 @@ class Universe { |
invokedSetters = new Map<SourceString, Set<Selector>>(), |
fieldGetters = new Set<Element>(), |
fieldSetters = new Set<Element>(), |
- isChecks = new Set<DartType>(); |
+ isChecks = new Set<DartType>(), |
+ genericCallMethods = new Set<Element>(), |
+ closurizedGenericMembers = new Set<Element>(), |
+ closurizedMembers = new Set<Element>(); |
bool hasMatchingSelector(Set<Selector> selectors, |
Element member, |
@@ -91,6 +108,15 @@ class Universe { |
bool hasFieldSetter(Element member, Compiler compiler) { |
return fieldSetters.contains(member); |
} |
+ |
+ DartType registerIsCheck(DartType type, Compiler compiler) { |
karlklose
2013/06/20 07:32:55
Which method is this replacing?
Johnni Winther
2013/06/21 12:19:15
It new. Used from the enqueuer to register checks
|
+ type = type.unalias(compiler); |
+ // Even in checked mode, type annotations for return type and argument |
+ // types do not imply type checks, so there should never be a check |
+ // against the type variable of a typedef. |
+ isChecks.add(type); |
+ return type; |
+ } |
} |
class SelectorKind { |