ParamsValue (AbstractInsnNode insn, ParamsValue value) { int size; switch (insn.getOpcode()) { case CHECKCAST -> { return value; } case LNEG, DNEG, I2L, I2D, L2D, F2L, F2D, D2L -> size = 2; case GETFIELD -> size = Type.getType(((FieldInsnNode)insn).desc).getSize(); default -> size = 1; } return size == 1 ? val1 : val2; }