summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorDimitri van Heesch <dimitri@stack.nl>2014-09-14 14:56:15 (GMT)
committerDimitri van Heesch <dimitri@stack.nl>2014-09-14 14:56:15 (GMT)
commitdec53d22986c8d2c44a30806a2c8ed03bbe24768 (patch)
tree96b75a4309bae6a1a0c5d37e3272e5b74918ac84 /src
parent08c9689157d7edc5d8e3369ef96f2ccd4b01c10c (diff)
downloadDoxygen-dec53d22986c8d2c44a30806a2c8ed03bbe24768.zip
Doxygen-dec53d22986c8d2c44a30806a2c8ed03bbe24768.tar.gz
Doxygen-dec53d22986c8d2c44a30806a2c8ed03bbe24768.tar.bz2
Regression class<T extends V> resulted in class<V> as the page title
Diffstat (limited to 'src')
-rw-r--r--src/classdef.cpp19
-rw-r--r--src/doxygen.cpp6
-rw-r--r--src/memberdef.cpp2
-rw-r--r--src/util.cpp6
-rw-r--r--src/util.h2
5 files changed, 20 insertions, 15 deletions
diff --git a/src/classdef.cpp b/src/classdef.cpp
index 35d08fc..1e0a15f 100644
--- a/src/classdef.cpp
+++ b/src/classdef.cpp
@@ -854,13 +854,14 @@ void ClassDef::setIncludeFile(FileDef *fd,
static void searchTemplateSpecs(/*in*/ Definition *d,
/*out*/ QList<ArgumentList> &result,
- /*out*/ QCString &name)
+ /*out*/ QCString &name,
+ /*in*/ SrcLangExt lang)
{
if (d->definitionType()==Definition::TypeClass)
{
if (d->getOuterScope())
{
- searchTemplateSpecs(d->getOuterScope(),result,name);
+ searchTemplateSpecs(d->getOuterScope(),result,name,lang);
}
ClassDef *cd=(ClassDef *)d;
if (!name.isEmpty()) name+="::";
@@ -876,7 +877,7 @@ static void searchTemplateSpecs(/*in*/ Definition *d,
result.append(cd->templateArguments());
if (!isSpecialization)
{
- name+=tempArgListToString(cd->templateArguments());
+ name+=tempArgListToString(cd->templateArguments(),lang);
}
}
}
@@ -887,11 +888,11 @@ static void searchTemplateSpecs(/*in*/ Definition *d,
}
static void writeTemplateSpec(OutputList &ol,Definition *d,
- const QCString &type)
+ const QCString &type,SrcLangExt lang)
{
QList<ArgumentList> specs;
QCString name;
- searchTemplateSpecs(d,specs,name);
+ searchTemplateSpecs(d,specs,name,lang);
if (specs.count()>0) // class has template scope specifiers
{
ol.startSubsubsection();
@@ -962,7 +963,7 @@ void ClassDef::writeDetailedDocumentationBody(OutputList &ol)
if (getLanguage()==SrcLangExt_Cpp)
{
- writeTemplateSpec(ol,this,compoundTypeString());
+ writeTemplateSpec(ol,this,compoundTypeString(),getLanguage());
}
// repeat brief description
@@ -3774,7 +3775,7 @@ QCString ClassDef::qualifiedNameWithTemplateParameters(
//{
// clName = clName.left(clName.length()-2);
//}
- //printf("m_impl->lang=%d clName=%s\n",m_impl->lang,clName.data());
+ //printf("m_impl->lang=%d clName=%s isSpecialization=%d\n",getLanguage(),clName.data(),isSpecialization);
scName+=clName;
ArgumentList *al=0;
if (templateArguments())
@@ -3784,7 +3785,7 @@ QCString ClassDef::qualifiedNameWithTemplateParameters(
al = actualParams->at(*actualParamIndex);
if (!isSpecialization)
{
- scName+=tempArgListToString(al);
+ scName+=tempArgListToString(al,lang);
}
(*actualParamIndex)++;
}
@@ -3792,7 +3793,7 @@ QCString ClassDef::qualifiedNameWithTemplateParameters(
{
if (!isSpecialization)
{
- scName+=tempArgListToString(templateArguments());
+ scName+=tempArgListToString(templateArguments(),lang);
}
}
}
diff --git a/src/doxygen.cpp b/src/doxygen.cpp
index 6c9a44d..68d48ff 100644
--- a/src/doxygen.cpp
+++ b/src/doxygen.cpp
@@ -4405,7 +4405,7 @@ static bool findTemplateInstanceRelation(Entry *root,
//printf("\n");
bool existingClass = (templSpec ==
- tempArgListToString(templateClass->templateArguments())
+ tempArgListToString(templateClass->templateArguments(),root->lang)
);
if (existingClass) return TRUE;
@@ -6332,7 +6332,7 @@ static void findMember(EntryNav *rootNav,
for (;(al=alli.current());++alli)
{
warnMsg+=" template ";
- warnMsg+=tempArgListToString(al);
+ warnMsg+=tempArgListToString(al,root->lang);
warnMsg+='\n';
}
}
@@ -6355,7 +6355,7 @@ static void findMember(EntryNav *rootNav,
if (templAl!=0)
{
warnMsg+=" 'template ";
- warnMsg+=tempArgListToString(templAl);
+ warnMsg+=tempArgListToString(templAl,root->lang);
warnMsg+='\n';
}
warnMsg+=" ";
diff --git a/src/memberdef.cpp b/src/memberdef.cpp
index 0485c88..e79f13a 100644
--- a/src/memberdef.cpp
+++ b/src/memberdef.cpp
@@ -194,7 +194,7 @@ static bool writeDefArgumentList(OutputList &ol,ClassDef *cd,
}
else if (cd->templateArguments())
{
- cName=tempArgListToString(cd->templateArguments());
+ cName=tempArgListToString(cd->templateArguments(),cd->getLanguage());
//printf("2. cName=%s\n",cName.data());
}
else // no template specifier
diff --git a/src/util.cpp b/src/util.cpp
index a524922..1de3349 100644
--- a/src/util.cpp
+++ b/src/util.cpp
@@ -2190,7 +2190,7 @@ QCString argListToString(ArgumentList *al,bool useCanonicalType,bool showDefVals
return removeRedundantWhiteSpace(result);
}
-QCString tempArgListToString(ArgumentList *al)
+QCString tempArgListToString(ArgumentList *al,SrcLangExt lang)
{
QCString result;
if (al==0) return result;
@@ -2209,6 +2209,10 @@ QCString tempArgListToString(ArgumentList *al)
{
result+="in ";
}
+ if (lang==SrcLangExt_Java || lang==SrcLangExt_CSharp)
+ {
+ result+=a->type+" ";
+ }
result+=a->name;
}
else // extract name from type
diff --git a/src/util.h b/src/util.h
index f74fad0..2fc71ce 100644
--- a/src/util.h
+++ b/src/util.h
@@ -229,7 +229,7 @@ QCString removeRedundantWhiteSpace(const QCString &s);
QCString argListToString(ArgumentList *al,bool useCanonicalType=FALSE,bool showDefVals=TRUE);
-QCString tempArgListToString(ArgumentList *al);
+QCString tempArgListToString(ArgumentList *al,SrcLangExt lang);
QCString generateMarker(int id);