From 08508708c105f680628467ac6fb2bfcee47a2a07 Mon Sep 17 00:00:00 2001 From: anna Date: Mon, 21 Mar 2011 13:55:03 +0100 Subject: [PATCH] restore expression by name if it resolves to the wrong var ( IDEA-66847) --- .../introduceParameter/AbstractInplaceIntroducer.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/java/java-impl/src/com/intellij/refactoring/introduceParameter/AbstractInplaceIntroducer.java b/java/java-impl/src/com/intellij/refactoring/introduceParameter/AbstractInplaceIntroducer.java index 3290859e8c1b..722386e1b0cd 100644 --- a/java/java-impl/src/com/intellij/refactoring/introduceParameter/AbstractInplaceIntroducer.java +++ b/java/java-impl/src/com/intellij/refactoring/introduceParameter/AbstractInplaceIntroducer.java @@ -27,6 +27,7 @@ import com.intellij.openapi.editor.colors.EditorColorsManager; import com.intellij.openapi.editor.markup.RangeHighlighter; import com.intellij.openapi.editor.markup.TextAttributes; import com.intellij.openapi.project.Project; +import com.intellij.openapi.util.Comparing; import com.intellij.openapi.util.Pair; import com.intellij.openapi.util.TextRange; import com.intellij.psi.*; @@ -131,7 +132,8 @@ public abstract class AbstractInplaceIntroducer extends VariableInplaceIntroduce if (psiVariable == null || !psiVariable.isValid()) return null; final PsiElement refVariableElement = containingFile.findElementAt(marker.getStartOffset()); final PsiExpression expression = PsiTreeUtil.getParentOfType(refVariableElement, PsiReferenceExpression.class); - if (expression instanceof PsiReferenceExpression && ((PsiReferenceExpression)expression).resolve() == psiVariable) { + if (expression instanceof PsiReferenceExpression && (((PsiReferenceExpression)expression).resolve() == psiVariable || + Comparing.strEqual(psiVariable.getName(), ((PsiReferenceExpression)expression).getReferenceName()))) { return (PsiExpression)expression.replace(elementFactory.createExpressionFromText(exprText, psiVariable)); } return null;