void (@NotNull PsiElement element) { final PsiElement parent = element.getParent(); if (!(parent instanceof PsiCatchSection catchSection)) { return; } final PsiElement grandParent = catchSection.getParent(); if (!(grandParent instanceof PsiTryStatement)) { return; } final PsiParameter parameter = catchSection.getParameter(); if (parameter == null) { return; } final PsiType type = parameter.getType(); if (!(type instanceof PsiDisjunctionType)) { return; } final PsiElementFactory factory = JavaPsiFacade.getElementFactory(element.getProject()); final JavaCodeStyleManager styleManager = JavaCodeStyleManager.getInstance(element.getProject()); for (PsiType disjunction : ((PsiDisjunctionType)type).getDisjunctions()) { final PsiCatchSection copy = (PsiCatchSection)catchSection.copy(); final PsiTypeElement typeElement = Objects.requireNonNull(Objects.requireNonNull(copy.getParameter()).getTypeElement()); final PsiTypeElement newTypeElement = factory.createTypeElementFromText(disjunction.getCanonicalText(true), catchSection); final PsiElement replaced = new CommentTracker().replaceAndRestoreComments(typeElement, newTypeElement); grandParent.addBefore(copy, catchSection); styleManager.shortenClassReferences(replaced); } catchSection.delete(); }