in junit-platform-commons/src/main/java/org/junit/platform/commons/util/ReflectionUtils.java [411:464]
static boolean isWideningConversion(Class<?> sourceType, Class<?> targetType) {
Preconditions.condition(targetType.isPrimitive(), "targetType must be primitive");
boolean isPrimitive = sourceType.isPrimitive();
boolean isWrapper = primitiveToWrapperMap.containsValue(sourceType);
// Neither a primitive nor a wrapper?
if (!isPrimitive && !isWrapper) {
return false;
}
if (isPrimitive) {
sourceType = primitiveToWrapperMap.get(sourceType);
}
// @formatter:off
if (sourceType == Byte.class) {
return
targetType == short.class ||
targetType == int.class ||
targetType == long.class ||
targetType == float.class ||
targetType == double.class;
}
if (sourceType == Short.class || sourceType == Character.class) {
return
targetType == int.class ||
targetType == long.class ||
targetType == float.class ||
targetType == double.class;
}
if (sourceType == Integer.class) {
return
targetType == long.class ||
targetType == float.class ||
targetType == double.class;
}
if (sourceType == Long.class) {
return
targetType == float.class ||
targetType == double.class;
}
if (sourceType == Float.class) {
return
targetType == double.class;
}
// @formatter:on
return false;
}