protected boolean isSameErasure(AbstractResolvedOperation overriding, AbstractResolvedOperation overridden) { List<LightweightTypeReference> overridingParameterTypes = overriding.getResolvedParameterTypes(); List<LightweightTypeReference> overriddenParameterTypes = overridden.getResolvedParameterTypes(); if (overridingParameterTypes.size() != overriddenParameterTypes.size()) { return false; } for(int i = 0; i < overridingParameterTypes.size(); i++) { LightweightTypeReference overridingParameterType = overridingParameterTypes.get(i); LightweightTypeReference overriddenParameterType = overriddenParameterTypes.get(i); String erasedOverridingParameterTypeIdentifier = overridingParameterType.getRawTypeReference().getJavaIdentifier(); String erasedOverriddenParameterTypeIdentifier = overriddenParameterType.getRawTypeReference().getJavaIdentifier(); if (!erasedOverridingParameterTypeIdentifier.equals(erasedOverriddenParameterTypeIdentifier)) { return false; } } return true; }
protected boolean isMatchingParameterList(AbstractResolvedOperation overriding, AbstractResolvedOperation overridden) { List<LightweightTypeReference> overridingParameterTypes = overriding.getResolvedParameterTypes(); List<LightweightTypeReference> overriddenParameterTypes = overridden.getResolvedParameterTypes(); boolean testErasure = false; for(int i = 0; i < overridingParameterTypes.size(); i++) {
if (!overriding.getResolvedParameterTypes().isEmpty() && !isMatchingParameterList(overriding, overriddenInHierarchy)) { result.add(OverrideCheckDetails.PARAMETER_TYPE_MISMATCH); return result;
protected boolean isMatchingTypeParameters(AbstractResolvedOperation overriding, AbstractResolvedOperation overridden) { int overridingTypeParameterCount = overriding.getTypeParameters().size(); if (overridingTypeParameterCount != overridden.getTypeParameters().size()) { for(LightweightTypeReference overridingParameterType: overriding.getResolvedParameterTypes()) { if (overridingParameterType.hasTypeArguments()) return false;