Permalink
Browse files

Regression class<T extends V> resulted in class<V> as the page title

  • Loading branch information...
Dimitri van Heesch
Dimitri van Heesch committed Sep 14, 2014
1 parent 08c9689 commit dec53d22986c8d2c44a30806a2c8ed03bbe24768
Showing with 20 additions and 15 deletions.
  1. +10 −9 src/classdef.cpp
  2. +3 −3 src/doxygen.cpp
  3. +1 −1 src/memberdef.cpp
  4. +5 −1 src/util.cpp
  5. +1 −1 src/util.h
@@ -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,15 +3785,15 @@ QCString ClassDef::qualifiedNameWithTemplateParameters(
al = actualParams->at(*actualParamIndex);
if (!isSpecialization)
{
scName+=tempArgListToString(al);
scName+=tempArgListToString(al,lang);
}
(*actualParamIndex)++;
}
else
{
if (!isSpecialization)
{
scName+=tempArgListToString(templateArguments());
scName+=tempArgListToString(templateArguments(),lang);
}
}
}
@@ -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+=" ";
@@ -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
@@ -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
@@ -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);

0 comments on commit dec53d2

Please sign in to comment.