@Nullable
	static ReValue ofType(@Nullable Type type, @Nonnull Nullness nullness) throws IllegalValueException {
		if (type == null)
			return UninitializedValue.UNINITIALIZED_VALUE;
		return switch (type.getSort()) {
			case Type.VOID -> null;
			case Type.BOOLEAN, Type.CHAR, Type.BYTE, Type.SHORT, Type.INT -> IntValue.UNKNOWN;
			case Type.FLOAT -> FloatValue.UNKNOWN;
			case Type.LONG -> LongValue.UNKNOWN;
			case Type.DOUBLE -> DoubleValue.UNKNOWN;
			case Type.ARRAY -> ArrayValue.of(type, nullness);
			case Type.OBJECT -> ObjectValue.object(type, nullness);
			default -> throw new IllegalValueException("Invalid type for new value: " + type);
		};
	}
@param type
		Type of value to create a new generic value for.
@param nullness
		Nullability state of the value.

@return Value of the given type.

@throws IllegalValueException
		When the type could not be mapped to a {@link ReValue}.
recaf-core/src/main/java/software/coley/recaf/util/analysis/value/ReValue.java