Index: sdk/lib/_internal/compiler/implementation/ssa/builder.dart |
diff --git a/sdk/lib/_internal/compiler/implementation/ssa/builder.dart b/sdk/lib/_internal/compiler/implementation/ssa/builder.dart |
index 332648302db14261ebbf283dddf530620be415d7..5b7d5427781ff8118ff87c6aa19eb0f868c86a4d 100644 |
--- a/sdk/lib/_internal/compiler/implementation/ssa/builder.dart |
+++ b/sdk/lib/_internal/compiler/implementation/ssa/builder.dart |
@@ -1347,6 +1347,10 @@ class SsaBuilder extends ResolvedVisitor implements Visitor { |
// type parameters. Those values are in the [supertype] |
// declaration of [subclass]. |
ClassElement subclass = inlinedFromElement.getEnclosingClass(); |
+ // If [inlinedFromElement] is a generative constructor then [superclass] |
+ // is a superclass of [subclass]. If [inlinedFromElement] is a |
+ // redirecting constructor then [superclass] is the same as [subclass]. |
+ // Using [DartType.asInstanceOf] handles both these cases. |
InterfaceType supertype = subclass.thisType.asInstanceOf(superclass); |
Link<DartType> typeVariables = superclass.typeVariables; |
supertype.typeArguments.forEach((DartType argument) { |