From 5f4ae4375024d1a2c9df73e7e13263a5dbdded10 Mon Sep 17 00:00:00 2001 From: Dmitry Jemerov Date: Thu, 11 Mar 2010 22:04:13 +0300 Subject: [PATCH] do not provide class type for parameters decorated with @staticmethod (PY-663) --- .../jetbrains/python/psi/impl/PyNamedParameterImpl.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/python/src/com/jetbrains/python/psi/impl/PyNamedParameterImpl.java b/python/src/com/jetbrains/python/psi/impl/PyNamedParameterImpl.java index e1c0a2de3892..f47f7bd2be9a 100644 --- a/python/src/com/jetbrains/python/psi/impl/PyNamedParameterImpl.java +++ b/python/src/com/jetbrains/python/psi/impl/PyNamedParameterImpl.java @@ -15,6 +15,7 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import javax.swing.*; +import java.util.Set; /** * @author yole @@ -120,10 +121,12 @@ public class PyNamedParameterImpl extends PyPresentableElementImpl flags = PyUtil.detectDecorationsAndWrappersOf(func); + if (params [0] == this && !flags.contains(PyFunction.Flag.CLASSMETHOD) && !flags.contains(PyFunction.Flag.STATICMETHOD)) { + // must be 'self' final PyClass containingClass = func.getContainingClass(); if (containingClass != null) { - return new PyClassType(containingClass, false); // TODO: check for @classmethod or @staticmethod node above us + return new PyClassType(containingClass, false); } } if (isKeywordContainer()) {