protected void doFlush(@NotNull DfaVariableValue var, boolean markFlushed) {
    DfType typeBefore = getDfType(var);

    removeEquivalence(var);
    myVariableTypes.remove(var);
    if (markFlushed) {
      DfType inherentType = var.getInherentType();
      DfType correctedType = inherentType.correctTypeOnFlush(typeBefore);
      if (!inherentType.equals(correctedType)) {
        recordVariableType(var, correctedType);
      }
    }
    myCachedHash = null;
  }
protected void doFlush(@NotNull DfaVariableValue var, boolean markFlushed)