From f20c2bab01307bb40eb4522e46df2d0a8dfe31a9 Mon Sep 17 00:00:00 2001 From: Dimitri van Heesch Date: Tue, 24 Dec 2013 12:09:23 +0100 Subject: Fixed regression in argument matching for the template example --- examples/Makefile.in | 75 ++++++++++++++++++++++++++-------------------------- src/doxygen.cpp | 9 ++++++- 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 -- cgit v0.12