void (@NotNull PsiTryStatement statement) { super.visitTryStatement(statement); final CatchSectionWrapper[] sections = CatchSectionWrapper.createWrappers(statement); if (sections == null) return; final boolean[][] canSwap = collectCanSwap(sections); final CatchSectionIndices[] duplicateIndices = getCatchSectionIndices( sections, canSwap, (s1, s2) -> CatchSectionWrapper.areDuplicates(s1, s2, ignoreBlocksWithDifferentComments)); final CatchSectionIndices[] emptyIndices = isOnTheFly() ? getCatchSectionIndices(sections, canSwap, CatchSectionWrapper::areEmpty) : null; if (duplicateIndices == null && emptyIndices == null) return; final boolean[] problems = new boolean[sections.length]; registerProblems(sections, duplicateIndices, problems, false); registerProblems(sections, emptyIndices, problems, true); }