diff --git a/java/java-analysis-impl/src/com/intellij/codeInspection/SuppressManagerImpl.java b/java/java-analysis-impl/src/com/intellij/codeInspection/SuppressManagerImpl.java index 802fdadfa41a..89397e5e519e 100644 --- a/java/java-analysis-impl/src/com/intellij/codeInspection/SuppressManagerImpl.java +++ b/java/java-analysis-impl/src/com/intellij/codeInspection/SuppressManagerImpl.java @@ -5,6 +5,8 @@ package com.intellij.codeInspection; import com.intellij.codeInsight.daemon.HighlightDisplayKey; import com.intellij.codeInsight.daemon.impl.RemoveSuppressWarningAction; import com.intellij.openapi.diagnostic.Logger; +import com.intellij.openapi.util.TextRange; +import com.intellij.psi.PsiComment; import com.intellij.psi.PsiDocCommentOwner; import com.intellij.psi.PsiElement; import com.intellij.psi.util.PsiTreeUtil; @@ -65,6 +67,16 @@ public class SuppressManagerImpl extends SuppressManager implements RedundantSup return suppressionScope != null && PsiTreeUtil.isAncestor(elementWithSuppression, suppressionScope, false); } + @Override + public TextRange getHighlightingRange(PsiElement elementWithSuppression, String toolId) { + PsiElement annotationOrTagElement = elementWithSuppression instanceof PsiComment ? null : getElementToolSuppressedIn(elementWithSuppression, toolId); + if (annotationOrTagElement != null) { + int shiftInParent = annotationOrTagElement.getTextRange().getStartOffset() - elementWithSuppression.getTextRange().getStartOffset(); + return RedundantSuppressionDetector.super.getHighlightingRange(annotationOrTagElement, toolId).shiftRight(shiftInParent); + } + return RedundantSuppressionDetector.super.getHighlightingRange(elementWithSuppression, toolId); + } + @Override public LocalQuickFix createRemoveRedundantSuppressionFix(@NotNull String toolId) { return new RemoveSuppressWarningAction(toolId); diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/redundantUncheckedVarargs/after5.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/redundantUncheckedVarargs/after5.java index e59eac429550..e7a2163e8937 100644 --- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/redundantUncheckedVarargs/after5.java +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/redundantUncheckedVarargs/after5.java @@ -7,6 +7,9 @@ public class Test { return null; } + /** + * Some javadoc with unchecked word inside + */ void foo() { List> list = foo(new ArrayList()); } diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/redundantUncheckedVarargs/before5.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/redundantUncheckedVarargs/before5.java index a787de0a33d2..052bb0420013 100644 --- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/redundantUncheckedVarargs/before5.java +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/redundantUncheckedVarargs/before5.java @@ -7,6 +7,9 @@ public class Test { return null; } + /** + * Some javadoc with unchecked word inside + */ @SuppressWarnings("unchecked") void foo() { List> list = foo(new ArrayList());