void (@NotNull PsiInlineDocTag tag) { @NonNls final String name = tag.getName(); if (!"inheritDoc".equals(name)) { return; } final PsiDocComment docComment = tag.getContainingComment(); if (docComment == null) { return; } final PsiJavaDocumentedElement owner = docComment.getOwner(); if (owner instanceof PsiJavaModule) { registerError(tag, WarningType.MODULE); return; } if (owner instanceof PsiField) { registerError(tag, WarningType.FIELD); return; } else if (owner instanceof PsiClass) { registerError(tag, WarningType.CLASS); return; } else if (owner instanceof PsiMethod method) { if (method.isConstructor()) { registerError(tag, WarningType.CONSTRUCTOR); return; } if (!MethodUtils.hasSuper(method)) { registerError(tag, WarningType.NO_SUPER); return; } } else { return; } final PsiElement parent = tag.getParent(); if (parent instanceof PsiDocTag docTag) { @NonNls final String docTagName = docTag.getName(); if ((docTagName.equals("throws") || docTagName.equals("exception")) && !isCheckExceptionAndPresentInThrowsList((PsiMethod)owner, docTag)) { return; } } final PsiDocToken[] docTokens = PsiTreeUtil.getChildrenOfType(parent, PsiDocToken.class); if (docTokens == null) { return; } for (PsiDocToken docToken : docTokens) { final IElementType tokenType = docToken.getTokenType(); if (!JavaDocTokenType.DOC_COMMENT_DATA.equals(tokenType)) { continue; } if (!StringUtil.isEmptyOrSpaces(docToken.getText())) { return; } } registerError(tag, WarningType.EMPTY); }