Open pcolby opened 1 month ago
Looks like the commit:
Commit: c6b3dae2b2224bdd310350a25ed46be288679100 [c6b3dae]
Date: Friday, August 2, 2024 4:50:20 PM
Refactoring: reduce lock contention when adding cross references
is still OK but that:
Commit: 70aff92f9ecdfced4ea745c94eb98d22a90543bd [70aff92]
Date: Friday, August 2, 2024 9:04:33 PM
Fix warning: 'no uniquely matching class member found for typedef'
Regression for issue #11010 (a7179f016c974c38b3d1725dcfcb77924da8b182)
is not OK.
(I doubt that the commit
Commit: 5e70fb62419ddb06d711abf3c39e00ba220bb2a5 [5e70fb6]
Date: Friday, August 2, 2024 8:54:16 PM
Fix for failing regression test
is causing the problems)
Looks like that a small tag file with some typedefs in it is already sufficient
Tag file; Qt-6.8.0-qtbluetooth.tags.tar.gz
Looks like the problem is that these tag files have no type information (i.e. no <type>..</type>
line) for typedefs. Since doxygen now resolves the typedefs, it resolves each of the parameter types of the overloaded toJson
methods to the same (empty) string, thus matching the definitions of both overloads to the first declaration and finding no match for the second which then is reported as undocumented.
I need to find a way to prevent resolving a typedef to an empty string in such cases.
@pcolby Please verify if the referenced commit fixes the problem for you. Do not close the issue, this will be done automatically when the next official release becomes available.
I can confirm that the current HEAD commit has resolved the issue for me, both in my cut-down test sample, and the full project from which it came 😊 Thanks!
Tested version: 1.13.0 (c692605decbd3f78054dfc780da6749235883cb6*)
Doxygen v1.12.0 fails to distinguish overloads of a very specific type when using tag files, where previous versions would correctly differentiate.
To Reproduce
Consider the following files (sources also attached in tarball at the end):
scancommand.h
scancommand.cpp
Doxyfile
With Doxygen version 1.9.8, 1.10.0 and 1.11.0 (only ones I've tested), this would work as expected (finding two functions, and allocating their docs accordingly), like this:
However, with Doxygen version 1.12.0, I get:
And in the resulting HTML output, the documentation markup for both functions appears (combined) against the first overload only, like this:
Additional Context
Tested on Ubuntu 23.10 and 24.04.
This does seems to be specific to using external tag files. I'm not sure if the bug is specific to
qtbluetooth.tags
or if any other tags files will have the same issue. Note the tag files (also included in the tarball) are the official ones installed via Qt's online installer.As I happen to have a few Doxygen versions installed, as well as a few Qt versions, I've constructed a quick script (also included in the tarball) to run all combinations I have readily available:
When I run, I get the output:
So as you can see:
Please let me know if there's anything else you'd like me to check, or any other info I can provide to help. Thanks!
Attachments