diff --git a/java/java-impl/src/com/intellij/refactoring/extractMethod/ExtractMethodProcessor.java b/java/java-impl/src/com/intellij/refactoring/extractMethod/ExtractMethodProcessor.java index de94f5b99dc9..13a6cbbf62ce 100644 --- a/java/java-impl/src/com/intellij/refactoring/extractMethod/ExtractMethodProcessor.java +++ b/java/java-impl/src/com/intellij/refactoring/extractMethod/ExtractMethodProcessor.java @@ -201,7 +201,7 @@ public class ExtractMethodProcessor implements MatchProvider { myExpression = null; if (myElements.length == 1 && myElements[0] instanceof PsiExpression) { final PsiExpression expression = (PsiExpression)myElements[0]; - if (expression.getParent() instanceof PsiExpressionStatement) { + if (expression instanceof PsiAssignmentExpression && expression.getParent() instanceof PsiExpressionStatement) { myElements[0] = expression.getParent(); } else { diff --git a/java/java-tests/testData/refactoring/extractMethod/LeaveCommentsWhenExpressionExtracted.java b/java/java-tests/testData/refactoring/extractMethod/LeaveCommentsWhenExpressionExtracted.java new file mode 100644 index 000000000000..05c61afc6bea --- /dev/null +++ b/java/java-tests/testData/refactoring/extractMethod/LeaveCommentsWhenExpressionExtracted.java @@ -0,0 +1,6 @@ +class Test { + void bar(){} + void foo() { + bar();//some comment here + } +} \ No newline at end of file diff --git a/java/java-tests/testData/refactoring/extractMethod/LeaveCommentsWhenExpressionExtracted_after.java b/java/java-tests/testData/refactoring/extractMethod/LeaveCommentsWhenExpressionExtracted_after.java new file mode 100644 index 000000000000..8a064f101475 --- /dev/null +++ b/java/java-tests/testData/refactoring/extractMethod/LeaveCommentsWhenExpressionExtracted_after.java @@ -0,0 +1,10 @@ +class Test { + void bar(){} + void foo() { + newMethod();//some comment here + } + + private void newMethod() { + bar(); + } +} \ No newline at end of file diff --git a/java/java-tests/testSrc/com/intellij/refactoring/ExtractMethodTest.java b/java/java-tests/testSrc/com/intellij/refactoring/ExtractMethodTest.java index 3b6667f2c397..27478f6f787c 100644 --- a/java/java-tests/testSrc/com/intellij/refactoring/ExtractMethodTest.java +++ b/java/java-tests/testSrc/com/intellij/refactoring/ExtractMethodTest.java @@ -124,6 +124,10 @@ public class ExtractMethodTest extends LightCodeInsightTestCase { doTest(); } + public void testLeaveCommentsWhenExpressionExtracted() throws Exception { + doTest(); + } + public void testSCR15815() throws Exception { doTest(); }