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 81c3b3603e6b..78844ee81153 100644 --- a/java/java-impl/src/com/intellij/refactoring/inline/InlineMethodProcessor.java +++ b/java/java-impl/src/com/intellij/refactoring/inline/InlineMethodProcessor.java @@ -1148,6 +1148,9 @@ public class InlineMethodProcessor extends BaseRefactoringProcessor { else if (initializer instanceof PsiLiteralExpression) { return true; } + else if (initializer instanceof PsiPrefixExpression && ((PsiPrefixExpression)initializer).getOperand() instanceof PsiLiteralExpression) { + return true; + } else if (initializer instanceof PsiArrayAccessExpression) { final PsiExpression arrayExpression = ((PsiArrayAccessExpression)initializer).getArrayExpression(); final PsiExpression indexExpression = ((PsiArrayAccessExpression)initializer).getIndexExpression(); diff --git a/java/java-tests/testData/refactoring/inlineMethod/NegativeArguments.java b/java/java-tests/testData/refactoring/inlineMethod/NegativeArguments.java new file mode 100644 index 000000000000..9e3982ae0e53 --- /dev/null +++ b/java/java-tests/testData/refactoring/inlineMethod/NegativeArguments.java @@ -0,0 +1,9 @@ +class Test { + void foo(double d1, double d2) { + System.out.println(d1, d2); + } + + { + foo(-12.0, 12.0); + } +} \ No newline at end of file diff --git a/java/java-tests/testData/refactoring/inlineMethod/NegativeArguments.java.after b/java/java-tests/testData/refactoring/inlineMethod/NegativeArguments.java.after new file mode 100644 index 000000000000..75941600a38d --- /dev/null +++ b/java/java-tests/testData/refactoring/inlineMethod/NegativeArguments.java.after @@ -0,0 +1,6 @@ +class Test { + + { + System.out.println(-12.0, 12.0); + } +} \ No newline at end of file diff --git a/java/java-tests/testSrc/com/intellij/refactoring/inline/InlineMethodTest.java b/java/java-tests/testSrc/com/intellij/refactoring/inline/InlineMethodTest.java index eceece9ea85d..60e48283bda6 100644 --- a/java/java-tests/testSrc/com/intellij/refactoring/inline/InlineMethodTest.java +++ b/java/java-tests/testSrc/com/intellij/refactoring/inline/InlineMethodTest.java @@ -316,6 +316,10 @@ public class InlineMethodTest extends LightRefactoringTestCase { doTest(); } + public void testNegativeArguments() throws Exception { + doTest(); + } + public void testInaccessibleFieldInSuperClass() throws Exception { doTestConflict("Field A.i that is used in inlined method is not accessible from call site(s) in method B.bar()"); }