Check (@NotNull Instruction prev, @NotNull Check check) { Check prevCheck = tryCast(prev, Check.class); if (prevCheck == null) return null; Throw prevThrow = tryCast(getSingleInstruction(prevCheck), Throw.class); if (prevThrow == null) return null; Throw curThrow = tryCast(getSingleInstruction(check), Throw.class); if (curThrow == null) return null; boolean isSameException = EquivalenceChecker.getCanonicalPsiEquivalence() .expressionsAreEquivalent(prevThrow.myException, curThrow.myException); if (!isSameException) return null; PsiExpression disjunction = mergeConditions(prevCheck, check, "||"); return new Check(disjunction, check.myInstructions, null); }