So, after doing some digging, it seems like what controls whether or not
the `<defname>` is included is this line:

https://github.com/doxygen/doxygen/blob/341f860ab7ae3e5255891b0984bec8b36e7557ef/src/doxygen.cpp#L4985


...or more specifically, the `!root->doc.isEmpty()` bit, which sets the
`forceNameOverwrite` arg for `mergeArguments`.

Given that the `MemberDef` object already supports separate declaration
args and definition args (via `declArgumentList` and `argumentList`,
respectively), and that at this point it the code the `declArgumentList` is
already set, it seems odd that setting of `argumentList` is controlled by
whether or not the current root has a doc.  Ideally, I would think we'd
always put the declaration arguments in the `declArgumentList`, and the
definition arguments in `argumentList` - ie, have `forceNameOverwrite` set
to `!root->proto`.

At the very least, if we are going to try to make some fancier logic /
decisions at this point, we should take the `brief` into account as well,
and not just the `doc`.  For instance, it seems particularly odd to not
even include the definition args if the definition has a brief (though no
detail doc), and the declaration has no documentation whatsoever.
_______________________________________________
Doxygen-users mailing list
Doxygen-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/doxygen-users

Reply via email to