void (@NotNull PsiModifierListOwner element, @NotNull PsiElement elementToHighlight, @Nullable TextRange rangeInElement, boolean ignoreInsideDeprecated, boolean ignoreImportStatements, boolean ignoreMethodsOfDeprecated, boolean ignoreInSameOutermostClass, @NotNull ProblemsHolder holder, boolean forRemoval) { if (JavaDeprecationUtils.isDeprecated(element, elementToHighlight)) { if (forRemoval != isForRemovalAttributeSet(element)) { return; } } else { if (!ignoreMethodsOfDeprecated) { PsiClass containingClass = element instanceof PsiMember ? ((PsiMember)element).getContainingClass() : null; if (containingClass != null) { checkDeprecated(containingClass, elementToHighlight, rangeInElement, ignoreInsideDeprecated, ignoreImportStatements, false, ignoreInSameOutermostClass, holder, forRemoval); } } return; } if (ignoreInSameOutermostClass && areElementsInSameOutermostClass(element, elementToHighlight)) return; if (ignoreInsideDeprecated && isElementInsideDeprecated(elementToHighlight)) return; if (ignoreImportStatements && isElementInsideImportStatement(elementToHighlight)) return; String sinceString = getSinceString(element); String description; if (sinceString == null || sinceString.isBlank()) { description = JavaErrorBundle.message(forRemoval ? "marked.for.removal.symbol" : "deprecated.symbol", getPresentableName(element)); } else { description = JavaErrorBundle.message(forRemoval ? "marked.for.removal.symbol.since" : "deprecated.since.symbol", getPresentableName(element), sinceString); } LocalQuickFix replacementQuickFix = getReplacementQuickFix(element, elementToHighlight); holder.registerProblem(elementToHighlight, description, ProblemHighlightType.GENERIC_ERROR_OR_WARNING, rangeInElement, LocalQuickFix.notNullElements(replacementQuickFix)); }