From 23dac84cb035efccc18f6fefaf4f88d433770637 Mon Sep 17 00:00:00 2001 From: Dmitry Jemerov Date: Wed, 14 Apr 2010 21:54:41 +0400 Subject: [PATCH] changes in function signature are out-of-code-block changes (PY-821) --- python/src/com/jetbrains/python/PythonPsiManager.java | 3 ++- python/src/com/jetbrains/python/psi/PyFunction.java | 3 ++- python/src/com/jetbrains/python/psi/impl/PyFunctionImpl.java | 5 +++++ 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/python/src/com/jetbrains/python/PythonPsiManager.java b/python/src/com/jetbrains/python/PythonPsiManager.java index 8f2514db5179..830e0ea495a3 100644 --- a/python/src/com/jetbrains/python/PythonPsiManager.java +++ b/python/src/com/jetbrains/python/PythonPsiManager.java @@ -88,7 +88,8 @@ public class PythonPsiManager extends AbstractProjectComponent implements PsiTre } PsiElement pparent = element.getParent(); if (pparent instanceof PyFunction) { - return true; + final PyFunction pyFunction = (PyFunction)pparent; + return !(element == pyFunction.getParameterList() || element == pyFunction.getNameIdentifier()); } element = pparent; } diff --git a/python/src/com/jetbrains/python/psi/PyFunction.java b/python/src/com/jetbrains/python/psi/PyFunction.java index 1e5f9a6d0f73..ecb460e36913 100644 --- a/python/src/com/jetbrains/python/psi/PyFunction.java +++ b/python/src/com/jetbrains/python/psi/PyFunction.java @@ -1,6 +1,7 @@ package com.jetbrains.python.psi; import com.intellij.lang.ASTNode; +import com.intellij.psi.PsiNameIdentifierOwner; import com.intellij.psi.PsiNamedElement; import com.intellij.psi.StubBasedPsiElement; import com.jetbrains.python.codeInsight.controlflow.ScopeOwner; @@ -13,7 +14,7 @@ import org.jetbrains.annotations.Nullable; * * @author yole */ -public interface PyFunction extends PsiNamedElement, PyStatement, NameDefiner, PyDocStringOwner, StubBasedPsiElement, +public interface PyFunction extends PsiNamedElement, PsiNameIdentifierOwner, PyStatement, NameDefiner, PyDocStringOwner, StubBasedPsiElement, ScopeOwner { PyFunction[] EMPTY_ARRAY = new PyFunction[0]; diff --git a/python/src/com/jetbrains/python/psi/impl/PyFunctionImpl.java b/python/src/com/jetbrains/python/psi/impl/PyFunctionImpl.java index 9a25a4b4cf4a..49ca3e2dd960 100644 --- a/python/src/com/jetbrains/python/psi/impl/PyFunctionImpl.java +++ b/python/src/com/jetbrains/python/psi/impl/PyFunctionImpl.java @@ -49,6 +49,11 @@ public class PyFunctionImpl extends PyPresentableElementImpl imp return node != null ? node.getText() : null; } + public PsiElement getNameIdentifier() { + final ASTNode nameNode = getNameNode(); + return nameNode != null ? nameNode.getPsi() : null; + } + public PsiElement setName(@NotNull String name) throws IncorrectOperationException { final ASTNode nameElement = PyElementGenerator.getInstance(getProject()).createNameIdentifier(name); getNode().replaceChild(getNameNode(), nameElement);