summaryrefslogtreecommitdiffstats
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
parent1e8704925f5f41d53079e8c486b1072a1cd2bab5 (diff)
downloadDoxygen-f20c2bab01307bb40eb4522e46df2d0a8dfe31a9.zip
Doxygen-f20c2bab01307bb40eb4522e46df2d0a8dfe31a9.tar.gz
Doxygen-f20c2bab01307bb40eb4522e46df2d0a8dfe31a9.tar.bz2
Fixed regression in argument matching for the template example
-rw-r--r--examples/Makefile.in75
-rw-r--r--src/doxygen.cpp9
2 files changed, 46 insertions, 38 deletions
diff --git a/examples/Makefile.in b/examples/Makefile.in
index 33b4cb3..b9c9f20 100644
--- a/examples/Makefile.in
+++ b/examples/Makefile.in
@@ -1,3 +1,4 @@
+DOXYGEN_BIN="$(DOXYGEN)/bin/doxygen"
all: class/html/index.html \
define/html/index.html \
@@ -26,7 +27,7 @@ all: class/html/index.html \
pyexample/html/index.html \
tclexample/html/index.html \
mux/html/index.html \
- manual/html/index.html
+ manual/html/index.html
# Disabled since it is broken :-(
# dbusxml/html/index.html
@@ -38,91 +39,91 @@ clean:
memgrp docstring pyexample mux manual dbusxml tclexample
class/html/index.html: class.h class.cfg
- "$(DOXYGEN)/bin/doxygen" class.cfg
+ $(DOXYGEN_BIN) class.cfg
define/html/index.html: define.h define.cfg
- "$(DOXYGEN)/bin/doxygen" define.cfg
+ $(DOXYGEN_BIN) define.cfg
enum/html/index.html: enum.h enum.cfg
- "$(DOXYGEN)/bin/doxygen" enum.cfg
+ $(DOXYGEN_BIN) enum.cfg
file/html/index.html: file.h file.cfg
- "$(DOXYGEN)/bin/doxygen" file.cfg
+ $(DOXYGEN_BIN) file.cfg
func/html/index.html: func.h func.cfg
- "$(DOXYGEN)/bin/doxygen" func.cfg
+ $(DOXYGEN_BIN) func.cfg
page/html/index.html: page.doc page.cfg
- "$(DOXYGEN)/bin/doxygen" page.cfg
+ $(DOXYGEN_BIN) page.cfg
relates/html/index.html: relates.cpp relates.cfg
- "$(DOXYGEN)/bin/doxygen" relates.cfg
+ $(DOXYGEN_BIN) relates.cfg
author/html/index.html: author.cpp author.cfg
- "$(DOXYGEN)/bin/doxygen" author.cfg
+ $(DOXYGEN_BIN) author.cfg
par/html/index.html: par.cpp par.cfg
- "$(DOXYGEN)/bin/doxygen" par.cfg
+ $(DOXYGEN_BIN) par.cfg
overload/html/index.html: overload.cpp overload.cfg
- "$(DOXYGEN)/bin/doxygen" overload.cfg
+ $(DOXYGEN_BIN) overload.cfg
-example/html/index.html: example.cpp example_test.cpp example.cfg
- "$(DOXYGEN)/bin/doxygen" example.cfg
+example/html/index.html: example.cpp example_test.cpp example.cfg
+ $(DOXYGEN_BIN) example.cfg
-include/html/index.html: include.cpp example_test.cpp include.cfg
- "$(DOXYGEN)/bin/doxygen" include.cfg
+include/html/index.html: include.cpp example_test.cpp include.cfg
+ $(DOXYGEN_BIN) include.cfg
-qtstyle/html/index.html: qtstyle.cpp qtstyle.cfg
- "$(DOXYGEN)/bin/doxygen" qtstyle.cfg
+qtstyle/html/index.html: qtstyle.cpp qtstyle.cfg
+ $(DOXYGEN_BIN) qtstyle.cfg
-jdstyle/html/index.html: jdstyle.cpp jdstyle.cfg
- "$(DOXYGEN)/bin/doxygen" jdstyle.cfg
+jdstyle/html/index.html: jdstyle.cpp jdstyle.cfg
+ $(DOXYGEN_BIN) jdstyle.cfg
-structcmd/html/index.html: structcmd.h structcmd.cfg
- "$(DOXYGEN)/bin/doxygen" structcmd.cfg
+structcmd/html/index.html: structcmd.h structcmd.cfg
+ $(DOXYGEN_BIN) structcmd.cfg
-autolink/html/index.html: autolink.cpp autolink.cfg
- "$(DOXYGEN)/bin/doxygen" autolink.cfg
+autolink/html/index.html: autolink.cpp autolink.cfg
+ $(DOXYGEN_BIN) autolink.cfg
tag/html/index.html: tag.cpp tag.cfg example/html/index.html
- "$(DOXYGEN)/bin/doxygen" tag.cfg
+ $(DOXYGEN_BIN) tag.cfg
-restypedef/html/index.html: restypedef.cpp restypedef.cfg
- "$(DOXYGEN)/bin/doxygen" restypedef.cfg
+restypedef/html/index.html: restypedef.cpp restypedef.cfg
+ $(DOXYGEN_BIN) restypedef.cfg
afterdoc/html/index.html: afterdoc.h afterdoc.cfg
- "$(DOXYGEN)/bin/doxygen" afterdoc.cfg
+ $(DOXYGEN_BIN) afterdoc.cfg
template/html/index.html: templ.cpp templ.cfg
- "$(DOXYGEN)/bin/doxygen" templ.cfg
+ $(DOXYGEN_BIN) templ.cfg
group/html/index.html: group.cpp group.cfg
- "$(DOXYGEN)/bin/doxygen" group.cfg
+ $(DOXYGEN_BIN) group.cfg
memgrp/html/index.html: memgrp.cpp memgrp.cfg
- "$(DOXYGEN)/bin/doxygen" memgrp.cfg
+ $(DOXYGEN_BIN) memgrp.cfg
pyexample/html/index.html: pyexample.py pyexample.cfg
- "$(DOXYGEN)/bin/doxygen" pyexample.cfg
+ $(DOXYGEN_BIN) pyexample.cfg
tclexample/html/index.html: tclexample.tcl tclexample.cfg
- "$(DOXYGEN)/bin/doxygen" tclexample.cfg
+ $(DOXYGEN_BIN) tclexample.cfg
mux/html/index.html: mux.vhdl mux.cfg
- "$(DOXYGEN)/bin/doxygen" mux.cfg
+ $(DOXYGEN_BIN) mux.cfg
manual/html/index.html: manual.c manual.cfg
- "$(DOXYGEN)/bin/doxygen" manual.cfg
+ $(DOXYGEN_BIN) manual.cfg
docstring/html/index.html: docstring.py docstring.cfg
- "$(DOXYGEN)/bin/doxygen" docstring.cfg
+ $(DOXYGEN_BIN) docstring.cfg
#dbusxml/html/index.html: dbusxml.xml dbusxml.cfg
-# $(DOXYGEN)/bin/doxygen dbusxml.cfg
+# $(DOXYGEN_BIN) dbusxml.cfg
diagrams/html/index.html: diagrams_a.h diagrams_b.h diagrams_c.h diagrams_d.h diagrams_e.h diagrams.cfg
ifneq ($(HAVE_DOT),)
- "$(DOXYGEN)/bin/doxygen" diagrams.cfg
+ $(DOXYGEN_BIN) diagrams.cfg
endif
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