protected boolean internalIsOverridden(JvmFeature overriding, JvmFeature overridden, ITypeArgumentContext context, boolean isCheckInheritance) { if (overriding == overridden) return false; if (!isNameEqual(overriding, overridden)) return false; if (overriding instanceof JvmOperation && overridden instanceof JvmOperation) { JvmOperation overridingOp = (JvmOperation) overriding; JvmOperation overriddenOp = (JvmOperation) overridden; if(!hasSameTypeParameters(overridingOp, overriddenOp, context)) return false; if (!isSameNumberOfArguments(overridingOp, overriddenOp)) return false; if (!isSameArgumentTypes(overridingOp, overriddenOp, context)) return false; } if (overriding instanceof JvmField && overridden instanceof JvmField) { JvmField overridingField = (JvmField) overriding; JvmField overriddenField = (JvmField) overridden; if (overridingField.isStatic() != overriddenField.isStatic()) return false; } return true; }