TypeCheck.getClearType(s), NullCheck.getGuardResult(n));
TypeCheck.getClearType(s), NullCheck.getGuardResult(n).copy());
  private boolean invertNullAndTypeChecks(OPT_Instruction s) {    if (s.operator() == CHECKCAST) {      OPT_Register r = TypeCheck.getRef(s).asRegister().register;      OPT_Instruction n = s.nextInstructionInCodeOrder();      while (n.operator() == REF_MOVE && Move.getVal(n)           instanceof OPT_RegisterOperand          && Move.getVal(n).asRegister().register == r) {        r = Move.getResult(n).asRegister().register;        n = n.nextInstructionInCodeOrder();      }      if (n.operator() == NULL_CHECK && TypeCheck.getRef(s).asRegister().register ==           NullCheck.getRef(n).asRegister().register) {        s.remove();        TypeCheck.mutate(s, CHECKCAST_NOTNULL, TypeCheck.getClearRef(s),             TypeCheck.getClearType(s), NullCheck.getGuardResult(n));        n.insertFront(s);        return  true;      }    }    return  false;  }