@Nullable
	@SuppressWarnings("OptionalGetWithoutIsPresent")
	private static AbstractInsnNode toInsn(@Nonnull ReValue value) {
		// Skip if value is not known.
		if (!value.hasKnownValue())
			return null;

		// Map known value types to constant value instructions.
		return switch (value) {
			case IntValue intValue -> AsmInsnUtil.intToInsn(intValue.value().getAsInt());
			case FloatValue floatValue -> AsmInsnUtil.floatToInsn((float) floatValue.value().getAsDouble());
			case DoubleValue doubleValue -> AsmInsnUtil.doubleToInsn(doubleValue.value().getAsDouble());
			case LongValue longValue -> AsmInsnUtil.longToInsn(longValue.value().getAsLong());
			case StringValue stringValue -> new LdcInsnNode(stringValue.getText().get());
			default -> null;
		};
	}
@param value
		Value to convert.

@return Instruction representing the value,
or {@code null} if we don't/can't provide a mapping for the value content.
recaf-core/src/main/java/software/coley/recaf/services/deobfuscation/transform/generic/LinearOpaqueConstantFoldingTransformer.java