@Nullable
    private static Check mergeChecks(@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);
    }
@Nullable
    private static Check mergeChecks(@NotNull Instruction prev, @NotNull Check check)