Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Failure to document all function overloads in cases where parameters are typedefs. (Origin: bugzilla #636947) #4047

Closed
doxygen opened this Issue Jul 2, 2018 · 0 comments

Comments

Projects
None yet
1 participant
@doxygen
Copy link
Owner

doxygen commented Jul 2, 2018

status RESOLVED severity minor in component general for ---
Reported in version 1.7.1 on platform Other
Assigned to: Dimitri van Heesch

On 2010-12-10 10:41:22 +0000, Matt Brown wrote:

Doxygen version 1.7.1.

The example C code below reproduces the issue:

//START
/*!
\addtogroup MyGroup
{
*/
typedef float MyType[4]; //!< A fixed-size float array

/*!
\brief A function.
*/
void foo(
MyType out, //!< output
const MyType a, //!< input param 1
const float b = 0.0f //!< input param 2
);

/*!
\brief A function overload.
*/
void foo(
MyType out, //!< output
const MyType c, //!< input param 1
const MyType d //!< input param 2
);

/!
\brief Another function.
/
void bar(
float
out, //!< output
const float
a, //!< input param 1
const float b = 0.0f //!< input param 2
);

/!
\brief Another function overload.
/
void bar(
float
out, //!< output
const float
c, //!< input param 1
const float* d //!< input param 2
);

/*!
} Close Doxygen Group 'MyGroup', do not remove
*/
//END

The expected behaviour:
There should be two entries for foo and two for bar in the generated docs - one for each of the overloads.

Actual behaviour:
There are two entries for bar, but only one for foo.
The one entry for foo contains the brief of both overloads, but not all other details.
Here's a textual representation of the (incorrect) doxygen html output for foo...

//START
void foo ( MyType out,
const MyType a,
const float b = 0.0f
)

A function.

A function overload.

Parameters:
out output
a input param 1
b input param 2
//END

And the same (correct) for bar...

//START
void bar ( float * out,
const float * a,
const float b = 0.0f
)

Another function.

Parameters:
out output
a input param 1
b input param 2

void bar ( float * out,
const float * c,
const float * d
)

Another function overload.

Parameters:
out output
c input param 1
d input param 2
//END

On 2010-12-10 10:46:17 +0000, Matt Brown wrote:

I set this as minor severity since it can be worked around by including additional details in the function descriptions.
It occurs to me that I've not tested this with a default doxygen config file yet. I'll do that now.

On 2010-12-10 10:58:33 +0000, Matt Brown wrote:

I've now checked, and this can be reproduced with a clean template config file.
All I set in the template config was PROJECT_NAME, OUTPUT_DIRECTORY, INPUT.

On 2011-01-01 21:09:09 +0000, Dimitri van Heesch wrote:

Confirmed. Should be fixed in the next release.

On 2011-01-03 19:01:09 +0000, Dimitri van Heesch wrote:

This bug was previously marked ASSIGNED, which means it should be fixed in
doxygen version 1.7.3. Please verify if this is indeed the case. Reopen the
bug if you think it is not fixed and please include any additional information
that you think can be relevant.

@doxygen doxygen closed this Jul 2, 2018

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.