summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorDimitri van Heesch <dimitri@stack.nl>2013-12-24 11:09:23 (GMT)
committerDimitri van Heesch <dimitri@stack.nl>2013-12-24 16:10:05 (GMT)
commitf20c2bab01307bb40eb4522e46df2d0a8dfe31a9 (patch)
treec177a0f0d3cce6283eebe3cabc4134c22f2bc8a4 /src
parent1e8704925f5f41d53079e8c486b1072a1cd2bab5 (diff)
downloadDoxygen-f20c2bab01307bb40eb4522e46df2d0a8dfe31a9.zip
Doxygen-f20c2bab01307bb40eb4522e46df2d0a8dfe31a9.tar.gz
Doxygen-f20c2bab01307bb40eb4522e46df2d0a8dfe31a9.tar.bz2
Fixed regression in argument matching for the template example
Diffstat (limited to 'src')
-rw-r--r--src/doxygen.cpp9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/doxygen.cpp b/src/doxygen.cpp
index 1d8bfac..f497c01 100644
--- a/src/doxygen.cpp
+++ b/src/doxygen.cpp
@@ -6132,7 +6132,14 @@ static void findMember(EntryNav *rootNav,
matching = FALSE;
}
}
- else if (md->templateArguments()!=0 || root->tArgLists!=0)
+ bool classIsTemplate = md->getClassDef() && md->getClassDef()->templateArguments();
+ bool mdIsTemplate = md->templateArguments()!=0;
+ bool classOrMdIsTemplate = mdIsTemplate || classIsTemplate;
+ bool rootIsTemplate = root->tArgLists!=0;
+ //printf("classIsTemplate=%d mdIsTemplate=%d rootIsTemplate=%d\n",classIsTemplate,mdIsTemplate,rootIsTemplate);
+ if ((mdIsTemplate || rootIsTemplate) && // either md or root is a template
+ ((classOrMdIsTemplate && !rootIsTemplate) || (!classOrMdIsTemplate && rootIsTemplate))
+ )
{
// Method with template return type does not match method without return type
// even if the parameters are the same. See also bug709052