View | Details | Raw Unified | Return to bug 174588 | Differences between
and this patch

Collapse All | Expand All

(-)compiler/org/eclipse/jdt/internal/compiler/lookup/Scope.java (-1 / +12 lines)
Lines 1108-1114 Link Here
1108
			}
1108
			}
1109
			currentType = currentType.superclass();
1109
			currentType = currentType.superclass();
1110
		}
1110
		}
1111
1111
		
1112
		// if found several candidates, then eliminate those not matching argument types
1112
		// if found several candidates, then eliminate those not matching argument types
1113
		int foundSize = found.size;
1113
		int foundSize = found.size;
1114
		MethodBinding[] candidates = null;
1114
		MethodBinding[] candidates = null;
Lines 1235-1240 Link Here
1235
			&& parameterCompatibilityLevel(mostSpecificMethod, argumentTypes) > COMPATIBLE) {
1235
			&& parameterCompatibilityLevel(mostSpecificMethod, argumentTypes) > COMPATIBLE) {
1236
				// see if there is a better match in the interfaces - see AutoBoxingTest 99
1236
				// see if there is a better match in the interfaces - see AutoBoxingTest 99
1237
				return findDefaultAbstractMethod(receiverType, selector, argumentTypes, invocationSite, classHierarchyStart, found, mostSpecificMethod);
1237
				return findDefaultAbstractMethod(receiverType, selector, argumentTypes, invocationSite, classHierarchyStart, found, mostSpecificMethod);
1238
		} else if (isCompliant14 && classHierarchyStart.isAbstract()) {
1239
			if (mostSpecificMethod.isValidBinding()) {
1240
				// see if there is a better match in the interfaces - see LookupTest#81
1241
				return findDefaultAbstractMethod(receiverType, selector, argumentTypes, invocationSite, classHierarchyStart, found, mostSpecificMethod);
1242
			} else {
1243
				// see if there is still a match in the interfaces - see LookupTest#84
1244
				MethodBinding interfaceMethod = findDefaultAbstractMethod(receiverType, selector, argumentTypes, invocationSite, classHierarchyStart, found, null);
1245
				if (interfaceMethod != null && interfaceMethod.isValidBinding() /* else return the same error as before */) {
1246
					return interfaceMethod;
1247
				}
1248
			}
1238
		}
1249
		}
1239
		return mostSpecificMethod;
1250
		return mostSpecificMethod;
1240
	}
1251
	}

Return to bug 174588