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

Collapse All | Expand All

(-)compiler/org/eclipse/jdt/internal/compiler/lookup/MethodVerifier15.java (-2 / +12 lines)
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
	}

Return to bug 175987