@Override
  public boolean processRemovedField(DifferentiateContext context, Difference.Change<JvmClass, JvmClass.Diff> change, JvmField removedField, Utils future, Utils present) {
    JvmClass changedClass = change.getPast();
    debug("Field: ", removedField.getName());

    if (!context.getParams().isProcessConstantsIncrementally() && !removedField.isPrivate() && removedField.isInlinable() && removedField.getValue() != null) {
      debug("Field had value and was (non-private) final => a switch to non-incremental mode requested");
      if (!affectOnNonIncrementalChange(context, changedClass.getReferenceID(), removedField, present)) {
        debug("End of Differentiate, returning false");
        return false;
      }
    }

    Set<JvmNodeReferenceID> propagated = present.collectSubclassesWithoutField(changedClass.getReferenceID(), removedField);
    affectMemberUsages(context, changedClass.getReferenceID(), removedField, propagated);
    if (!removedField.isPrivate() && removedField.isStatic()) {
      debug("The field was static --- affecting static field import usages");
      affectStaticMemberImportUsages(context, changedClass.getReferenceID(), removedField.getName(), propagated);
    }
    return true;
  }
@Override
  public boolean processRemovedField(DifferentiateContext context, Difference.Change<JvmClass, JvmClass.Diff> change, JvmField removedField, Utils future, Utils present)