anchor.diff:        potentiallyAddTypeArguments(inputs, cls, expectedType);
   
         addInlinedInstantiation(expectedType);
  -      pushInvokeStatic(node, constructor, inputs, elementType);
  +      pushInvokeStatic(node, constructor, inputs,
  +          typeMask: elementType, instanceType: expectedType);
         removeInlinedInstantiation(expectedType);
       }
       HInstruction newInstance = stack.last;
  
positive.code:       }
        List<HInstruction> inputs = <HInstruction>[];
        addGenericSendArgumentsToList(link, inputs);
        pushInvokeStatic(node, element, inputs, backend.dynamicType);
      }
    }
  
  
negative.code:       HInstruction runtimeType = addTypeVariableReference(type);
        Element helper = backend.getCheckSubtypeOfRuntimeType();
        List<HInstruction> inputs = <HInstruction>[expression, runtimeType];
        pushInvokeStatic(null, helper, inputs, typeMask: backend.boolType);
        HInstruction call = pop();
        return new HIs.variable(type, expression, call, backend.boolType);
      } else if (RuntimeTypes.hasTypeArguments(type)) {
  