Index: sdk/lib/_internal/compiler/implementation/enqueue.dart |
diff --git a/sdk/lib/_internal/compiler/implementation/enqueue.dart b/sdk/lib/_internal/compiler/implementation/enqueue.dart |
index 125a355bc9e374777be6d0cc40cb69092374fcd2..c6ea16a7705f3b34c12e3e36cfe8da3d63eef08e 100644 |
--- a/sdk/lib/_internal/compiler/implementation/enqueue.dart |
+++ b/sdk/lib/_internal/compiler/implementation/enqueue.dart |
@@ -386,6 +386,15 @@ abstract class Enqueuer { |
compiler.backend.registerIsCheck(type, this, elements); |
} |
+ /** |
+ * If a factory constructor is used with type arguments, we lose track |
+ * which arguments could be used to create instances of classes that use their |
+ * type variables as expressions, so we have to remember if we saw such a use. |
+ */ |
+ void registerFactoryWithTypeArguments(TreeElements elements) { |
+ universe.usingFactoryWithTypeArguments = true; |
+ } |
+ |
void registerAsCheck(DartType type, TreeElements elements) { |
registerIsCheck(type, elements); |
compiler.backend.registerAsCheck(type, elements); |