boolean (@NotNull PsiJavaCodeReferenceElement reference) { final PsiElement parent = reference.getParent(); final PsiElement grandParent = parent.getParent(); if (!(grandParent instanceof PsiMethod method)) { return false; } final PsiDocComment docComment = method.getDocComment(); if (docComment == null) { return true; } final PsiElement throwsTarget = reference.resolve(); if (throwsTarget == null) { return true; } final PsiDocTag[] tags = docComment.findTagsByName("throws"); for (PsiDocTag tag : tags) { final PsiDocTagValue valueElement = tag.getValueElement(); if (valueElement == null) { continue; } final PsiElement child = valueElement.getFirstChild(); if (child == null) { continue; } final PsiElement grandChild = child.getFirstChild(); if (!(grandChild instanceof PsiJavaCodeReferenceElement referenceElement)) { continue; } final PsiElement target = referenceElement.resolve(); if (throwsTarget.equals(target)) { return false; } } return true; }