docstrings for special methods and cpdef functions
authorRobert Bradshaw <robertwb@math.washington.edu>
Wed, 7 Nov 2007 17:48:16 +0000 (09:48 -0800)
committerRobert Bradshaw <robertwb@math.washington.edu>
Wed, 7 Nov 2007 17:48:16 +0000 (09:48 -0800)
Cython/Compiler/Nodes.py
Cython/Compiler/Parsing.py

index 2479dd877719965156f7d8dae2e6ceb48a3d3918..70d3b21479e839c08bb01d3849b61f0d2e46845e 100644 (file)
@@ -783,7 +783,7 @@ class CFuncDefNode(FuncDefNode):
                                    args = self.declarator.args,
                                    star_arg = None,
                                    starstar_arg = None,
-                                   doc = None, # self.doc,
+                                   doc = self.doc,
                                    body = py_func_body)
             self.py_func.analyse_declarations(env)
             # Reset scope entry the above cfunction
@@ -1026,7 +1026,7 @@ class DefNode(FuncDefNode):
             Naming.pymethdef_prefix + prefix + name
         if not Options.docstrings:
             self.entry.doc = None
-        elif not entry.is_special:
+        else:
             if Options.embed_pos_in_docstring:
                 entry.doc = 'File: %s (starting at line %s)'%relative_position(self.pos)
                 if not self.doc is None:
index 86cc03f10fed5e2c762a7e9d0dbbd95232d41c00..bd4b0eb7b12dee2c151f6487ba10365326be1e1a 100644 (file)
@@ -1862,12 +1862,13 @@ def p_c_func_or_var_declaration(s, level, pos, visibility = 'private', api = 0,
     if s.sy == ':':
         if level not in ('module', 'c_class'):
             s.error("C function definition not allowed here")
-        suite = p_suite(s, 'function', with_pseudo_doc = 1)
+        doc, suite = p_suite(s, 'function', with_doc = 1)
         result = Nodes.CFuncDefNode(pos,
             visibility = visibility,
             base_type = base_type,
             declarator = declarator, 
             body = suite,
+            doc = doc,
             modifiers = modifiers,
             api = api,
             overridable = overridable)