Lines 31-42
Link Here
|
31 |
int length = oneArgs.length; |
31 |
int length = oneArgs.length; |
32 |
if (length != twoArgs.length) return false; |
32 |
if (length != twoArgs.length) return false; |
33 |
|
33 |
|
|
|
34 |
boolean checkAllArgTypesAreConverted = true; |
34 |
for (int i = 0; i < length; i++) { |
35 |
for (int i = 0; i < length; i++) { |
35 |
if (!areTypesEqual(oneArgs[i], twoArgs[i])) { |
36 |
if (!areTypesEqual(oneArgs[i], twoArgs[i])) { |
36 |
// methods with raw parameters are considered equal to inherited methods with parameterized parameters for backwards compatibility |
37 |
// methods with raw parameters are considered equal to inherited methods with parameterized parameters for backwards compatibility |
37 |
if (!one.declaringClass.isInterface() && oneArgs[i].leafComponentType().isRawType()) |
38 |
if (!one.declaringClass.isInterface() && oneArgs[i].leafComponentType().isRawType()) { |
38 |
if (oneArgs[i].dimensions() == twoArgs[i].dimensions() && oneArgs[i].leafComponentType().isEquivalentTo(twoArgs[i].leafComponentType())) |
39 |
if (oneArgs[i].dimensions() == twoArgs[i].dimensions() && oneArgs[i].leafComponentType().isEquivalentTo(twoArgs[i].leafComponentType())) { |
|
|
40 |
if (checkAllArgTypesAreConverted) { |
41 |
// check that all parameter types are RAW types, if one has been converted to parameterized, then all types must be converted |
42 |
for (int j = 0; j < length; j++) |
43 |
if (oneArgs[j].leafComponentType().isParameterizedType()) |
44 |
return false; |
45 |
checkAllArgTypesAreConverted = false; |
46 |
} |
39 |
continue; |
47 |
continue; |
|
|
48 |
} |
49 |
} |
40 |
return false; |
50 |
return false; |
41 |
} |
51 |
} |
42 |
} |
52 |
} |