From 5f788d7c13c1e9979bb1882f95d623d27e2a40d7 Mon Sep 17 00:00:00 2001 From: Anna Kozlova Date: Mon, 5 Oct 2015 21:38:55 +0200 Subject: [PATCH] following IDEA-CR-5506: process ''+" priority operations the same way --- .../intellij/refactoring/util/InlineUtil.java | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/java/java-impl/src/com/intellij/refactoring/util/InlineUtil.java b/java/java-impl/src/com/intellij/refactoring/util/InlineUtil.java index 4a4366fe38b2..b4d5edc47178 100644 --- a/java/java-impl/src/com/intellij/refactoring/util/InlineUtil.java +++ b/java/java-impl/src/com/intellij/refactoring/util/InlineUtil.java @@ -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);