From 58bca83555914cacf124acf0a687312bb547b85c Mon Sep 17 00:00:00 2001 From: Topi Reinio Date: Mon, 26 Oct 2020 23:37:08 +0100 Subject: qdoc: Fix handling of \fn signatures with unnamed parameters A misplaced 'i++' caused an error where names of documented parameters were shifted around if one or more of the parameters were unnamed. Fixing the above uncovered issues with handling of \fn commands with [tag] argument; improve and simplify related code. Finally, avoid redundant space characters when generating signatures with unnamed parameters or in 'All Members' page where parameter names are omitted. Fixes: QTBUG-87855 Change-Id: I526c89c10c66572b8c71106660f43346a4751e4e Reviewed-by: Paul Wicking --- .../expected_output/crossmodule/testtype-members.html | 8 ++++---- .../generatedoutput/expected_output/docbook/testqdoc-test.xml | 8 ++++++-- .../generatedoutput/expected_output/html/testqdoc-test.webxml | 5 +++-- .../expected_output/ignoresince/testqdoc-test.html | 6 +++--- .../generatedoutput/expected_output/properties/testcpp.index | 9 +++++---- .../properties/testqdoc-testderived-members.html | 10 +++++----- .../expected_output/scopedenum-docbook/testqdoc-test.xml | 8 ++++++-- .../expected_output/scopedenum/testqdoc-test.html | 6 +++--- .../expected_output/template/testqdoc-test.html | 6 +++--- tests/auto/qdoc/generatedoutput/expected_output/testcpp.index | 5 +++-- .../generatedoutput/expected_output/testqdoc-test-members.html | 8 ++++---- .../qdoc/generatedoutput/expected_output/testqdoc-test.html | 6 +++--- .../expected_output/testqdoc-testderived-members.html | 8 ++++---- .../auto/qdoc/generatedoutput/expected_output/testtagfile.tags | 2 +- tests/auto/qdoc/generatedoutput/testdata/testcpp/testcpp.cpp | 4 ++-- tests/auto/qdoc/generatedoutput/testdata/testcpp/testcpp.h | 2 +- 16 files changed, 56 insertions(+), 45 deletions(-) (limited to 'tests') diff --git a/tests/auto/qdoc/generatedoutput/expected_output/crossmodule/testtype-members.html b/tests/auto/qdoc/generatedoutput/expected_output/crossmodule/testtype-members.html index a0cd1df67..889ba1438 100644 --- a/tests/auto/qdoc/generatedoutput/expected_output/crossmodule/testtype-members.html +++ b/tests/auto/qdoc/generatedoutput/expected_output/crossmodule/testtype-members.html @@ -15,13 +15,13 @@
  • NotTypedef
  • typedef SomeType
  • operator=(TestQDoc::Test &&) : TestQDoc::Test &
  • -
  • funcPtr(bool , const char *) : void (*)(bool)
  • +
  • funcPtr(bool, const char *) : void (*)(bool)
  • inlineFunction()
  • nothing()
  • overload()
  • -
  • overload(bool )
  • -
  • someFunction(int ) : int
  • -
  • someFunctionDefaultArg(int , bool )
  • +
  • overload(bool)
  • +
  • someFunction(int, int) : int
  • +
  • someFunctionDefaultArg(int, bool)
  • virtualFun()
  • diff --git a/tests/auto/qdoc/generatedoutput/expected_output/docbook/testqdoc-test.xml b/tests/auto/qdoc/generatedoutput/expected_output/docbook/testqdoc-test.xml index ec4930b3f..dc69ea38a 100644 --- a/tests/auto/qdoc/generatedoutput/expected_output/docbook/testqdoc-test.xml +++ b/tests/auto/qdoc/generatedoutput/expected_output/docbook/testqdoc-test.xml @@ -132,17 +132,21 @@ An inline function, documented using the \fn QDoc command. -Test::int someFunction(int v = 0) +Test::int someFunction(int, int v = 0) int someFunction int + + + +int v 0 plain -int someFunction(int v) +int someFunction(int, int v) public active unspecified diff --git a/tests/auto/qdoc/generatedoutput/expected_output/html/testqdoc-test.webxml b/tests/auto/qdoc/generatedoutput/expected_output/html/testqdoc-test.webxml index c7b2e8126..64f024756 100644 --- a/tests/auto/qdoc/generatedoutput/expected_output/html/testqdoc-test.webxml +++ b/tests/auto/qdoc/generatedoutput/expected_output/html/testqdoc-test.webxml @@ -26,7 +26,7 @@ Use someFunction() instead. - + @@ -67,7 +67,8 @@ - + + Function that takes a parameter v. Also returns the value of v. diff --git a/tests/auto/qdoc/generatedoutput/expected_output/ignoresince/testqdoc-test.html b/tests/auto/qdoc/generatedoutput/expected_output/ignoresince/testqdoc-test.html index 7775e44c3..0d0c4081e 100644 --- a/tests/auto/qdoc/generatedoutput/expected_output/ignoresince/testqdoc-test.html +++ b/tests/auto/qdoc/generatedoutput/expected_output/ignoresince/testqdoc-test.html @@ -45,7 +45,7 @@ target_link_libraries(mytarget PUBLIC Qt::QDocTest) TestQDoc::Test &operator=(TestQDoc::Test &&other) void (*)(bool) funcPtr(bool b, const char *s) void inlineFunction() - int someFunction(int v = 0) + int someFunction(int, int v = 0) void someFunctionDefaultArg(int i, bool b = false) virtual void virtualFun() @@ -101,8 +101,8 @@ target_link_libraries(mytarget PUBLIC Qt::QDocTest)void Test::inlineFunction()

    An inline function, documented using the \fn QDoc command.

    - -

    [since Test 1.0] int Test::someFunction(int v = 0)

    + +

    [since Test 1.0] int Test::someFunction(int, int v = 0)

    Function that takes a parameter v. Also returns the value of v.

    This function was introduced in Test 1.0.

    diff --git a/tests/auto/qdoc/generatedoutput/expected_output/properties/testcpp.index b/tests/auto/qdoc/generatedoutput/expected_output/properties/testcpp.index index 35606d35d..5cee2e115 100644 --- a/tests/auto/qdoc/generatedoutput/expected_output/properties/testcpp.index +++ b/tests/auto/qdoc/generatedoutput/expected_output/properties/testcpp.index @@ -17,7 +17,7 @@ - + @@ -37,7 +37,8 @@ - + + @@ -55,7 +56,7 @@ - + @@ -63,7 +64,7 @@ - + diff --git a/tests/auto/qdoc/generatedoutput/expected_output/properties/testqdoc-testderived-members.html b/tests/auto/qdoc/generatedoutput/expected_output/properties/testqdoc-testderived-members.html index 9fed1358e..67bdf6a75 100644 --- a/tests/auto/qdoc/generatedoutput/expected_output/properties/testqdoc-testderived-members.html +++ b/tests/auto/qdoc/generatedoutput/expected_output/properties/testqdoc-testderived-members.html @@ -21,17 +21,17 @@
  • operator=(TestQDoc::Test &&) : TestQDoc::Test &
  • resetBoolProp()
  • setBindableProp(const QString &)
  • -
  • setBoolProp(bool )
  • +
  • setBoolProp(bool)
  • bindableProp() : QBindable<QString>
  • diff --git a/tests/auto/qdoc/generatedoutput/expected_output/scopedenum-docbook/testqdoc-test.xml b/tests/auto/qdoc/generatedoutput/expected_output/scopedenum-docbook/testqdoc-test.xml index 76c0acc35..9eb15331d 100644 --- a/tests/auto/qdoc/generatedoutput/expected_output/scopedenum-docbook/testqdoc-test.xml +++ b/tests/auto/qdoc/generatedoutput/expected_output/scopedenum-docbook/testqdoc-test.xml @@ -182,17 +182,21 @@ An inline function, documented using the \fn QDoc command.
    -Test::int someFunction(int v = 0) +Test::int someFunction(int, int v = 0) int someFunction int + + + +int v 0 plain -int someFunction(int v) +int someFunction(int, int v) public active unspecified diff --git a/tests/auto/qdoc/generatedoutput/expected_output/scopedenum/testqdoc-test.html b/tests/auto/qdoc/generatedoutput/expected_output/scopedenum/testqdoc-test.html index f61a05b3b..2edea5283 100644 --- a/tests/auto/qdoc/generatedoutput/expected_output/scopedenum/testqdoc-test.html +++ b/tests/auto/qdoc/generatedoutput/expected_output/scopedenum/testqdoc-test.html @@ -46,7 +46,7 @@ target_link_libraries(mytarget PUBLIC Qt::QDocTest) TestQDoc::Test &operator=(TestQDoc::Test &&other) void (*)(bool) funcPtr(bool b, const char *s) void inlineFunction() - int someFunction(int v = 0) + int someFunction(int, int v = 0) void someFunctionDefaultArg(int i, bool b = false) virtual void virtualFun() @@ -110,8 +110,8 @@ target_link_libraries(mytarget PUBLIC Qt::QDocTest)void Test::inlineFunction()

    An inline function, documented using the \fn QDoc command.

    - -

    int Test::someFunction(int v = 0)

    + +

    int Test::someFunction(int, int v = 0)

    Function that takes a parameter v. Also returns the value of v.

    diff --git a/tests/auto/qdoc/generatedoutput/expected_output/template/testqdoc-test.html b/tests/auto/qdoc/generatedoutput/expected_output/template/testqdoc-test.html index 1d12cc64d..497777d44 100644 --- a/tests/auto/qdoc/generatedoutput/expected_output/template/testqdoc-test.html +++ b/tests/auto/qdoc/generatedoutput/expected_output/template/testqdoc-test.html @@ -47,7 +47,7 @@ target_link_libraries(mytarget PUBLIC Qt::QDocTest) TestQDoc::Test &operator=(TestQDoc::Test &&other) void (*)(bool) funcPtr(bool b, const char *s) void inlineFunction() - int someFunction(int v = 0) + int someFunction(int, int v = 0) void someFunctionDefaultArg(int i, bool b = false) virtual void virtualFun() @@ -112,8 +112,8 @@ target_link_libraries(mytarget PUBLIC Qt::QDocTest)void Test::inlineFunction()

    An inline function, documented using the \fn QDoc command.

    - -

    int Test::someFunction(int v = 0)

    + +

    int Test::someFunction(int, int v = 0)

    Function that takes a parameter v. Also returns the value of v.

    diff --git a/tests/auto/qdoc/generatedoutput/expected_output/testcpp.index b/tests/auto/qdoc/generatedoutput/expected_output/testcpp.index index ef3dd6cbd..ac5c0228f 100644 --- a/tests/auto/qdoc/generatedoutput/expected_output/testcpp.index +++ b/tests/auto/qdoc/generatedoutput/expected_output/testcpp.index @@ -16,7 +16,7 @@ - + @@ -36,7 +36,8 @@ - + + diff --git a/tests/auto/qdoc/generatedoutput/expected_output/testqdoc-test-members.html b/tests/auto/qdoc/generatedoutput/expected_output/testqdoc-test-members.html index 03e834d7b..faf340ed3 100644 --- a/tests/auto/qdoc/generatedoutput/expected_output/testqdoc-test-members.html +++ b/tests/auto/qdoc/generatedoutput/expected_output/testqdoc-test-members.html @@ -14,12 +14,12 @@
  • typedef SomeType
  • Test()
  • operator=(TestQDoc::Test &&) : TestQDoc::Test &
  • -
  • funcPtr(bool , const char *) : void (*)(bool)
  • +
  • funcPtr(bool, const char *) : void (*)(bool)
  • inlineFunction()
  • overload()
  • -
  • overload(bool )
  • -
  • someFunction(int ) : int
  • -
  • someFunctionDefaultArg(int , bool )
  • +
  • overload(bool)
  • +
  • someFunction(int, int) : int
  • +
  • someFunctionDefaultArg(int, bool)
  • virtualFun()
  • diff --git a/tests/auto/qdoc/generatedoutput/expected_output/testqdoc-test.html b/tests/auto/qdoc/generatedoutput/expected_output/testqdoc-test.html index ada97f741..fb2226e51 100644 --- a/tests/auto/qdoc/generatedoutput/expected_output/testqdoc-test.html +++ b/tests/auto/qdoc/generatedoutput/expected_output/testqdoc-test.html @@ -45,7 +45,7 @@ target_link_libraries(mytarget PUBLIC Qt::QDocTest) TestQDoc::Test &operator=(TestQDoc::Test &&other) void (*)(bool) funcPtr(bool b, const char *s) void inlineFunction() - int someFunction(int v = 0) + int someFunction(int, int v = 0) void someFunctionDefaultArg(int i, bool b = false) virtual void virtualFun() @@ -101,8 +101,8 @@ target_link_libraries(mytarget PUBLIC Qt::QDocTest)void Test::inlineFunction()

    An inline function, documented using the \fn QDoc command.

    - -

    int Test::someFunction(int v = 0)

    + +

    int Test::someFunction(int, int v = 0)

    Function that takes a parameter v. Also returns the value of v.

    diff --git a/tests/auto/qdoc/generatedoutput/expected_output/testqdoc-testderived-members.html b/tests/auto/qdoc/generatedoutput/expected_output/testqdoc-testderived-members.html index e66538510..fe192a807 100644 --- a/tests/auto/qdoc/generatedoutput/expected_output/testqdoc-testderived-members.html +++ b/tests/auto/qdoc/generatedoutput/expected_output/testqdoc-testderived-members.html @@ -15,12 +15,12 @@
  • NotTypedef
  • typedef SomeType
  • operator=(TestQDoc::Test &&) : TestQDoc::Test &
  • -
  • funcPtr(bool , const char *) : void (*)(bool)
  • +
  • funcPtr(bool, const char *) : void (*)(bool)
  • inlineFunction()
  • overload()
  • -
  • overload(bool )
  • -
  • someFunction(int ) : int
  • -
  • someFunctionDefaultArg(int , bool )
  • +
  • overload(bool)
  • +
  • someFunction(int, int) : int
  • +
  • someFunctionDefaultArg(int, bool)
  • virtualFun()
  • diff --git a/tests/auto/qdoc/generatedoutput/expected_output/testtagfile.tags b/tests/auto/qdoc/generatedoutput/expected_output/testtagfile.tags index 67b710d68..16fbcdd98 100644 --- a/tests/auto/qdoc/generatedoutput/expected_output/testtagfile.tags +++ b/tests/auto/qdoc/generatedoutput/expected_output/testtagfile.tags @@ -114,7 +114,7 @@ someFunction testqdoc-test.html someFunction - (int v) + (int, int v) void diff --git a/tests/auto/qdoc/generatedoutput/testdata/testcpp/testcpp.cpp b/tests/auto/qdoc/generatedoutput/testdata/testcpp/testcpp.cpp index 66c4adba3..e025355af 100644 --- a/tests/auto/qdoc/generatedoutput/testdata/testcpp/testcpp.cpp +++ b/tests/auto/qdoc/generatedoutput/testdata/testcpp/testcpp.cpp @@ -152,7 +152,7 @@ void Test::someFunctionDefaultArg(int i, bool b = false) */ // Documented below with an \fn command. Unnecessary but we support it, and it's used. -int Test::someFunction(int v) +int Test::someFunction(int, int v) { return v; } @@ -164,7 +164,7 @@ int Test::someFunction(int v) */ /*! - \fn int Test::someFunction(int v = 0) + \fn int Test::someFunction(int, int v = 0) Function that takes a parameter \a v. Also returns the value of \a v. diff --git a/tests/auto/qdoc/generatedoutput/testdata/testcpp/testcpp.h b/tests/auto/qdoc/generatedoutput/testdata/testcpp/testcpp.h index 1be6082c9..8543593d2 100644 --- a/tests/auto/qdoc/generatedoutput/testdata/testcpp/testcpp.h +++ b/tests/auto/qdoc/generatedoutput/testdata/testcpp/testcpp.h @@ -58,7 +58,7 @@ using Specialized = Struct; typedef struct { int data; } SomeType; - int someFunction(int v = 0); + int someFunction(int, int v = 0); void someFunctionDefaultArg(int i, bool b); void obsoleteMember(); void anotherObsoleteMember(); -- cgit v1.2.3