diff options
author | Topi Reinio <topi.reinio@qt.io> | 2020-10-14 16:47:08 +0200 |
---|---|---|
committer | Topi Reinio <topi.reinio@qt.io> | 2020-10-16 19:41:07 +0200 |
commit | 42979dea7669899b50bef2848d0e450d1258c9c1 (patch) | |
tree | 5f02e05720756b4183a8b9cf665ba9eaea86a993 /tests | |
parent | 9e0ce81d7abb7ff1aca379b79c9729bf5cb6fbe6 (diff) |
qdoc: Allow documenting implicitly generated special member functions
Implicitly generated class members such as default constructor are not
visible in the Clang AST, and QDoc failed to match \fn commands for
such functions.
Fix this by visiting the translation unit generated for the \fn command,
and constructing a temporary FunctionNode. If this temporary node is
of any of the special member types that can be implicit, add that
function as a child to the class node.
Add 'default' attribute for such functions in the generated docs.
Fixes: QTBUG-86984
Change-Id: I6c662e4ca030d80b68dd22f3639526093c27c20b
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
Diffstat (limited to 'tests')
17 files changed, 163 insertions, 1 deletions
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 327176bb9..a0cd1df67 100644 --- a/tests/auto/qdoc/generatedoutput/expected_output/crossmodule/testtype-members.html +++ b/tests/auto/qdoc/generatedoutput/expected_output/crossmodule/testtype-members.html @@ -14,6 +14,7 @@ <li class="fn"><span class="name"><b><a href="testqdoc-testderived.html#DerivedType-alias">DerivedType</a></b></span></li> <li class="fn"><span class="name"><b><a href="testqdoc-testderived.html#NotTypedef-alias">NotTypedef</a></b></span></li> <li class="fn">typedef <span class="name"><b><a href="testqdoc-test.html#SomeType-typedef">SomeType</a></b></span></li> +<li class="fn"><span class="name"><b><a href="testqdoc-test.html#operator-eq">operator=</a></b></span>(TestQDoc::Test &&) : TestQDoc::Test &</li> <li class="fn"><span class="name"><b><a href="testqdoc-test.html#funcPtr">funcPtr</a></b></span>(bool , const char *) : void (*)(bool)</li> <li class="fn"><span class="name"><b><a href="testqdoc-test.html#inlineFunction">inlineFunction</a></b></span>()</li> <li class="fn"><span class="name"><b><a href="testtype.html#nothing">nothing</a></b></span>()</li> 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 8e185d26c..ec4930b3f 100644 --- a/tests/auto/qdoc/generatedoutput/expected_output/docbook/testqdoc-test.xml +++ b/tests/auto/qdoc/generatedoutput/expected_output/docbook/testqdoc-test.xml @@ -59,6 +59,41 @@ <db:bridgehead renderas="sect2" xml:id="overload-1">[protected, since Test 1.2] Test::void overload(bool <db:emphasis>b</db:emphasis>)</db:bridgehead> <db:para>Overloads that share a documentation comment, optionally taking a parameter <db:code role="parameter">b</db:code>.</db:para> </db:section> +<db:section xml:id="Test"> +<db:title>[default] Test::Test()</db:title> +<db:constructorsynopsis> +<db:type></db:type> +<db:methodname>Test</db:methodname> +<db:modifier>default</db:modifier> +<db:void/> +<db:synopsisinfo db:role="meta">constructor</db:synopsisinfo> +<db:synopsisinfo db:role="signature">Test() = default</db:synopsisinfo> +<db:synopsisinfo db:role="access">public</db:synopsisinfo> +<db:synopsisinfo db:role="status">active</db:synopsisinfo> +<db:synopsisinfo db:role="threadsafeness">unspecified</db:synopsisinfo> +<db:synopsisinfo db:role="module">TestCPP</db:synopsisinfo> +</db:constructorsynopsis> +<db:para>Default constructor.</db:para> +</db:section> +<db:section xml:id="operator-eq"> +<db:title>[default] Test::TestQDoc::Test &operator=(TestQDoc::Test &&<db:emphasis>other</db:emphasis>)</db:title> +<db:methodsynopsis> +<db:type>TestQDoc::Test &</db:type> +<db:methodname>operator=</db:methodname> +<db:modifier>default</db:modifier> +<db:methodparam> +<db:type>TestQDoc::Test &&</db:type> +<db:parameter>other</db:parameter> +</db:methodparam> +<db:synopsisinfo db:role="meta">move-assign</db:synopsisinfo> +<db:synopsisinfo db:role="signature">TestQDoc::Test & operator=(TestQDoc::Test &&other) = default</db:synopsisinfo> +<db:synopsisinfo db:role="access">public</db:synopsisinfo> +<db:synopsisinfo db:role="status">active</db:synopsisinfo> +<db:synopsisinfo db:role="threadsafeness">unspecified</db:synopsisinfo> +<db:synopsisinfo db:role="module">TestCPP</db:synopsisinfo> +</db:methodsynopsis> +<db:para>Move-assigns <db:code role="parameter">other</db:code>.</db:para> +</db:section> <db:section xml:id="funcPtr"> <db:title>Test::void (*)(bool) funcPtr(bool <db:emphasis>b</db:emphasis>, const char *<db:emphasis>s</db:emphasis>)</db:title> <db:methodsynopsis> diff --git a/tests/auto/qdoc/generatedoutput/expected_output/dontdocument/dontdocument.qhp b/tests/auto/qdoc/generatedoutput/expected_output/dontdocument/dontdocument.qhp index 57bea1d0e..91a59da47 100644 --- a/tests/auto/qdoc/generatedoutput/expected_output/dontdocument/dontdocument.qhp +++ b/tests/auto/qdoc/generatedoutput/expected_output/dontdocument/dontdocument.qhp @@ -35,6 +35,7 @@ <keyword name="funcPtr" id="Test::funcPtr" ref="testqdoc-test.html#funcPtr"/> <keyword name="inlineFunction" id="Test::inlineFunction" ref="testqdoc-test.html#inlineFunction"/> <keyword name="obsoleteMember" id="Test::obsoleteMember" ref="testqdoc-test-obsolete.html#obsoleteMember"/> + <keyword name="operator=" id="Test::operator=" ref="testqdoc-test.html#operator-eq"/> <keyword name="operator==" id="operator==" ref="testqdoc-test.html#operator-eq-eq"/> <keyword name="overload" id="Test::overload" ref="testqdoc-test.html#overload"/> <keyword name="someFunction" id="Test::someFunction" ref="testqdoc-test.html#someFunction"/> 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 f84122127..c7b2e8126 100644 --- a/tests/auto/qdoc/generatedoutput/expected_output/html/testqdoc-test.webxml +++ b/tests/auto/qdoc/generatedoutput/expected_output/html/testqdoc-test.webxml @@ -11,6 +11,11 @@ <brief>A macro with argument <argument>x</argument>.</brief> </description> </function> + <function name="Test" fullname="TestQDoc::Test::Test" href="testqdoc-test.html#Test" status="active" access="public" documented="true" meta="constructor" virtual="non" const="false" static="false" final="false" override="false" type="" signature="Test()"> + <description> + <para>Default constructor.</para> + </description> + </function> <function name="anotherObsoleteMember" fullname="TestQDoc::Test::anotherObsoleteMember" href="testqdoc-test-obsolete.html#anotherObsoleteMember" status="obsolete" access="public" location="testcpp.h" documented="true" meta="plain" virtual="non" const="false" static="false" final="false" override="false" type="void" signature="void anotherObsoleteMember()"> <description> <para>Use <link raw="obsoleteMember()" href="testqdoc-test.html#obsoleteMember" type="function">obsoleteMember()</link> instead.</para> @@ -42,6 +47,12 @@ <para>Use <link raw="someFunction()" href="testqdoc-test.html#someFunction" type="function">someFunction()</link> instead.</para> </description> </function> + <function name="operator=" fullname="TestQDoc::Test::operator=" href="testqdoc-test.html#operator-eq" status="active" access="public" documented="true" meta="move-assign" virtual="non" const="false" static="false" final="false" override="false" type="TestQDoc::Test &" signature="TestQDoc::Test & operator=(TestQDoc::Test &&other)"> + <parameter type="TestQDoc::Test &&" name="other" default=""/> + <description> + <para>Move-assigns <argument>other</argument>.</para> + </description> + </function> <function name="operator==" href="testqdoc-test.html#operator-eq-eq" status="active" access="public" location="testcpp.h" documented="true" related="2" meta="plain" virtual="non" const="false" static="false" final="false" override="false" type="bool" signature="bool operator==(const TestQDoc::Test &lhs, const TestQDoc::Test &rhs)"> <parameter type="const TestQDoc::Test &" name="lhs" default=""/> <parameter type="const TestQDoc::Test &" name="rhs" default=""/> 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 262020fb1..7775e44c3 100644 --- a/tests/auto/qdoc/generatedoutput/expected_output/ignoresince/testqdoc-test.html +++ b/tests/auto/qdoc/generatedoutput/expected_output/ignoresince/testqdoc-test.html @@ -41,6 +41,8 @@ target_link_libraries(mytarget PUBLIC Qt::QDocTest)</td></tr><tr><td class="memI <a name="public-functions"></a> <h2 id="public-functions">Public Functions</h2> <div class="table"><table class="alignedsummary"> +<tr><td class="memItemLeft rightAlign topAlign"> </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#Test">Test</a></b>()</td></tr> +<tr><td class="memItemLeft rightAlign topAlign"> TestQDoc::Test &</td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#operator-eq">operator=</a></b>(TestQDoc::Test &&<i>other</i>)</td></tr> <tr><td class="memItemLeft rightAlign topAlign"> void (*)(bool) </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#funcPtr">funcPtr</a></b>(bool <i>b</i>, const char *<i>s</i>)</td></tr> <tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#inlineFunction">inlineFunction</a></b>()</td></tr> <tr><td class="memItemLeft rightAlign topAlign"> int </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#someFunction">someFunction</a></b>(int <i>v</i> = 0)</td></tr> @@ -83,6 +85,14 @@ target_link_libraries(mytarget PUBLIC Qt::QDocTest)</td></tr><tr><td class="memI <h3 class="fn fngroupitem" id="overload"><a name="overload"></a><code>[protected] </code><span class="type">void</span> Test::<span class="name">overload</span>()</h3><h3 class="fn fngroupitem" id="overload-1"><a name="overload-1"></a><code>[protected, since Test 1.2] </code><span class="type">void</span> Test::<span class="name">overload</span>(<span class="type">bool</span> <i>b</i>)</h3></div> <p>Overloads that share a documentation comment, optionally taking a parameter <i>b</i>.</p> <!-- @@@ --> +<!-- $$$Test[overload1]$$$Test --> +<h3 class="fn" id="Test"><a name="Test"></a><code>[default] </code>Test::<span class="name">Test</span>()</h3> +<p>Default constructor.</p> +<!-- @@@Test --> +<!-- $$$operator=[overload1]$$$operator=TestQDoc::Test&& --> +<h3 class="fn" id="operator-eq"><a name="operator-eq"></a><code>[default] </code><span class="type"><a href="testqdoc-test.html">TestQDoc::Test</a></span> &Test::<span class="name">operator=</span>(<span class="type"><a href="testqdoc-test.html">TestQDoc::Test</a></span> &&<i>other</i>)</h3> +<p>Move-assigns <i>other</i>.</p> +<!-- @@@operator= --> <!-- $$$funcPtr[overload1]$$$funcPtrboolconstchar* --> <h3 class="fn" id="funcPtr"><a name="funcPtr"></a><span class="type">void</span> (*)(<span class="type">bool</span>) Test::<span class="name">funcPtr</span>(<span class="type">bool</span> <i>b</i>, const <span class="type">char</span> *<i>s</i>)</h3> <p>Returns a pointer to a function that takes a boolean. Uses <i>b</i> and <i>s</i>.</p> diff --git a/tests/auto/qdoc/generatedoutput/expected_output/properties/testcpp.index b/tests/auto/qdoc/generatedoutput/expected_output/properties/testcpp.index index e757ff4de..8d8d7837b 100644 --- a/tests/auto/qdoc/generatedoutput/expected_output/properties/testcpp.index +++ b/tests/auto/qdoc/generatedoutput/expected_output/properties/testcpp.index @@ -14,6 +14,7 @@ <function name="QDOCTEST_MACRO2" href="testqdoc-test.html#QDOCTEST_MACRO2" status="active" access="public" documented="true" related="1" since="Test 1.1" meta="macrowithparams" virtual="non" const="false" static="false" final="false" override="false" type="" brief="A macro with argument x" signature="QDOCTEST_MACRO2(int &x)" groups="testgroup"> <parameter type="int &" name="x" default=""/> </function> + <function name="Test" fullname="TestQDoc::Test::Test" href="testqdoc-test.html#Test" status="active" access="public" documented="true" meta="constructor" virtual="non" const="false" static="false" final="false" override="false" type="" signature="Test()"/> <function name="anotherObsoleteMember" fullname="TestQDoc::Test::anotherObsoleteMember" href="testqdoc-test-obsolete.html#anotherObsoleteMember" status="obsolete" access="public" location="testcpp.h" documented="true" meta="plain" virtual="non" const="false" static="false" final="false" override="false" type="void" signature="void anotherObsoleteMember()"/> <function name="deprecatedMember" fullname="TestQDoc::Test::deprecatedMember" href="testqdoc-test-obsolete.html#deprecatedMember" status="obsolete" access="public" location="testcpp.h" documented="true" meta="plain" virtual="non" const="false" static="false" final="false" override="false" type="void" signature="void deprecatedMember()"/> <function name="func" fullname="TestQDoc::Test::func" href="testqdoc-test.html#func" status="internal" access="private" location="testcpp.h" meta="plain" virtual="non" const="false" static="false" final="false" override="false" type="void" signature="void func(bool )"> @@ -25,6 +26,9 @@ </function> <function name="inlineFunction" fullname="TestQDoc::Test::inlineFunction" href="testqdoc-test.html#inlineFunction" status="active" access="public" location="testcpp.h" documented="true" meta="plain" virtual="non" const="false" static="false" final="false" override="false" type="void" brief="An inline function, documented using the \fn QDoc command" signature="void inlineFunction()"/> <function name="obsoleteMember" fullname="TestQDoc::Test::obsoleteMember" href="testqdoc-test-obsolete.html#obsoleteMember" status="obsolete" access="public" location="testcpp.h" documented="true" meta="plain" virtual="non" const="false" static="false" final="false" override="false" type="void" signature="void obsoleteMember()"/> + <function name="operator=" fullname="TestQDoc::Test::operator=" href="testqdoc-test.html#operator-eq" status="active" access="public" documented="true" meta="move-assign" virtual="non" const="false" static="false" final="false" override="false" type="TestQDoc::Test &" signature="TestQDoc::Test & operator=(TestQDoc::Test &&other)"> + <parameter type="TestQDoc::Test &&" name="other" default=""/> + </function> <function name="operator==" href="testqdoc-test.html#operator-eq-eq" status="active" access="public" location="testcpp.h" documented="true" related="2" meta="plain" virtual="non" const="false" static="false" final="false" override="false" type="bool" signature="bool operator==(const TestQDoc::Test &lhs, const TestQDoc::Test &rhs)"> <parameter type="const TestQDoc::Test &" name="lhs" default=""/> <parameter type="const TestQDoc::Test &" name="rhs" default=""/> 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 4c6d4bb14..452399c69 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 @@ -17,12 +17,13 @@ <li class="fn">typedef <span class="name"><b><a href="testqdoc-test.html#SomeType-typedef">SomeType</a></b></span></li> <li class="fn"><span class="name"><b><a href="testqdoc-testderived.html#bindableProp-prop">bindablePropChanged</a></b></span>()</li> <li class="fn"><span class="name"><b><a href="testqdoc-testderived.html#boolProp-prop">boolPropChanged</a></b></span>()</li> +<li class="fn"><span class="name"><b><a href="testqdoc-test.html#operator-eq">operator=</a></b></span>(TestQDoc::Test &&) : TestQDoc::Test &</li> <li class="fn"><span class="name"><b><a href="testqdoc-testderived.html#boolProp-prop">resetBoolProp</a></b></span>()</li> <li class="fn"><span class="name"><b><a href="testqdoc-testderived.html#bindableProp-prop">setBindableProp</a></b></span>(const QString &)</li> <li class="fn"><span class="name"><b><a href="testqdoc-testderived.html#boolProp-prop">setBoolProp</a></b></span>(bool )</li> <li class="fn"><span class="name"><b><a href="testqdoc-testderived.html#bindableProp-prop">bindableProp</a></b></span>() : QBindable<QString></li> -<li class="fn"><span class="name"><b><a href="testqdoc-testderived.html#boolProp-prop">boolProp</a></b></span>() : bool</li> </ul></td><td class="topAlign"><ul> +<li class="fn"><span class="name"><b><a href="testqdoc-testderived.html#boolProp-prop">boolProp</a></b></span>() : bool</li> <li class="fn"><span class="name"><b><a href="testqdoc-test.html#funcPtr">funcPtr</a></b></span>(bool , const char *) : void (*)(bool)</li> <li class="fn"><span class="name"><b><a href="testqdoc-testderived.html#intProp-prop">getInt</a></b></span>() : int *</li> <li class="fn"><span class="name"><b><a href="testqdoc-test.html#inlineFunction">inlineFunction</a></b></span>()</li> 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 7b1efb8e7..76c0acc35 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 @@ -109,6 +109,41 @@ <db:bridgehead renderas="sect2" xml:id="overload-1">[protected, since Test 1.2] Test::void overload(bool <db:emphasis>b</db:emphasis>)</db:bridgehead> <db:para>Overloads that share a documentation comment, optionally taking a parameter <db:code role="parameter">b</db:code>.</db:para> </db:section> +<db:section xml:id="Test"> +<db:title>[default] Test::Test()</db:title> +<db:constructorsynopsis> +<db:type></db:type> +<db:methodname>Test</db:methodname> +<db:modifier>default</db:modifier> +<db:void/> +<db:synopsisinfo db:role="meta">constructor</db:synopsisinfo> +<db:synopsisinfo db:role="signature">Test() = default</db:synopsisinfo> +<db:synopsisinfo db:role="access">public</db:synopsisinfo> +<db:synopsisinfo db:role="status">active</db:synopsisinfo> +<db:synopsisinfo db:role="threadsafeness">unspecified</db:synopsisinfo> +<db:synopsisinfo db:role="module">TestCPP</db:synopsisinfo> +</db:constructorsynopsis> +<db:para>Default constructor.</db:para> +</db:section> +<db:section xml:id="operator-eq"> +<db:title>[default] Test::TestQDoc::Test &operator=(TestQDoc::Test &&<db:emphasis>other</db:emphasis>)</db:title> +<db:methodsynopsis> +<db:type>TestQDoc::Test &</db:type> +<db:methodname>operator=</db:methodname> +<db:modifier>default</db:modifier> +<db:methodparam> +<db:type>TestQDoc::Test &&</db:type> +<db:parameter>other</db:parameter> +</db:methodparam> +<db:synopsisinfo db:role="meta">move-assign</db:synopsisinfo> +<db:synopsisinfo db:role="signature">TestQDoc::Test & operator=(TestQDoc::Test &&other) = default</db:synopsisinfo> +<db:synopsisinfo db:role="access">public</db:synopsisinfo> +<db:synopsisinfo db:role="status">active</db:synopsisinfo> +<db:synopsisinfo db:role="threadsafeness">unspecified</db:synopsisinfo> +<db:synopsisinfo db:role="module">TestCPP</db:synopsisinfo> +</db:methodsynopsis> +<db:para>Move-assigns <db:code role="parameter">other</db:code>.</db:para> +</db:section> <db:section xml:id="funcPtr"> <db:title>Test::void (*)(bool) funcPtr(bool <db:emphasis>b</db:emphasis>, const char *<db:emphasis>s</db:emphasis>)</db:title> <db:methodsynopsis> 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 1cf5c2d18..f61a05b3b 100644 --- a/tests/auto/qdoc/generatedoutput/expected_output/scopedenum/testqdoc-test.html +++ b/tests/auto/qdoc/generatedoutput/expected_output/scopedenum/testqdoc-test.html @@ -42,6 +42,8 @@ target_link_libraries(mytarget PUBLIC Qt::QDocTest)</td></tr><tr><td class="memI <a name="public-functions"></a> <h2 id="public-functions">Public Functions</h2> <div class="table"><table class="alignedsummary"> +<tr><td class="memItemLeft rightAlign topAlign"> </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#Test">Test</a></b>()</td></tr> +<tr><td class="memItemLeft rightAlign topAlign"> TestQDoc::Test &</td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#operator-eq">operator=</a></b>(TestQDoc::Test &&<i>other</i>)</td></tr> <tr><td class="memItemLeft rightAlign topAlign"> void (*)(bool) </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#funcPtr">funcPtr</a></b>(bool <i>b</i>, const char *<i>s</i>)</td></tr> <tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#inlineFunction">inlineFunction</a></b>()</td></tr> <tr><td class="memItemLeft rightAlign topAlign"> int </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#someFunction">someFunction</a></b>(int <i>v</i> = 0)</td></tr> @@ -92,6 +94,14 @@ target_link_libraries(mytarget PUBLIC Qt::QDocTest)</td></tr><tr><td class="memI <h3 class="fn fngroupitem" id="overload"><a name="overload"></a><code>[protected] </code><span class="type">void</span> Test::<span class="name">overload</span>()</h3><h3 class="fn fngroupitem" id="overload-1"><a name="overload-1"></a><code>[protected, since Test 1.2] </code><span class="type">void</span> Test::<span class="name">overload</span>(<span class="type">bool</span> <i>b</i>)</h3></div> <p>Overloads that share a documentation comment, optionally taking a parameter <i>b</i>.</p> <!-- @@@ --> +<!-- $$$Test[overload1]$$$Test --> +<h3 class="fn" id="Test"><a name="Test"></a><code>[default] </code>Test::<span class="name">Test</span>()</h3> +<p>Default constructor.</p> +<!-- @@@Test --> +<!-- $$$operator=[overload1]$$$operator=TestQDoc::Test&& --> +<h3 class="fn" id="operator-eq"><a name="operator-eq"></a><code>[default] </code><span class="type"><a href="testqdoc-test.html">TestQDoc::Test</a></span> &Test::<span class="name">operator=</span>(<span class="type"><a href="testqdoc-test.html">TestQDoc::Test</a></span> &&<i>other</i>)</h3> +<p>Move-assigns <i>other</i>.</p> +<!-- @@@operator= --> <!-- $$$funcPtr[overload1]$$$funcPtrboolconstchar* --> <h3 class="fn" id="funcPtr"><a name="funcPtr"></a><span class="type">void</span> (*)(<span class="type">bool</span>) Test::<span class="name">funcPtr</span>(<span class="type">bool</span> <i>b</i>, const <span class="type">char</span> *<i>s</i>)</h3> <p>Returns a pointer to a function that takes a boolean. Uses <i>b</i> and <i>s</i>.</p> 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 b1939c994..1d12cc64d 100644 --- a/tests/auto/qdoc/generatedoutput/expected_output/template/testqdoc-test.html +++ b/tests/auto/qdoc/generatedoutput/expected_output/template/testqdoc-test.html @@ -43,6 +43,8 @@ target_link_libraries(mytarget PUBLIC Qt::QDocTest)</td></tr><tr><td class="memI <a name="public-functions"></a> <h2 id="public-functions">Public Functions</h2> <div class="table"><table class="alignedsummary"> +<tr><td class="memItemLeft rightAlign topAlign"> </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#Test">Test</a></b>()</td></tr> +<tr><td class="memItemLeft rightAlign topAlign"> TestQDoc::Test &</td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#operator-eq">operator=</a></b>(TestQDoc::Test &&<i>other</i>)</td></tr> <tr><td class="memItemLeft rightAlign topAlign"> void (*)(bool) </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#funcPtr">funcPtr</a></b>(bool <i>b</i>, const char *<i>s</i>)</td></tr> <tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#inlineFunction">inlineFunction</a></b>()</td></tr> <tr><td class="memItemLeft rightAlign topAlign"> int </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#someFunction">someFunction</a></b>(int <i>v</i> = 0)</td></tr> @@ -90,6 +92,14 @@ target_link_libraries(mytarget PUBLIC Qt::QDocTest)</td></tr><tr><td class="memI <h3 class="fn fngroupitem" id="overload"><a name="overload"></a><code>[protected] </code><span class="type">void</span> Test::<span class="name">overload</span>()</h3><h3 class="fn fngroupitem" id="overload-1"><a name="overload-1"></a><code>[protected, since Test 1.2] </code><span class="type">void</span> Test::<span class="name">overload</span>(<span class="type">bool</span> <i>b</i>)</h3></div> <p>Overloads that share a documentation comment, optionally taking a parameter <i>b</i>.</p> <!-- @@@ --> +<!-- $$$Test[overload1]$$$Test --> +<h3 class="fn" id="Test"><a name="Test"></a><code>[default] </code>Test::<span class="name">Test</span>()</h3> +<p>Default constructor.</p> +<!-- @@@Test --> +<!-- $$$operator=[overload1]$$$operator=TestQDoc::Test&& --> +<h3 class="fn" id="operator-eq"><a name="operator-eq"></a><code>[default] </code><span class="type"><a href="testqdoc-test.html">TestQDoc::Test</a></span> &Test::<span class="name">operator=</span>(<span class="type"><a href="testqdoc-test.html">TestQDoc::Test</a></span> &&<i>other</i>)</h3> +<p>Move-assigns <i>other</i>.</p> +<!-- @@@operator= --> <!-- $$$funcPtr[overload1]$$$funcPtrboolconstchar* --> <h3 class="fn" id="funcPtr"><a name="funcPtr"></a><span class="type">void</span> (*)(<span class="type">bool</span>) Test::<span class="name">funcPtr</span>(<span class="type">bool</span> <i>b</i>, const <span class="type">char</span> *<i>s</i>)</h3> <p>Returns a pointer to a function that takes a boolean. Uses <i>b</i> and <i>s</i>.</p> diff --git a/tests/auto/qdoc/generatedoutput/expected_output/test.qhp b/tests/auto/qdoc/generatedoutput/expected_output/test.qhp index 5745fdc64..e87431660 100644 --- a/tests/auto/qdoc/generatedoutput/expected_output/test.qhp +++ b/tests/auto/qdoc/generatedoutput/expected_output/test.qhp @@ -111,6 +111,7 @@ <keyword name="name" id="Type::name" ref="qml-qdoc-test-type.html#name-prop"/> <keyword name="obsoleteMember" id="Test::obsoleteMember" ref="testqdoc-test-obsolete.html#obsoleteMember"/> <keyword name="on" id="Switch::on" ref="qml-uicomponents-switch.html#on-prop"/> + <keyword name="operator=" id="Test::operator=" ref="testqdoc-test.html#operator-eq"/> <keyword name="operator==" id="operator==" ref="testqdoc-test.html#operator-eq-eq"/> <keyword name="overload" id="Test::overload" ref="testqdoc-test.html#overload"/> <keyword name="rear" id="AbstractParent::rear" ref="qml-qdoc-test-abstractparent.html#rear-method"/> diff --git a/tests/auto/qdoc/generatedoutput/expected_output/testcpp.index b/tests/auto/qdoc/generatedoutput/expected_output/testcpp.index index 1f7d21c0c..ef3dd6cbd 100644 --- a/tests/auto/qdoc/generatedoutput/expected_output/testcpp.index +++ b/tests/auto/qdoc/generatedoutput/expected_output/testcpp.index @@ -13,6 +13,7 @@ <function name="QDOCTEST_MACRO2" href="testqdoc-test.html#QDOCTEST_MACRO2" status="active" access="public" documented="true" related="1" since="Test 1.1" meta="macrowithparams" virtual="non" const="false" static="false" final="false" override="false" type="" brief="A macro with argument x" signature="QDOCTEST_MACRO2(int &x)" groups="testgroup"> <parameter type="int &" name="x" default=""/> </function> + <function name="Test" fullname="TestQDoc::Test::Test" href="testqdoc-test.html#Test" status="active" access="public" documented="true" meta="constructor" virtual="non" const="false" static="false" final="false" override="false" type="" signature="Test()"/> <function name="anotherObsoleteMember" fullname="TestQDoc::Test::anotherObsoleteMember" href="testqdoc-test-obsolete.html#anotherObsoleteMember" status="obsolete" access="public" location="testcpp.h" documented="true" meta="plain" virtual="non" const="false" static="false" final="false" override="false" type="void" signature="void anotherObsoleteMember()"/> <function name="deprecatedMember" fullname="TestQDoc::Test::deprecatedMember" href="testqdoc-test-obsolete.html#deprecatedMember" status="obsolete" access="public" location="testcpp.h" documented="true" meta="plain" virtual="non" const="false" static="false" final="false" override="false" type="void" signature="void deprecatedMember()"/> <function name="func" fullname="TestQDoc::Test::func" href="testqdoc-test.html#func" status="internal" access="private" location="testcpp.h" meta="plain" virtual="non" const="false" static="false" final="false" override="false" type="void" signature="void func(bool )"> @@ -24,6 +25,9 @@ </function> <function name="inlineFunction" fullname="TestQDoc::Test::inlineFunction" href="testqdoc-test.html#inlineFunction" status="active" access="public" location="testcpp.h" documented="true" meta="plain" virtual="non" const="false" static="false" final="false" override="false" type="void" brief="An inline function, documented using the \fn QDoc command" signature="void inlineFunction()"/> <function name="obsoleteMember" fullname="TestQDoc::Test::obsoleteMember" href="testqdoc-test-obsolete.html#obsoleteMember" status="obsolete" access="public" location="testcpp.h" documented="true" meta="plain" virtual="non" const="false" static="false" final="false" override="false" type="void" signature="void obsoleteMember()"/> + <function name="operator=" fullname="TestQDoc::Test::operator=" href="testqdoc-test.html#operator-eq" status="active" access="public" documented="true" meta="move-assign" virtual="non" const="false" static="false" final="false" override="false" type="TestQDoc::Test &" signature="TestQDoc::Test & operator=(TestQDoc::Test &&other)"> + <parameter type="TestQDoc::Test &&" name="other" default=""/> + </function> <function name="operator==" href="testqdoc-test.html#operator-eq-eq" status="active" access="public" location="testcpp.h" documented="true" related="2" meta="plain" virtual="non" const="false" static="false" final="false" override="false" type="bool" signature="bool operator==(const TestQDoc::Test &lhs, const TestQDoc::Test &rhs)"> <parameter type="const TestQDoc::Test &" name="lhs" default=""/> <parameter type="const TestQDoc::Test &" name="rhs" default=""/> 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 4dbdd1e41..03e834d7b 100644 --- a/tests/auto/qdoc/generatedoutput/expected_output/testqdoc-test-members.html +++ b/tests/auto/qdoc/generatedoutput/expected_output/testqdoc-test-members.html @@ -12,6 +12,8 @@ <p>This is the complete list of members for <a href="testqdoc-test.html">TestQDoc::Test</a>, including inherited members.</p> <ul> <li class="fn">typedef <span class="name"><b><a href="testqdoc-test.html#SomeType-typedef">SomeType</a></b></span></li> +<li class="fn"><span class="name"><b><a href="testqdoc-test.html#Test">Test</a></b></span>()</li> +<li class="fn"><span class="name"><b><a href="testqdoc-test.html#operator-eq">operator=</a></b></span>(TestQDoc::Test &&) : TestQDoc::Test &</li> <li class="fn"><span class="name"><b><a href="testqdoc-test.html#funcPtr">funcPtr</a></b></span>(bool , const char *) : void (*)(bool)</li> <li class="fn"><span class="name"><b><a href="testqdoc-test.html#inlineFunction">inlineFunction</a></b></span>()</li> <li class="fn"><span class="name"><b><a href="testqdoc-test.html#overload">overload</a></b></span>()</li> diff --git a/tests/auto/qdoc/generatedoutput/expected_output/testqdoc-test.html b/tests/auto/qdoc/generatedoutput/expected_output/testqdoc-test.html index 23627fc9d..ada97f741 100644 --- a/tests/auto/qdoc/generatedoutput/expected_output/testqdoc-test.html +++ b/tests/auto/qdoc/generatedoutput/expected_output/testqdoc-test.html @@ -41,6 +41,8 @@ target_link_libraries(mytarget PUBLIC Qt::QDocTest)</td></tr><tr><td class="memI <a name="public-functions"></a> <h2 id="public-functions">Public Functions</h2> <div class="table"><table class="alignedsummary"> +<tr><td class="memItemLeft rightAlign topAlign"> </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#Test">Test</a></b>()</td></tr> +<tr><td class="memItemLeft rightAlign topAlign"> TestQDoc::Test &</td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#operator-eq">operator=</a></b>(TestQDoc::Test &&<i>other</i>)</td></tr> <tr><td class="memItemLeft rightAlign topAlign"> void (*)(bool) </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#funcPtr">funcPtr</a></b>(bool <i>b</i>, const char *<i>s</i>)</td></tr> <tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#inlineFunction">inlineFunction</a></b>()</td></tr> <tr><td class="memItemLeft rightAlign topAlign"> int </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#someFunction">someFunction</a></b>(int <i>v</i> = 0)</td></tr> @@ -83,6 +85,14 @@ target_link_libraries(mytarget PUBLIC Qt::QDocTest)</td></tr><tr><td class="memI <h3 class="fn fngroupitem" id="overload"><a name="overload"></a><code>[protected] </code><span class="type">void</span> Test::<span class="name">overload</span>()</h3><h3 class="fn fngroupitem" id="overload-1"><a name="overload-1"></a><code>[protected, since Test 1.2] </code><span class="type">void</span> Test::<span class="name">overload</span>(<span class="type">bool</span> <i>b</i>)</h3></div> <p>Overloads that share a documentation comment, optionally taking a parameter <i>b</i>.</p> <!-- @@@ --> +<!-- $$$Test[overload1]$$$Test --> +<h3 class="fn" id="Test"><a name="Test"></a><code>[default] </code>Test::<span class="name">Test</span>()</h3> +<p>Default constructor.</p> +<!-- @@@Test --> +<!-- $$$operator=[overload1]$$$operator=TestQDoc::Test&& --> +<h3 class="fn" id="operator-eq"><a name="operator-eq"></a><code>[default] </code><span class="type"><a href="testqdoc-test.html">TestQDoc::Test</a></span> &Test::<span class="name">operator=</span>(<span class="type"><a href="testqdoc-test.html">TestQDoc::Test</a></span> &&<i>other</i>)</h3> +<p>Move-assigns <i>other</i>.</p> +<!-- @@@operator= --> <!-- $$$funcPtr[overload1]$$$funcPtrboolconstchar* --> <h3 class="fn" id="funcPtr"><a name="funcPtr"></a><span class="type">void</span> (*)(<span class="type">bool</span>) Test::<span class="name">funcPtr</span>(<span class="type">bool</span> <i>b</i>, const <span class="type">char</span> *<i>s</i>)</h3> <p>Returns a pointer to a function that takes a boolean. Uses <i>b</i> and <i>s</i>.</p> 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 efd0a279c..e66538510 100644 --- a/tests/auto/qdoc/generatedoutput/expected_output/testqdoc-testderived-members.html +++ b/tests/auto/qdoc/generatedoutput/expected_output/testqdoc-testderived-members.html @@ -14,6 +14,7 @@ <li class="fn"><span class="name"><b><a href="testqdoc-testderived.html#DerivedType-alias">DerivedType</a></b></span></li> <li class="fn"><span class="name"><b><a href="testqdoc-testderived.html#NotTypedef-alias">NotTypedef</a></b></span></li> <li class="fn">typedef <span class="name"><b><a href="testqdoc-test.html#SomeType-typedef">SomeType</a></b></span></li> +<li class="fn"><span class="name"><b><a href="testqdoc-test.html#operator-eq">operator=</a></b></span>(TestQDoc::Test &&) : TestQDoc::Test &</li> <li class="fn"><span class="name"><b><a href="testqdoc-test.html#funcPtr">funcPtr</a></b></span>(bool , const char *) : void (*)(bool)</li> <li class="fn"><span class="name"><b><a href="testqdoc-test.html#inlineFunction">inlineFunction</a></b></span>()</li> <li class="fn"><span class="name"><b><a href="testqdoc-test.html#overload">overload</a></b></span>()</li> diff --git a/tests/auto/qdoc/generatedoutput/expected_output/testtagfile.tags b/tests/auto/qdoc/generatedoutput/expected_output/testtagfile.tags index 1a035c855..67b710d68 100644 --- a/tests/auto/qdoc/generatedoutput/expected_output/testtagfile.tags +++ b/tests/auto/qdoc/generatedoutput/expected_output/testtagfile.tags @@ -188,6 +188,20 @@ </member> <member kind="function" protection="public" virtualness="non" static="no"> <type></type> + <name>Test</name> + <anchorfile>testqdoc-test.html</anchorfile> + <anchor>Test</anchor> + <arglist>()</arglist> + </member> + <member kind="function" protection="public" virtualness="non" static="no"> + <type>TestQDoc::Test &</type> + <name>operator=</name> + <anchorfile>testqdoc-test.html</anchorfile> + <anchor>operator-eq</anchor> + <arglist>(TestQDoc::Test &&other)</arglist> + </member> + <member kind="function" protection="public" virtualness="non" static="no"> + <type></type> <name>QDOCTEST_MACRO2</name> <anchorfile>testqdoc-test.html</anchorfile> <anchor>QDOCTEST_MACRO2</anchor> diff --git a/tests/auto/qdoc/generatedoutput/testdata/testcpp/testcpp.cpp b/tests/auto/qdoc/generatedoutput/testdata/testcpp/testcpp.cpp index f7ff3e8ed..f38e4a367 100644 --- a/tests/auto/qdoc/generatedoutput/testdata/testcpp/testcpp.cpp +++ b/tests/auto/qdoc/generatedoutput/testdata/testcpp/testcpp.cpp @@ -66,6 +66,18 @@ namespace TestQDoc { */ /*! + \fn TestQDoc::Test::Test() + + Default constructor. +*/ + +/*! + \fn Test &Test::operator=(Test &&other) + + Move-assigns \a other. +*/ + +/*! \class TestQDoc::TestDerived \inmodule TestCPP \brief A derived class in a namespace. |