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

    List<DfaInstructionState> result = new ArrayList<>(2);
    DfaMemoryState copy = stateBefore.createCopy();
    DfaCondition cond = dfaRight.eq(booleanValue(myOr));
    if (copy.applyCondition(cond)) {
      pushResult(interpreter, copy, booleanValue(myOr));
      result.add(nextState(interpreter, copy));
    }
    if (stateBefore.applyCondition(cond.negate())) {
      pushResult(interpreter, stateBefore, dfaLeft);
      result.add(nextState(interpreter, stateBefore));
    }
    return result.toArray(DfaInstructionState.EMPTY_ARRAY);
  }
@Override
  public DfaInstructionState[] accept(@NotNull DataFlowInterpreter interpreter, @NotNull DfaMemoryState stateBefore)