IDEA-50592 'Surround with cast' for binary expressions (e.g. a+b) should parenthesize those expressions

This commit is contained in:
peter
2012-03-08 15:17:42 +04:00
parent 18579ef6bd
commit e51edaedf7
8 changed files with 35 additions and 4 deletions
@@ -25,6 +25,7 @@ import com.intellij.openapi.editor.RangeMarker;
import com.intellij.openapi.editor.ScrollType;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.util.TextRange;
import com.intellij.psi.PsiBinaryExpression;
import com.intellij.psi.PsiExpression;
import com.intellij.psi.PsiType;
import com.intellij.refactoring.introduceField.ElementToWorkOn;
@@ -44,7 +45,8 @@ class JavaWithCastSurrounder extends JavaExpressionSurrounder {
public TextRange surroundExpression(final Project project, final Editor editor, PsiExpression expr) throws IncorrectOperationException {
assert expr.isValid();
PsiType[] types = GuessManager.getInstance(project).guessTypeToCast(expr);
final Template template = generateTemplate(project, expr.getText(), types);
String exprText = expr instanceof PsiBinaryExpression ? "(" + expr.getText() + ")" : expr.getText();
final Template template = generateTemplate(project, exprText, types);
TextRange range;
if (expr.isPhysical()) {
range = expr.getTextRange();