diff --git a/java/java-impl/src/com/intellij/refactoring/introduceField/AbstractInplaceIntroduceFieldPopup.java b/java/java-impl/src/com/intellij/refactoring/introduceField/AbstractInplaceIntroduceFieldPopup.java index 548eb3c038c2..61abe0a11c86 100644 --- a/java/java-impl/src/com/intellij/refactoring/introduceField/AbstractInplaceIntroduceFieldPopup.java +++ b/java/java-impl/src/com/intellij/refactoring/introduceField/AbstractInplaceIntroduceFieldPopup.java @@ -23,6 +23,7 @@ import com.intellij.psi.*; import com.intellij.psi.search.LocalSearchScope; import com.intellij.psi.search.SearchScope; import com.intellij.psi.util.PsiTreeUtil; +import com.intellij.refactoring.RefactoringActionHandler; import com.intellij.refactoring.introduceParameter.AbstractJavaInplaceIntroducer; import com.intellij.refactoring.ui.TypeSelectorManagerImpl; import com.intellij.refactoring.util.occurrences.OccurrenceManager; @@ -81,6 +82,14 @@ public abstract class AbstractInplaceIntroduceFieldPopup extends AbstractJavaInp return new LocalSearchScope(myParentClass); } + @Override + protected boolean startsOnTheSameElement(RefactoringActionHandler handler, PsiElement element) { + return super.startsOnTheSameElement(handler, element) || + myParentClass != null && + element instanceof PsiLocalVariable && + myParentClass.findFieldByName(((PsiLocalVariable)element).getName(), false) != null; + } + protected PsiElement getAnchorElement() { if (myAnchorIdx != -1 && myOccurrences[myAnchorIdx] != null) { return myOccurrences[myAnchorIdx].getParent();