DfaInstructionState[] (@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); }