don't offer the callee of a call as a smart introduce variant (PY-1026)

This commit is contained in:
Dmitry Jemerov
2010-05-31 20:22:51 +04:00
parent cd4c10b43f
commit 3ca71669d6
@@ -140,7 +140,7 @@ abstract public class IntroduceHandler implements RefactoringActionHandler {
if (elementAtCaret instanceof PyStatement) {
break;
}
if (elementAtCaret instanceof PyExpression) {
if (elementAtCaret instanceof PyExpression && isValidIntroduceVariant(elementAtCaret)) {
expressions.add((PyExpression)elementAtCaret);
}
elementAtCaret = elementAtCaret.getParent();
@@ -165,6 +165,14 @@ abstract public class IntroduceHandler implements RefactoringActionHandler {
return false;
}
private static boolean isValidIntroduceVariant(PsiElement element) {
final PyCallExpression call = PsiTreeUtil.getParentOfType(element, PyCallExpression.class);
if (call != null && PsiTreeUtil.isAncestor(call.getCallee(), element, false)) {
return false;
}
return true;
}
private void performActionOnElement(Editor editor,
PsiElement element,
String name,