Lines 239-255
Link Here
|
239 |
int[] overriddenInheritedMethods = length > 1 ? findOverriddenInheritedMethods(methods, length) : null; |
239 |
int[] overriddenInheritedMethods = length > 1 ? findOverriddenInheritedMethods(methods, length) : null; |
240 |
if (overriddenInheritedMethods != null) { |
240 |
if (overriddenInheritedMethods != null) { |
241 |
// detected some overridden methods that can be ignored when checking return types |
241 |
// detected some overridden methods that can be ignored when checking return types |
|
|
242 |
// but cannot ignore an overridden inherited method completely when it comes to checking for bridge methods |
242 |
int index = 0; |
243 |
int index = 0; |
243 |
MethodBinding[] closestMethods = new MethodBinding[length]; |
244 |
MethodBinding[] closestMethods = new MethodBinding[length]; |
244 |
for (int i = 0; i < length; i++) |
245 |
for (int i = 0; i < length; i++) |
245 |
if (overriddenInheritedMethods[i] == 0) |
246 |
if (overriddenInheritedMethods[i] == 0) |
246 |
closestMethods[index++] = methods[i]; |
247 |
closestMethods[index++] = methods[i]; |
247 |
methods = closestMethods; |
248 |
if (!checkInheritedReturnTypes(closestMethods, index)) |
248 |
length = index; |
249 |
return; |
249 |
} |
250 |
} else if (!checkInheritedReturnTypes(methods, length)) { |
250 |
|
|
|
251 |
if (!checkInheritedReturnTypes(methods, length)) |
252 |
return; |
251 |
return; |
|
|
252 |
} |
253 |
|
253 |
|
254 |
MethodBinding concreteMethod = null; |
254 |
MethodBinding concreteMethod = null; |
255 |
if (!type.isInterface()) { // ignore concrete methods for interfaces |
255 |
if (!type.isInterface()) { // ignore concrete methods for interfaces |