diff --git a/java/java-impl/src/com/intellij/refactoring/inline/InlineParameterExpressionProcessor.java b/java/java-impl/src/com/intellij/refactoring/inline/InlineParameterExpressionProcessor.java index ec8f158f715c..1e395c222ad2 100644 --- a/java/java-impl/src/com/intellij/refactoring/inline/InlineParameterExpressionProcessor.java +++ b/java/java-impl/src/com/intellij/refactoring/inline/InlineParameterExpressionProcessor.java @@ -177,6 +177,8 @@ public class InlineParameterExpressionProcessor extends BaseRefactoringProcessor if (!mySameClass && !((PsiModifierListOwner)element).hasModifierProperty(PsiModifier.STATIC)) { conflicts.putValue(expression, "Parameter initializer depend on non static member from some other class"); } + } else if (element instanceof PsiParameter) { + conflicts.putValue(expression, "Parameter initializer depends on callers parameter"); } } diff --git a/java/java-tests/testData/refactoring/inlineParameter/RefCallerParameter.java b/java/java-tests/testData/refactoring/inlineParameter/RefCallerParameter.java new file mode 100644 index 000000000000..c2d8469a792a --- /dev/null +++ b/java/java-tests/testData/refactoring/inlineParameter/RefCallerParameter.java @@ -0,0 +1,9 @@ +class Outer { + public void withClass(Object o) { + System.out.println(o.toString()); + } + + public void foor(Object objct) { + withClass(objct); + } +} diff --git a/java/java-tests/testSrc/com/intellij/refactoring/inline/InlineParameterTest.java b/java/java-tests/testSrc/com/intellij/refactoring/inline/InlineParameterTest.java index 0246b3133a32..618f78ea0550 100644 --- a/java/java-tests/testSrc/com/intellij/refactoring/inline/InlineParameterTest.java +++ b/java/java-tests/testSrc/com/intellij/refactoring/inline/InlineParameterTest.java @@ -148,6 +148,16 @@ public class InlineParameterTest extends LightCodeInsightTestCase { } } + public void testRefCallerParameter() throws Exception { + try { + doTest(false); + } + catch (BaseRefactoringProcessor.ConflictsInTestsException e) { + assertEquals("Parameter initializer depends on callers parameter", e.getMessage()); + } + } + + public void testHandleExceptions() throws Exception { doTest(false); }