summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CHANGES.current5
-rw-r--r--Examples/test-suite/doxygen_misc_constructs.i7
-rw-r--r--Examples/test-suite/doxygen_parsing.i10
-rw-r--r--Examples/test-suite/java/doxygen_misc_constructs_runme.java10
-rw-r--r--Examples/test-suite/java/doxygen_parsing_runme.java8
-rw-r--r--Source/CParse/parser.y6
6 files changed, 45 insertions, 1 deletions
diff --git a/CHANGES.current b/CHANGES.current
index c03b376c8..6581c4073 100644
--- a/CHANGES.current
+++ b/CHANGES.current
@@ -7,6 +7,11 @@ the issue number to the end of the URL: https://github.com/swig/swig/issues/
Version 4.2.0 (in progress)
===========================
+2022-12-06: wsfulton
+ #1636 Fix syntax error for misplaced Doxygen comment after struct/class member.
+ Fix syntax error using Doxygen member groups syntax, "///*}", when used after
+ final struct/class member.
+
2022-12-05: wsfulton
#2023 Fix garbled Doxygen post comments in parameter lists.
Fix syntax error parsing a trailing Doxygen comment in parameter lists.
diff --git a/Examples/test-suite/doxygen_misc_constructs.i b/Examples/test-suite/doxygen_misc_constructs.i
index 4702a9ae0..395d73513 100644
--- a/Examples/test-suite/doxygen_misc_constructs.i
+++ b/Examples/test-suite/doxygen_misc_constructs.i
@@ -176,6 +176,13 @@
*/
void showList() { }
+ /** Incorrectly documented members, these should be post document comments, Github issue #1636 */
+ struct IncorrectlyDocumentedMembers
+ {
+ int aaaa; //! really for bbbb value
+ int bbbb; //! not for bbbb value, is quietly ignored by Doxygen and SWIG
+ };
+
#include "doxygen_misc_constructs.h"
%}
diff --git a/Examples/test-suite/doxygen_parsing.i b/Examples/test-suite/doxygen_parsing.i
index 9df0097ec..ddb9961ad 100644
--- a/Examples/test-suite/doxygen_parsing.i
+++ b/Examples/test-suite/doxygen_parsing.i
@@ -133,6 +133,16 @@ struct SomeAnotherStruct
}
};
+struct Foo1636
+{
+ ///@{
+ /// groupmember1 description
+ int groupmember1;
+ /// groupmember2 description
+ int groupmember2;
+ ///@}
+};
+
struct Foo1750
{
/// @name Group name
diff --git a/Examples/test-suite/java/doxygen_misc_constructs_runme.java b/Examples/test-suite/java/doxygen_misc_constructs_runme.java
index 765baeb01..3735042ce 100644
--- a/Examples/test-suite/java/doxygen_misc_constructs_runme.java
+++ b/Examples/test-suite/java/doxygen_misc_constructs_runme.java
@@ -199,6 +199,16 @@ public class doxygen_misc_constructs_runme {
" <br>\n" +
" And this is not a list item any more.\n" +
"");
+
+ wantedComments.put("doxygen_misc_constructs.IncorrectlyDocumentedMembers",
+ " Incorrectly documented members, these should be post document comments, Github issue #1636");
+
+ wantedComments.put("doxygen_misc_constructs.IncorrectlyDocumentedMembers.setBbbb(int)",
+ " really for bbbb value");
+
+ wantedComments.put("doxygen_misc_constructs.IncorrectlyDocumentedMembers.getBbbb()",
+ " really for bbbb value");
+
wantedComments.put("doxygen_misc_constructs.doxygen_misc_constructs.isNoSpaceValidA()",
" This comment without space after '*' is valid in Doxygen.\n" +
"\n" +
diff --git a/Examples/test-suite/java/doxygen_parsing_runme.java b/Examples/test-suite/java/doxygen_parsing_runme.java
index 2c76001db..05828f226 100644
--- a/Examples/test-suite/java/doxygen_parsing_runme.java
+++ b/Examples/test-suite/java/doxygen_parsing_runme.java
@@ -132,6 +132,14 @@ public class doxygen_parsing_runme {
wantedComments.put("doxygen_parsing.doxygen_parsingConstants.CONSTANT_VALUE",
"The constant comment \n" +
"");
+ wantedComments.put("doxygen_parsing.Foo1636.getGroupmember1()",
+ "groupmember1 description");
+ wantedComments.put("doxygen_parsing.Foo1636.setGroupmember1(int)",
+ "groupmember1 description");
+ wantedComments.put("doxygen_parsing.Foo1636.getGroupmember2()",
+ "groupmember2 description");
+ wantedComments.put("doxygen_parsing.Foo1636.setGroupmember2(int)",
+ "groupmember2 description");
wantedComments.put("doxygen_parsing.Foo1750.getA()",
"");
wantedComments.put("doxygen_parsing.Foo1750.getB()",
diff --git a/Source/CParse/parser.y b/Source/CParse/parser.y
index f5311373c..d723616e7 100644
--- a/Source/CParse/parser.y
+++ b/Source/CParse/parser.y
@@ -4668,7 +4668,11 @@ cpp_members : cpp_member cpp_members {
} else {
$$ = $2;
}
- }
+ }
+ | cpp_member DOXYGENSTRING {
+ /* Misplaced doxygen string after a member, quietly ignore, like Doxygen does */
+ $$ = $1;
+ }
| EXTEND LBRACE {
extendmode = 1;
if (cplus_mode != CPLUS_PUBLIC) {