| 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 c167c6fdbc560d74634b6398e322de8fe0eaec3a..76d4fb200c627910e154edbeb64d6e223c797452 100644
|
| --- a/sdk/lib/_internal/compiler/implementation/universe/universe.dart
|
| +++ b/sdk/lib/_internal/compiler/implementation/universe/universe.dart
|
| @@ -50,6 +50,8 @@ class Universe {
|
| final Set<Element> fieldSetters;
|
| final Set<DartType> isChecks;
|
|
|
| + bool usingFactoryWithTypeArguments = false;
|
| +
|
| Universe() : instantiatedClasses = new Set<ClassElement>(),
|
| instantiatedTypes = new Set<DartType>(),
|
| staticFunctionsNeedingGetter = new Set<FunctionElement>(),
|
| @@ -89,41 +91,6 @@ class Universe {
|
| bool hasFieldSetter(Element member, Compiler compiler) {
|
| return fieldSetters.contains(member);
|
| }
|
| -
|
| - /**
|
| - * Compute type arguments of classes that use one of their type variables in
|
| - * is-checks and add the is-checks that they imply.
|
| - *
|
| - * This function must be called after all is-checks have been registered.
|
| - *
|
| - * TODO(karlklose): move these computations into a function producing an
|
| - * immutable datastructure.
|
| - */
|
| - void addImplicitChecks(Iterable<ClassElement> classesUsingChecks) {
|
| - // If there are no classes that use their variables in checks, there is
|
| - // nothing to do.
|
| - if (classesUsingChecks.isEmpty) return;
|
| - // Find all instantiated types that are a subtype of a class that uses
|
| - // one of its type arguments in an is-check and add the arguments to the
|
| - // set of is-checks.
|
| - // TODO(karlklose): replace this with code that uses a subtype lookup
|
| - // datastructure in the world.
|
| - for (DartType type in instantiatedTypes) {
|
| - if (type.kind != TypeKind.INTERFACE) continue;
|
| - InterfaceType classType = type;
|
| - for (ClassElement cls in classesUsingChecks) {
|
| - // We need the type as instance of its superclass anyway, so we just
|
| - // try to compute the substitution; if the result is [:null:], the
|
| - // classes are not related.
|
| - InterfaceType instance = classType.asInstanceOf(cls);
|
| - if (instance == null) continue;
|
| - Link<DartType> typeArguments = instance.typeArguments;
|
| - for (DartType argument in typeArguments) {
|
| - isChecks.add(argument);
|
| - }
|
| - }
|
| - }
|
| - }
|
| }
|
|
|
| class SelectorKind {
|
|
|