@Override
  public DfaInstructionState[] accept(@NotNull DataFlowInterpreter interpreter, @NotNull DfaMemoryState stateBefore) {
    DfaValue dfaValue = stateBefore.pop();

    DfaMemoryState falseState = stateBefore.createCopy();
    List<DfaInstructionState> result = new ArrayList<>(2);
    if (stateBefore.applyCondition(dfaValue.eq(FALSE))) {
      pushResult(interpreter, stateBefore, TRUE);
      result.add(nextState(interpreter, stateBefore));
    }
    if (falseState.applyCondition(dfaValue.eq(TRUE))) {
      pushResult(interpreter, falseState, FALSE);
      result.add(nextState(interpreter, falseState));
    }

    return result.toArray(DfaInstructionState.EMPTY_ARRAY);
  }
@Override
  public DfaInstructionState[] accept(@NotNull DataFlowInterpreter interpreter, @NotNull DfaMemoryState stateBefore)