diff --git a/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/RemoveSuppressWarningAction.java b/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/RemoveSuppressWarningAction.java index 6121e53ccf4b..3b48e5257414 100644 --- a/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/RemoveSuppressWarningAction.java +++ b/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/RemoveSuppressWarningAction.java @@ -113,14 +113,25 @@ public class RemoveSuppressWarningAction implements LocalQuickFix { } private void removeFromComment(final PsiComment comment) throws IncorrectOperationException { + String commentText = comment.getText(); + int secondCommentIdx = commentText.indexOf("//", 2); + String suffix = ""; + if (secondCommentIdx > 0) { + suffix = commentText.substring(secondCommentIdx); + } String newText = removeFromElementText(comment); if (newText != null) { if (newText.isEmpty()) { - comment.delete(); + if (suffix.isEmpty()) { + comment.delete(); + } + else { + comment.replace(JavaPsiFacade.getElementFactory(comment.getProject()).createCommentFromText(suffix, comment)); + } } else { PsiComment newComment = JavaPsiFacade.getElementFactory(comment.getProject()) - .createCommentFromText("// " + SuppressionUtilCore.SUPPRESS_INSPECTIONS_TAG_NAME +" "+newText, comment); + .createCommentFromText("// " + SuppressionUtilCore.SUPPRESS_INSPECTIONS_TAG_NAME +" "+newText + suffix, comment); comment.replace(newComment); } } @@ -147,6 +158,10 @@ public class RemoveSuppressWarningAction implements LocalQuickFix { text += StringUtil.trimStart(element.getText(), "//").trim(); } text = StringUtil.trimStart(text, "@").trim(); + int secondCommentIdx = text.indexOf("//"); + if (secondCommentIdx > 0) { + text = text.substring(0, secondCommentIdx); + } text = StringUtil.trimStart(text, SuppressionUtilCore.SUPPRESS_INSPECTIONS_TAG_NAME).trim(); List ids = StringUtil.split(text, ","); int i = ArrayUtil.find(ids.toArray(), myID); diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/redundantUncheckedVarargs/after4.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/redundantUncheckedVarargs/after4.java index 082728717123..f4e2c3370e05 100644 --- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/redundantUncheckedVarargs/after4.java +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/redundantUncheckedVarargs/after4.java @@ -8,7 +8,8 @@ public class Test { } void foo() { - List> list = foo(new ArrayList()); + //comment1 + List> list = foo(new ArrayList()); //noinspection unchecked ArrayList list = new ArrayList(); diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/redundantUncheckedVarargs/before4.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/redundantUncheckedVarargs/before4.java index 935e4b55fee4..1bbee8ba1b5d 100644 --- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/redundantUncheckedVarargs/before4.java +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/redundantUncheckedVarargs/before4.java @@ -8,7 +8,7 @@ public class Test { } void foo() { - //noinspection unchecked + //noinspection unchecked //comment1 List> list = foo(new ArrayList()); //noinspection unchecked