DataValue (AbstractInsnNode insn, DataValue value1, DataValue value2) { return switch (insn.getOpcode()) { case Opcodes.LALOAD, Opcodes.DALOAD, Opcodes.LADD, Opcodes.DADD, Opcodes.LSUB, Opcodes.DSUB, Opcodes.LMUL, Opcodes.DMUL, Opcodes.LDIV, Opcodes.DDIV, Opcodes.LREM, Opcodes.LSHL, Opcodes.LSHR, Opcodes.LUSHR, Opcodes.LAND, Opcodes.LOR, Opcodes.LXOR -> DataValue.UnknownDataValue2; case Opcodes.PUTFIELD -> { final EffectQuantum effectQuantum = getChangeQuantum(value1); int insnIndex = methodNode.instructions.indexOf(insn); effects[insnIndex] = effectQuantum; yield DataValue.UnknownDataValue1; } default -> DataValue.UnknownDataValue1; }; }