From 0327f6df8476b5d73bd4213b57ba057da0b44a1c Mon Sep 17 00:00:00 2001 From: "Anna.Kozlova" Date: Tue, 13 Mar 2018 15:47:24 +0100 Subject: [PATCH] inline: preserve comments (IDEA-188115) --- .../intellij/refactoring/inline/InlineMethodProcessor.java | 6 +++--- .../inlineMethod/MethodInsideChangeIfStatement.java | 3 ++- .../inlineMethod/MethodInsideChangeIfStatement.java.after | 1 + 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/java/java-impl/src/com/intellij/refactoring/inline/InlineMethodProcessor.java b/java/java-impl/src/com/intellij/refactoring/inline/InlineMethodProcessor.java index 774974ee247d..df49610a0e96 100644 --- a/java/java-impl/src/com/intellij/refactoring/inline/InlineMethodProcessor.java +++ b/java/java-impl/src/com/intellij/refactoring/inline/InlineMethodProcessor.java @@ -45,7 +45,6 @@ import com.intellij.usageView.UsageInfo; import com.intellij.usageView.UsageViewDescriptor; import com.intellij.util.ArrayUtil; import com.intellij.util.IncorrectOperationException; -import java.util.HashMap; import com.intellij.util.containers.MultiMap; import com.siyeh.ig.psiutils.CommentTracker; import com.siyeh.ig.psiutils.SideEffectChecker; @@ -722,7 +721,8 @@ public class InlineMethodProcessor extends BaseRefactoringProcessor { PsiElement callParent = methodCall.getParent(); if (callParent instanceof PsiLambdaExpression) { methodCall.delete(); - } else if (callParent instanceof PsiExpressionStatement || tailCall == InlineUtil.TailCallType.Return) { + } + else if (callParent instanceof PsiExpressionStatement || tailCall == InlineUtil.TailCallType.Return) { CommentTracker tracker = new CommentTracker(); tracker.delete(callParent); if (firstAdded != null) { @@ -732,7 +732,7 @@ public class InlineMethodProcessor extends BaseRefactoringProcessor { else { if (blockData.resultVar != null) { PsiExpression expr = myFactory.createExpressionFromText(blockData.resultVar.getName(), null); - methodCall.replace(expr); + new CommentTracker().replaceAndRestoreComments(methodCall, expr); } else { //?? diff --git a/java/java-tests/testData/refactoring/inlineMethod/MethodInsideChangeIfStatement.java b/java/java-tests/testData/refactoring/inlineMethod/MethodInsideChangeIfStatement.java index 1df5d47a74ab..91b04ef131a0 100644 --- a/java/java-tests/testData/refactoring/inlineMethod/MethodInsideChangeIfStatement.java +++ b/java/java-tests/testData/refactoring/inlineMethod/MethodInsideChangeIfStatement.java @@ -13,7 +13,8 @@ class Test { start = i; } else if (idx(i) != 24 && start != -1) { - result.add("".substring(idx(start))); + result.add("".substring(idx//c1 + (start))); } } return result; diff --git a/java/java-tests/testData/refactoring/inlineMethod/MethodInsideChangeIfStatement.java.after b/java/java-tests/testData/refactoring/inlineMethod/MethodInsideChangeIfStatement.java.after index e43e7e849a44..6bf81d803a9b 100644 --- a/java/java-tests/testData/refactoring/inlineMethod/MethodInsideChangeIfStatement.java.after +++ b/java/java-tests/testData/refactoring/inlineMethod/MethodInsideChangeIfStatement.java.after @@ -13,6 +13,7 @@ class Test { start = i; } else if (i != 24 && start != -1) { + //c1 result.add("".substring(start)); } }