boolean (final DiffState state, final ClassRepr.Diff diff, final ClassRepr it) { final Collection<FieldRepr> removed = diff.fields().removed(); if (removed.isEmpty()) { return true; } assert myPresent != null; debug("Processing removed fields:"); for (final FieldRepr f : removed) { debug("Field: ", f.name); if (!myProcessConstantsIncrementally && !f.isPrivate() && (f.access & INLINABLE_FIELD_MODIFIERS_MASK) == INLINABLE_FIELD_MODIFIERS_MASK && f.hasValue()) { debug("Field had value and was (non-private) final static => a switch to non-incremental mode requested"); if (!incrementalDecision(it.name, f, myAffectedFiles, myFilesToCompile, myFilter)) { debug("End of Differentiate, returning false"); return false; } } final IntSet propagated = myPresent.propagateFieldAccess(f.name, it.name); myPresent.affectFieldUsages(f, propagated, f.createUsage(myContext, it.name), state.myAffectedUsages, state.myDependants); if (!f.isPrivate() && f.isStatic()) { debug("The field was static --- affecting static field import usages"); myPresent.affectStaticMemberImportUsages(f.name, it.name, propagated, state.myAffectedUsages, state.myDependants); } } debug("End of removed fields processing"); return true; }