From 0bc1e140a3efa5affd34131e34e61beb8c98ff3b Mon Sep 17 00:00:00 2001 From: "Anna.Kozlova" Date: Thu, 14 Dec 2017 10:29:52 +0100 Subject: [PATCH] preserve comments: replace cast with var --- .../intention/impl/ReplaceCastWithVariableAction.java | 3 ++- .../quickFix/replaceCastWithVariable/afterTwoVars.java | 3 ++- .../quickFix/replaceCastWithVariable/beforeTwoVars.java | 3 ++- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/java/java-impl/src/com/intellij/codeInsight/intention/impl/ReplaceCastWithVariableAction.java b/java/java-impl/src/com/intellij/codeInsight/intention/impl/ReplaceCastWithVariableAction.java index 947cc7b1a011..ee92d1fd3b91 100644 --- a/java/java-impl/src/com/intellij/codeInsight/intention/impl/ReplaceCastWithVariableAction.java +++ b/java/java-impl/src/com/intellij/codeInsight/intention/impl/ReplaceCastWithVariableAction.java @@ -26,6 +26,7 @@ import com.intellij.openapi.util.TextRange; import com.intellij.psi.*; import com.intellij.psi.util.PsiTreeUtil; import com.intellij.util.IncorrectOperationException; +import com.siyeh.ig.psiutils.CommentTracker; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -76,7 +77,7 @@ public class ReplaceCastWithVariableAction extends PsiElementBaseIntentionAction final PsiElement toReplace = typeCastExpression.getParent() instanceof PsiParenthesizedExpression ? typeCastExpression.getParent() : typeCastExpression; final PsiElementFactory factory = JavaPsiFacade.getElementFactory(project); - toReplace.replace(factory.createExpressionFromText(myReplaceVariableName, toReplace)); + new CommentTracker().replaceAndRestoreComments(toReplace, factory.createExpressionFromText(myReplaceVariableName, toReplace)); } @Nullable diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/replaceCastWithVariable/afterTwoVars.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/replaceCastWithVariable/afterTwoVars.java index d40620db4276..651ce60f729a 100644 --- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/replaceCastWithVariable/afterTwoVars.java +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/replaceCastWithVariable/afterTwoVars.java @@ -7,6 +7,7 @@ class FooBar { FooBar foobar = (FooBar)foo; foobar = null; FooBar foobar2 = (FooBar)foo; - return foobar2.baz; + //comment + return foobar2.baz; } } \ No newline at end of file diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/replaceCastWithVariable/beforeTwoVars.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/replaceCastWithVariable/beforeTwoVars.java index 28c88d1df7b5..1ab49a61ad6f 100644 --- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/replaceCastWithVariable/beforeTwoVars.java +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/replaceCastWithVariable/beforeTwoVars.java @@ -7,6 +7,7 @@ class FooBar { FooBar foobar = (FooBar)foo; foobar = null; FooBar foobar2 = (FooBar)foo; - return ((FooBar)foo).baz; + return ((FooBar)foo//comment + ).baz; } } \ No newline at end of file