private static boolean isStrictMethodInvocationConvertible()

in src/main/java/org/apache/maven/shared/utils/introspection/MethodMap.java [390:434]


    private static boolean isStrictMethodInvocationConvertible(Class<?> formal, Class<?> actual) {
        /*
         * we shouldn't get a null into, but if so
         */
        if (actual == null && !formal.isPrimitive()) {
            return true;
        }

        /*
         *  Check for identity or widening reference conversion
         */

        if (formal.isAssignableFrom(actual)) {
            return true;
        }

        /*
         *  Check for widening primitive conversion.
         */

        if (formal.isPrimitive()) {
            if (formal == Short.TYPE && (actual == Byte.TYPE)) {
                return true;
            }
            if (formal == Integer.TYPE && (actual == Short.TYPE || actual == Byte.TYPE)) {
                return true;
            }
            if (formal == Long.TYPE && (actual == Integer.TYPE || actual == Short.TYPE || actual == Byte.TYPE)) {
                return true;
            }
            if (formal == Float.TYPE
                    && (actual == Long.TYPE || actual == Integer.TYPE || actual == Short.TYPE || actual == Byte.TYPE)) {
                return true;
            }
            if (formal == Double.TYPE
                    && (actual == Float.TYPE
                            || actual == Long.TYPE
                            || actual == Integer.TYPE
                            || actual == Short.TYPE
                            || actual == Byte.TYPE)) {
                return true;
            }
        }
        return false;
    }