c1MoreSpecific = c1MoreSpecific || isStrictConvertible(c2[i], c1[i], last); c2MoreSpecific = c2MoreSpecific || isStrictConvertible(c1[i], c2[i], last);
c1MoreSpecific = c1MoreSpecific || isStrictConvertible(c2[i], c1[i], last) || c2[i] == Object.class;//Object is always least-specific c2MoreSpecific = c2MoreSpecific || isStrictConvertible(c1[i], c2[i], last) || c1[i] == Object.class;//Object is always least-specific
if (!isStrictConvertible(methodArgs[i], classes[i], false)) if (!isStrictConvertible(methodArgs[i], classes[i], i == classes.length - 1 && methodArgs[i].isArray())) if (!isStrictConvertible(methodArgs[i], classes[i], false)) for (int i = methodArgs.length - 1; i < classes.length; ++i) if (!isStrictConvertible(vararg, classes[i], false))
if (isStrictConvertible(c2[i], c1[i], last)) break; fromC1toC2 = IMPLCITLY_CONVERTIBLE; case IMPLCITLY_CONVERTIBLE: if (isStrictConvertible(c1[i], c2[i], last)) break; fromC2toC1 = IMPLCITLY_CONVERTIBLE; case IMPLCITLY_CONVERTIBLE: