mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
inline method: erase type for array creation (IDEA-194441)
This commit is contained in:
@@ -30,10 +30,7 @@ import com.intellij.psi.search.GlobalSearchScope;
|
||||
import com.intellij.psi.search.LocalSearchScope;
|
||||
import com.intellij.psi.search.searches.OverridingMethodsSearch;
|
||||
import com.intellij.psi.search.searches.ReferencesSearch;
|
||||
import com.intellij.psi.util.InheritanceUtil;
|
||||
import com.intellij.psi.util.PsiTreeUtil;
|
||||
import com.intellij.psi.util.PsiTypesUtil;
|
||||
import com.intellij.psi.util.PsiUtil;
|
||||
import com.intellij.psi.util.*;
|
||||
import com.intellij.refactoring.BaseRefactoringProcessor;
|
||||
import com.intellij.refactoring.RefactoringBundle;
|
||||
import com.intellij.refactoring.introduceParameter.Util;
|
||||
@@ -46,6 +43,7 @@ import com.intellij.usageView.UsageViewDescriptor;
|
||||
import com.intellij.util.ArrayUtil;
|
||||
import com.intellij.util.IncorrectOperationException;
|
||||
import com.intellij.util.JavaPsiConstructorUtil;
|
||||
import com.intellij.util.ObjectUtils;
|
||||
import com.intellij.util.containers.MultiMap;
|
||||
import com.siyeh.ig.psiutils.CommentTracker;
|
||||
import com.siyeh.ig.psiutils.SideEffectChecker;
|
||||
@@ -841,7 +839,8 @@ public class InlineMethodProcessor extends BaseRefactoringProcessor {
|
||||
final PsiEllipsisType ellipsisType = (PsiEllipsisType)paramType;
|
||||
paramType = callSubstitutor.substitute(ellipsisType.toArrayType());
|
||||
if (applicabilityLevel == MethodCandidateInfo.ApplicabilityLevel.VARARGS) {
|
||||
defaultValue = "new " + ((PsiArrayType)paramType).getComponentType().getCanonicalText() + "[]{}";
|
||||
PsiType componentType = ((PsiArrayType)paramType).getComponentType();
|
||||
defaultValue = "new " + ObjectUtils.notNull(TypeConversionUtil.erasure(componentType), componentType).getCanonicalText() + "[]{}";
|
||||
}
|
||||
else {
|
||||
defaultValue = PsiTypesUtil.getDefaultValueOfType(paramType);
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
|
||||
import java.util.Optional;
|
||||
|
||||
class Test
|
||||
{
|
||||
void x() {
|
||||
Optional<String>[] os = arr<caret>ay(Optional.empty());
|
||||
}
|
||||
|
||||
public static <T> T[] array(T... values) {
|
||||
return values;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
|
||||
import java.util.Optional;
|
||||
|
||||
class Test
|
||||
{
|
||||
void x() {
|
||||
Optional<String>[] os = (Optional<String>[]) new Optional[]{Optional.empty()};
|
||||
}
|
||||
|
||||
}
|
||||
@@ -86,6 +86,7 @@ public class InlineMethodTest extends LightRefactoringTestCase {
|
||||
public void testCallInFor() { doTest(); }
|
||||
|
||||
public void testSCR20655() { doTest(); }
|
||||
public void testGenericArrayCreation() { doTest(); }
|
||||
|
||||
|
||||
public void testFieldInitializer() { doTest(); }
|
||||
|
||||
Reference in New Issue
Block a user