override fun process()

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
    }
  }