diff options
author | Dimitri van Heesch <dimitri@stack.nl> | 2013-12-24 11:09:23 (GMT) |
---|---|---|
committer | Dimitri van Heesch <dimitri@stack.nl> | 2013-12-24 16:10:05 (GMT) |
commit | f20c2bab01307bb40eb4522e46df2d0a8dfe31a9 (patch) | |
tree | c177a0f0d3cce6283eebe3cabc4134c22f2bc8a4 /src | |
parent | 1e8704925f5f41d53079e8c486b1072a1cd2bab5 (diff) | |
download | Doxygen-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.cpp | 9 |
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 |