Index: sdk/lib/_internal/compiler/implementation/resolution/members.dart |
diff --git a/sdk/lib/_internal/compiler/implementation/resolution/members.dart b/sdk/lib/_internal/compiler/implementation/resolution/members.dart |
index e6fd47862ac1280627bedfdbbf339ae86f10a11c..d8a42cff3c64461817d1ea8719e6a74762e2f89a 100644 |
--- a/sdk/lib/_internal/compiler/implementation/resolution/members.dart |
+++ b/sdk/lib/_internal/compiler/implementation/resolution/members.dart |
@@ -2538,9 +2538,11 @@ class ResolverVisitor extends CommonResolverVisitor<Element> { |
// and only declaration elements may be registered. |
world.registerStaticUse(constructor.declaration); |
ClassElement cls = constructor.getEnclosingClass(); |
- // [cls] might be the implementation element and only declaration elements |
- // may be registered. |
- world.registerInstantiatedType(mapping.getType(node), mapping); |
+ InterfaceType type = mapping.getType(node); |
+ world.registerInstantiatedType(type, mapping); |
+ if (constructor.isFactoryConstructor() && !type.typeArguments.isEmpty) { |
+ world.registerFactoryWithTypeArguments(mapping); |
+ } |
if (cls.isAbstract(compiler)) { |
compiler.backend.registerAbstractClassInstantiation(mapping); |
} |