summaryrefslogtreecommitdiff
path: root/Cython/Compiler/Nodes.py
diff options
context:
space:
mode:
Diffstat (limited to 'Cython/Compiler/Nodes.py')
-rw-r--r--Cython/Compiler/Nodes.py13
1 files changed, 6 insertions, 7 deletions
diff --git a/Cython/Compiler/Nodes.py b/Cython/Compiler/Nodes.py
index 682547222..6828f2ac8 100644
--- a/Cython/Compiler/Nodes.py
+++ b/Cython/Compiler/Nodes.py
@@ -2340,11 +2340,14 @@ class CFuncDefNode(FuncDefNode):
return self.py_func.code_object if self.py_func else None
def analyse_declarations(self, env):
+ is_property = False
if self.decorators:
for decorator in self.decorators:
func = decorator.decorator
if func.is_name:
- if func.name in ('property', 'staticmethod'):
+ if func.name == 'property':
+ is_property = True
+ elif func.name == 'staticmethod':
pass
else:
error(self.pos, "Cannot handle %s decorators yet" % func.name)
@@ -2421,16 +2424,12 @@ class CFuncDefNode(FuncDefNode):
type.is_const_method = self.is_const_method
type.is_static_method = self.is_static_method
- property = False
- if self.decorators:
- for _node in self.decorators:
- if _node.decorator.is_name and _node.decorator.name == 'property':
- property = True
+
self.entry = env.declare_cfunction(
name, type, self.pos,
cname=cname, visibility=self.visibility, api=self.api,
defining=self.body is not None, modifiers=self.modifiers,
- overridable=self.overridable, property=property)
+ overridable=self.overridable, is_property=is_property)
self.entry.inline_func_in_pxd = self.inline_in_pxd
self.return_type = type.return_type
if self.return_type.is_array and self.visibility != 'extern':