Community
Participate
Working Groups
return true;
}
if (one.isVarargs() && two.isVarargs() && oneParamsLength > twoParamsLength) {
if (one.isVarargs() && two.isVarargs()) {
// special case when autoboxing makes (int, int...) better than (Object...) but not (int...) or (Integer, int...)
if (oneParamsLength > twoParamsLength) {
if (((ArrayBinding) twoParams[twoParamsLength - 1]).elementsType().id != TypeIds.T_JavaLangObject)
return false;
// check that each parameter before the vararg parameters are compatible (no autoboxing allowed here)
for (int i = twoParamsLength - 2; i >= 0; i--)
for (int i = (oneParamsLength > twoParamsLength ? twoParamsLength : oneParamsLength) - 2; i >= 0; i--)
if (oneParams[i] != twoParams[i] && !oneParams[i].isCompatibleWith(twoParams[i]))
if (parameterCompatibilityLevel(one, twoParams) == NOT_COMPATIBLE