mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
introduce parameter: fix {} array initializer (IDEA-91467)
This commit is contained in:
+4
-2
@@ -346,8 +346,10 @@ public class IntroduceParameterProcessor extends BaseRefactoringProcessor implem
|
||||
LOG.assertTrue(myLocalVariable != null);
|
||||
myParameterInitializer = factory.createExpressionFromText(myLocalVariable.getName(), myLocalVariable);
|
||||
}
|
||||
else {
|
||||
myParameterInitializer = RefactoringUtil.convertInitializerToNormalExpression(myParameterInitializer, initializerType);
|
||||
else if (myParameterInitializer instanceof PsiArrayInitializerExpression){
|
||||
final PsiExpression newExprArrayInitializer =
|
||||
RefactoringUtil.createNewExpressionFromArrayInitializer((PsiArrayInitializerExpression)myParameterInitializer, initializerType);
|
||||
myParameterInitializer = (PsiExpression)myParameterInitializer.replace(newExprArrayInitializer);
|
||||
}
|
||||
|
||||
myInitializerWrapper = new JavaExpressionWrapper(myParameterInitializer);
|
||||
|
||||
@@ -773,7 +773,7 @@ public class RefactoringUtil {
|
||||
return expression;
|
||||
}
|
||||
|
||||
private static PsiExpression createNewExpressionFromArrayInitializer(PsiArrayInitializerExpression initializer, PsiType forcedType)
|
||||
public static PsiExpression createNewExpressionFromArrayInitializer(PsiArrayInitializerExpression initializer, PsiType forcedType)
|
||||
throws IncorrectOperationException {
|
||||
PsiType initializerType = null;
|
||||
if (initializer != null) {
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
class Test {
|
||||
public synchronized boolean foo(String msg) {
|
||||
return bar(new String[]{message});
|
||||
}
|
||||
|
||||
private boolean bar(String[] anObject) {
|
||||
String[] params = anObject;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
class Test {
|
||||
public synchronized boolean foo(String msg) {
|
||||
return bar(message);
|
||||
}
|
||||
|
||||
private boolean bar(String parameter) {
|
||||
String[] params = <selection>{parameter}</selection>;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -249,6 +249,10 @@ public class IntroduceParameterTest extends LightRefactoringTestCase {
|
||||
doTest(IntroduceParameterRefactoring.REPLACE_FIELDS_WITH_GETTERS_INACCESSIBLE, false, false, false, false);
|
||||
}
|
||||
|
||||
public void testArrayInitializer() throws Exception {
|
||||
doTest(IntroduceParameterRefactoring.REPLACE_FIELDS_WITH_GETTERS_INACCESSIBLE, true, false, false, false);
|
||||
}
|
||||
|
||||
public void testIncompleteEnumDefinition() throws Exception {
|
||||
doTest(IntroduceParameterRefactoring.REPLACE_FIELDS_WITH_GETTERS_NONE, true, false, false, false, "Incomplete call(Root()): 2 parameters expected but only 0 found\n" +
|
||||
"Incomplete call(Root()): expected to delete the 1 parameter but only 0 parameters found");
|
||||
|
||||
Reference in New Issue
Block a user