mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
following IDEA-CR-5506: process ''+" priority operations the same way
This commit is contained in:
@@ -25,6 +25,7 @@ import com.intellij.psi.*;
|
||||
import com.intellij.psi.codeStyle.JavaCodeStyleManager;
|
||||
import com.intellij.psi.search.LocalSearchScope;
|
||||
import com.intellij.psi.search.searches.ReferencesSearch;
|
||||
import com.intellij.psi.tree.IElementType;
|
||||
import com.intellij.psi.util.PsiTreeUtil;
|
||||
import com.intellij.psi.util.RedundantCastUtil;
|
||||
import com.intellij.psi.util.TypeConversionUtil;
|
||||
@@ -55,14 +56,15 @@ public class InlineUtil {
|
||||
boolean insertCastWhenUnchecked = parent instanceof PsiForeachStatement;
|
||||
final PsiType varType = variable.getType();
|
||||
initializer = RefactoringUtil.convertInitializerToNormalExpression(initializer, varType);
|
||||
if (initializer instanceof PsiPolyadicExpression &&
|
||||
((PsiPolyadicExpression)initializer).getOperationTokenType() == JavaTokenType.PLUS &&
|
||||
parent instanceof PsiPolyadicExpression &&
|
||||
((PsiPolyadicExpression)parent).getOperationTokenType() == JavaTokenType.PLUS) {
|
||||
final PsiType type = ((PsiPolyadicExpression)parent).getType();
|
||||
if (type != null && (type.equalsToText(CommonClassNames.JAVA_LANG_STRING) ^ varType.equalsToText(CommonClassNames.JAVA_LANG_STRING))) {
|
||||
final PsiElementFactory factory = JavaPsiFacade.getElementFactory(initializer.getProject());
|
||||
initializer = factory.createExpressionFromText("(" + initializer.getText() + ")", initializer);
|
||||
if (initializer instanceof PsiPolyadicExpression) {
|
||||
final IElementType operationTokenType = ((PsiPolyadicExpression)initializer).getOperationTokenType();
|
||||
if ((operationTokenType == JavaTokenType.PLUS || operationTokenType == JavaTokenType.MINUS) &&
|
||||
parent instanceof PsiPolyadicExpression && ((PsiPolyadicExpression)parent).getOperationTokenType() == JavaTokenType.PLUS) {
|
||||
final PsiType type = ((PsiPolyadicExpression)parent).getType();
|
||||
if (type != null && type.equalsToText(CommonClassNames.JAVA_LANG_STRING)) {
|
||||
final PsiElementFactory factory = JavaPsiFacade.getElementFactory(initializer.getProject());
|
||||
initializer = factory.createExpressionFromText("(" + initializer.getText() + ")", initializer);
|
||||
}
|
||||
}
|
||||
}
|
||||
solveVariableNameConflicts(initializer, ref, initializer);
|
||||
|
||||
Reference in New Issue
Block a user