| Index: pkg/compiler/lib/src/ssa/builder.dart
|
| diff --git a/pkg/compiler/lib/src/ssa/builder.dart b/pkg/compiler/lib/src/ssa/builder.dart
|
| index 91be5bd500ed0c979120958799a747e22c718374..bced3688757b1b19b1c2cf527644cfe670609b2b 100644
|
| --- a/pkg/compiler/lib/src/ssa/builder.dart
|
| +++ b/pkg/compiler/lib/src/ssa/builder.dart
|
| @@ -256,7 +256,7 @@ class SsaAstGraphBuilder extends ast.Visitor
|
| closedWorld.nativeData,
|
| closedWorld.interceptorData);
|
| loopHandler = new SsaLoopHandler(this);
|
| - typeBuilder = new TypeBuilder(this);
|
| + typeBuilder = new TypeBuilderImpl(this);
|
| }
|
|
|
| MemberElement get targetElement => target;
|
| @@ -2469,8 +2469,9 @@ class SsaAstGraphBuilder extends ast.Visitor
|
| HInstruction call = pop();
|
| return new HIs.compound(type, expression, call, commonMasks.boolType);
|
| } else if (type.isTypeVariable) {
|
| + ResolutionTypeVariableType typeVariable = type;
|
| HInstruction runtimeType =
|
| - typeBuilder.addTypeVariableReference(type, sourceElement);
|
| + typeBuilder.addTypeVariableReference(typeVariable, sourceElement);
|
| MethodElement helper = commonElements.checkSubtypeOfRuntimeType;
|
| List<HInstruction> inputs = <HInstruction>[expression, runtimeType];
|
| pushInvokeStatic(null, helper, inputs, typeMask: commonMasks.boolType);
|
| @@ -6852,3 +6853,12 @@ class AstInliningState extends InliningState {
|
| this.oldElementInferenceResults)
|
| : super(function);
|
| }
|
| +
|
| +class TypeBuilderImpl extends TypeBuilder {
|
| + TypeBuilderImpl(GraphBuilder builder) : super(builder);
|
| +
|
| + @override
|
| + InterfaceType getThisType(covariant ClassElement cls) {
|
| + return cls.thisType;
|
| + }
|
| +}
|
|
|