GNOME Bugzilla – Bug 729921
[PROPOSED PATCH] wrong collaboration diagram when in template used scoped argument type
Last modified: 2016-12-29 18:45:47 UTC
Created attachment 276283 [details] example of wrong collaboration diagram For simple code: namespace AAA { struct BB { AAA::BB* v1; BB* v2; std::list<AAA::BB*> l1; std::list<BB*> l2; }; } and config: EXTRACT_ALL = YES BUILTIN_STL_SUPPORT = YES ALWAYS_DETAILED_SEC = YES HAVE_DOT = YES CALL_GRAPH = YES CALLER_GRAPH = YES Doxygen 1.8.1.2 generate correct "collaboration diagram" - see attachment OK__structAAA_1_1BB__coll__graph.png. Doxygen 1.8.6 generate wrong "collaboration diagram" l1 on diagram is AAA::AAA::BB type and not reference to BB struct - see attachment BAD__structAAA_1_1BB__coll__graph.png. Problem is probably in normalizeNonTemplateArgumentsInString() function, or in used by it getResolvedClass() function. Using result+=cd->localName(); instead result+=cd->name() in normalizeNonTemplateArgumentsInString() function fix this issue, but don't resolve short name to full scope name (I don't know if it's a problem for other functionality of doxygen).
Created attachment 276284 [details] example of correct collaboration diagram
Created attachment 327662 [details] [review] proposed patch Patch for current git version. Add colon to regexp, because in scoped type name is integral part of type name and there's no need cut template class name on colons.
Thanks, I'll include the patch in the next GIT update.
This bug was previously marked ASSIGNED, which means it should be fixed in doxygen version 1.8.13. 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 (preferably in the form of a self-contained example).