mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
NPE
This commit is contained in:
+3
-3
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user