in ide-diff-builder/src/main/java/org/jetbrains/ide/diff/builder/api/RemovedProcessor.kt [18:55]
override fun process(
oldClass: ClassFile?,
oldMember: ClassFileMember?,
newClass: ClassFile?,
newMember: ClassFileMember?,
oldResolver: Resolver,
newResolver: Resolver
) {
if (oldMember != null && oldMember.isAccessible && (newMember == null || !newMember.isAccessible)) {
if (newClass != null) {
val memberMovedUp = hasSuperTypeMatchingPredicate(newClass, newResolver) { parentClass ->
when (oldMember) {
is Method -> {
parentClass.methods.any {
it.name == oldMember.name
&& it.descriptor == oldMember.descriptor
&& it.isStatic == oldMember.isStatic
&& it.isAccessible
}
}
is Field -> {
parentClass.fields.any {
it.name == oldMember.name
&& it.descriptor == oldMember.descriptor
&& it.isStatic == oldMember.isStatic
&& it.isAccessible
}
}
else -> false
}
}
if (memberMovedUp) {
return
}
}
result += oldMember
}
}