@Override
  public IParamsValue unaryOperation(AbstractInsnNode insn, IParamsValue value) {
    int size;
    switch (insn.getOpcode()) {
      case CHECKCAST -> {
        return value;
      }
      case LNEG, DNEG, I2L, I2D, L2D, F2L, F2D, D2L -> size = 2;
      case GETFIELD -> {
        size = ASMUtils.getSizeFast(((FieldInsnNode)insn).desc);
        leaking |= value.params;
      }
      case ARRAYLENGTH, MONITORENTER, INSTANCEOF, IRETURN, ARETURN, IFNONNULL, IFNULL, IFEQ, IFNE -> {
        size = 1;
        leaking |= value.params;
      }
      default -> size = 1;
    }
    return size == 1 ? val1 : val2;
  }
@Override
  public IParamsValue unaryOperation(AbstractInsnNode insn, IParamsValue value)