mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
EA-59436 (IOE: PsiJavaParserFacadeImpl.createExpressionFromText)
This commit is contained in:
+3
-13
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2000-2012 JetBrains s.r.o.
|
||||
* Copyright 2000-2014 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -29,6 +29,7 @@ import com.intellij.psi.*;
|
||||
import com.intellij.psi.javadoc.PsiDocComment;
|
||||
import com.intellij.psi.util.PsiTreeUtil;
|
||||
import com.intellij.refactoring.util.RefactoringChangeUtil;
|
||||
import com.intellij.refactoring.util.RefactoringUtil;
|
||||
import com.intellij.util.IncorrectOperationException;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
@@ -126,9 +127,7 @@ public abstract class BaseMoveInitializerToMethodAction extends PsiElementBaseIn
|
||||
final PsiExpressionStatement statement = (PsiExpressionStatement)factory.createStatementFromText(field.getName() + " = y;", codeBlock);
|
||||
|
||||
PsiExpression initializer = field.getInitializer();
|
||||
if (initializer instanceof PsiArrayInitializerExpression) {
|
||||
initializer = arrayInitializerToNewExpression((PsiArrayInitializerExpression)initializer, factory, codeBlock);
|
||||
}
|
||||
initializer = RefactoringUtil.convertInitializerToNormalExpression(initializer, field.getType());
|
||||
|
||||
final PsiAssignmentExpression expression = (PsiAssignmentExpression)statement.getExpression();
|
||||
expression.getRExpression().replace(initializer);
|
||||
@@ -158,15 +157,6 @@ public abstract class BaseMoveInitializerToMethodAction extends PsiElementBaseIn
|
||||
return false;
|
||||
}
|
||||
|
||||
private static PsiExpression arrayInitializerToNewExpression(@NotNull PsiArrayInitializerExpression initializer,
|
||||
@NotNull PsiElementFactory factory,
|
||||
@NotNull PsiElement context) {
|
||||
final PsiType type = initializer.getType();
|
||||
final PsiNewExpression newExpression = (PsiNewExpression)factory.createExpressionFromText("new " + type.getCanonicalText() + "{}", context);
|
||||
newExpression.getArrayInitializer().replace(initializer);
|
||||
return newExpression;
|
||||
}
|
||||
|
||||
private static boolean containsReference(final @NotNull PsiElement element,
|
||||
final @NotNull PsiField field) {
|
||||
final Ref<Boolean> result = new Ref<Boolean>(Boolean.FALSE);
|
||||
|
||||
+8
@@ -0,0 +1,8 @@
|
||||
// "Move initializer to constructor" "true"
|
||||
class X {
|
||||
final String s;
|
||||
|
||||
X() {
|
||||
s = {};
|
||||
}
|
||||
}
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
// "Move initializer to constructor" "true"
|
||||
class X {
|
||||
final String <caret>s = {};
|
||||
|
||||
X() {
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user