This commit is contained in:
anna
2013-12-05 20:29:43 +01:00
parent 7cecc22ed3
commit 022615c0f8
4 changed files with 27 additions and 3 deletions
@@ -50,7 +50,7 @@ public class InlineParameterExpressionProcessor extends BaseRefactoringProcessor
private final PsiParameter myParameter;
private PsiExpression myInitializer;
private final boolean mySameClass;
private final PsiMethod myCallingMethod;
private final PsiCodeBlock myCallingBlock;
private final boolean myCreateLocal;
public InlineParameterExpressionProcessor(final PsiCallExpression methodCall,
@@ -67,7 +67,7 @@ public class InlineParameterExpressionProcessor extends BaseRefactoringProcessor
PsiClass callingClass = PsiTreeUtil.getParentOfType(methodCall, PsiClass.class);
mySameClass = (callingClass == myMethod.getContainingClass());
myCallingMethod = PsiTreeUtil.getParentOfType(myMethodCall, PsiMethod.class);
myCallingBlock = PsiTreeUtil.getTopmostParentOfType(myMethodCall, PsiCodeBlock.class);
}
@Override
@@ -110,7 +110,7 @@ public class InlineParameterExpressionProcessor extends BaseRefactoringProcessor
final PsiElement element = expression.resolve();
if (element instanceof PsiLocalVariable) {
final PsiLocalVariable localVariable = (PsiLocalVariable)element;
final PsiElement[] elements = DefUseUtil.getDefs(myCallingMethod.getBody(), localVariable, expression);
final PsiElement[] elements = DefUseUtil.getDefs(myCallingBlock, localVariable, expression);
if (elements.length == 1) {
PsiExpression localInitializer = null;
if (elements[0] instanceof PsiLocalVariable) {
@@ -0,0 +1,10 @@
class X {
{
String str = "";
foo(str, str.substring(0));
}
void foo(String str, String st<caret>r1) {
}
}
@@ -0,0 +1,10 @@
class X {
{
String str = "";
foo(str);
}
void foo(String str) {
}
}
@@ -134,6 +134,10 @@ public class InlineParameterTest extends LightRefactoringTestCase {
doTest(true);
}
public void testFromClassInitializer() throws Exception {
doTest(false);
}
public void testParameterWithWriteAccess() throws Exception {
try {
doTest(false);