summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVadim Zeitlin <vz-swig@zeitlins.org>2014-08-11 00:34:30 +0200
committerVadim Zeitlin <vz-swig@zeitlins.org>2014-08-22 17:45:24 +0200
commit73f6971931d9e60d56dd575a4274c8e447ff799e (patch)
tree1f5f5b6e176d84e8a6c0f87a0211614a6ebc3163
parent52bd2a1921667b3ba191165e890c71d699fde045 (diff)
downloadswig-73f6971931d9e60d56dd575a4274c8e447ff799e.tar.gz
Also merge Doxygen comments for overloaded constructors in Python.
This was done for plain functions/methods but not constructors, which don't have "kind=function" attribute. Just don't check for "kind" at all, the presence of "sym:overloaded" should be good enough to indicate that it's an overloaded something. Also add a test for overloaded constructors documentation.
-rw-r--r--Examples/test-suite/doxygen_parsing.i6
-rw-r--r--Examples/test-suite/python/doxygen_parsing_runme.py9
-rw-r--r--Source/DoxygenTranslator/src/PyDocConverter.cpp2
3 files changed, 16 insertions, 1 deletions
diff --git a/Examples/test-suite/doxygen_parsing.i b/Examples/test-suite/doxygen_parsing.i
index d94c60222..670d8699b 100644
--- a/Examples/test-suite/doxygen_parsing.i
+++ b/Examples/test-suite/doxygen_parsing.i
@@ -39,6 +39,12 @@ int someVar=42;
class SomeAnotherClass
{
public:
+ /// First overloaded constructor.
+ SomeAnotherClass(int) { }
+
+ /// Second overloaded constructor.
+ SomeAnotherClass(const char*) { }
+
/**
* The class attribute comment
diff --git a/Examples/test-suite/python/doxygen_parsing_runme.py b/Examples/test-suite/python/doxygen_parsing_runme.py
index c850e419d..54e2667b3 100644
--- a/Examples/test-suite/python/doxygen_parsing_runme.py
+++ b/Examples/test-suite/python/doxygen_parsing_runme.py
@@ -17,6 +17,15 @@ commentVerifier.check(doxygen_parsing.SomeStruct.__doc__,
r"""
The struct comment
""")
+commentVerifier.check(doxygen_parsing.SomeAnotherClass.__init__.__doc__,
+ r"""
+ *Overload 1:*
+ First overloaded constructor.
+
+ *Overload 2:*
+ Second overloaded constructor.
+
+ """)
commentVerifier.check(doxygen_parsing.SomeAnotherClass.classMethod.__doc__,
r"""
The class method comment.
diff --git a/Source/DoxygenTranslator/src/PyDocConverter.cpp b/Source/DoxygenTranslator/src/PyDocConverter.cpp
index e7a55e1ba..6d904f6c4 100644
--- a/Source/DoxygenTranslator/src/PyDocConverter.cpp
+++ b/Source/DoxygenTranslator/src/PyDocConverter.cpp
@@ -781,7 +781,7 @@ String *PyDocConverter::makeDocumentation(Node *n)
currentNode = n;
// for overloaded functions we must concat documentation for underlying overloads
- if (Checkattr(n, "kind", "function") && Getattr(n, "sym:overloaded")) {
+ if (Getattr(n, "sym:overloaded")) {
// rewind to the first overload
while (Getattr(n, "sym:previousSibling"))
n = Getattr(n, "sym:previousSibling");