Commit dec53d22 authored by Dimitri van Heesch's avatar Dimitri van Heesch

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

parent 08c96891
...@@ -854,13 +854,14 @@ void ClassDef::setIncludeFile(FileDef *fd, ...@@ -854,13 +854,14 @@ void ClassDef::setIncludeFile(FileDef *fd,
static void searchTemplateSpecs(/*in*/ Definition *d, static void searchTemplateSpecs(/*in*/ Definition *d,
/*out*/ QList<ArgumentList> &result, /*out*/ QList<ArgumentList> &result,
/*out*/ QCString &name) /*out*/ QCString &name,
/*in*/ SrcLangExt lang)
{ {
if (d->definitionType()==Definition::TypeClass) if (d->definitionType()==Definition::TypeClass)
{ {
if (d->getOuterScope()) if (d->getOuterScope())
{ {
searchTemplateSpecs(d->getOuterScope(),result,name); searchTemplateSpecs(d->getOuterScope(),result,name,lang);
} }
ClassDef *cd=(ClassDef *)d; ClassDef *cd=(ClassDef *)d;
if (!name.isEmpty()) name+="::"; if (!name.isEmpty()) name+="::";
...@@ -876,7 +877,7 @@ static void searchTemplateSpecs(/*in*/ Definition *d, ...@@ -876,7 +877,7 @@ static void searchTemplateSpecs(/*in*/ Definition *d,
result.append(cd->templateArguments()); result.append(cd->templateArguments());
if (!isSpecialization) if (!isSpecialization)
{ {
name+=tempArgListToString(cd->templateArguments()); name+=tempArgListToString(cd->templateArguments(),lang);
} }
} }
} }
...@@ -887,11 +888,11 @@ static void searchTemplateSpecs(/*in*/ Definition *d, ...@@ -887,11 +888,11 @@ static void searchTemplateSpecs(/*in*/ Definition *d,
} }
static void writeTemplateSpec(OutputList &ol,Definition *d, static void writeTemplateSpec(OutputList &ol,Definition *d,
const QCString &type) const QCString &type,SrcLangExt lang)
{ {
QList<ArgumentList> specs; QList<ArgumentList> specs;
QCString name; QCString name;
searchTemplateSpecs(d,specs,name); searchTemplateSpecs(d,specs,name,lang);
if (specs.count()>0) // class has template scope specifiers if (specs.count()>0) // class has template scope specifiers
{ {
ol.startSubsubsection(); ol.startSubsubsection();
...@@ -962,7 +963,7 @@ void ClassDef::writeDetailedDocumentationBody(OutputList &ol) ...@@ -962,7 +963,7 @@ void ClassDef::writeDetailedDocumentationBody(OutputList &ol)
if (getLanguage()==SrcLangExt_Cpp) if (getLanguage()==SrcLangExt_Cpp)
{ {
writeTemplateSpec(ol,this,compoundTypeString()); writeTemplateSpec(ol,this,compoundTypeString(),getLanguage());
} }
// repeat brief description // repeat brief description
...@@ -3774,7 +3775,7 @@ QCString ClassDef::qualifiedNameWithTemplateParameters( ...@@ -3774,7 +3775,7 @@ QCString ClassDef::qualifiedNameWithTemplateParameters(
//{ //{
// clName = clName.left(clName.length()-2); // 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; scName+=clName;
ArgumentList *al=0; ArgumentList *al=0;
if (templateArguments()) if (templateArguments())
...@@ -3784,7 +3785,7 @@ QCString ClassDef::qualifiedNameWithTemplateParameters( ...@@ -3784,7 +3785,7 @@ QCString ClassDef::qualifiedNameWithTemplateParameters(
al = actualParams->at(*actualParamIndex); al = actualParams->at(*actualParamIndex);
if (!isSpecialization) if (!isSpecialization)
{ {
scName+=tempArgListToString(al); scName+=tempArgListToString(al,lang);
} }
(*actualParamIndex)++; (*actualParamIndex)++;
} }
...@@ -3792,7 +3793,7 @@ QCString ClassDef::qualifiedNameWithTemplateParameters( ...@@ -3792,7 +3793,7 @@ QCString ClassDef::qualifiedNameWithTemplateParameters(
{ {
if (!isSpecialization) if (!isSpecialization)
{ {
scName+=tempArgListToString(templateArguments()); scName+=tempArgListToString(templateArguments(),lang);
} }
} }
} }
......
...@@ -4405,7 +4405,7 @@ static bool findTemplateInstanceRelation(Entry *root, ...@@ -4405,7 +4405,7 @@ static bool findTemplateInstanceRelation(Entry *root,
//printf("\n"); //printf("\n");
bool existingClass = (templSpec == bool existingClass = (templSpec ==
tempArgListToString(templateClass->templateArguments()) tempArgListToString(templateClass->templateArguments(),root->lang)
); );
if (existingClass) return TRUE; if (existingClass) return TRUE;
...@@ -6332,7 +6332,7 @@ static void findMember(EntryNav *rootNav, ...@@ -6332,7 +6332,7 @@ static void findMember(EntryNav *rootNav,
for (;(al=alli.current());++alli) for (;(al=alli.current());++alli)
{ {
warnMsg+=" template "; warnMsg+=" template ";
warnMsg+=tempArgListToString(al); warnMsg+=tempArgListToString(al,root->lang);
warnMsg+='\n'; warnMsg+='\n';
} }
} }
...@@ -6355,7 +6355,7 @@ static void findMember(EntryNav *rootNav, ...@@ -6355,7 +6355,7 @@ static void findMember(EntryNav *rootNav,
if (templAl!=0) if (templAl!=0)
{ {
warnMsg+=" 'template "; warnMsg+=" 'template ";
warnMsg+=tempArgListToString(templAl); warnMsg+=tempArgListToString(templAl,root->lang);
warnMsg+='\n'; warnMsg+='\n';
} }
warnMsg+=" "; warnMsg+=" ";
......
...@@ -194,7 +194,7 @@ static bool writeDefArgumentList(OutputList &ol,ClassDef *cd, ...@@ -194,7 +194,7 @@ static bool writeDefArgumentList(OutputList &ol,ClassDef *cd,
} }
else if (cd->templateArguments()) else if (cd->templateArguments())
{ {
cName=tempArgListToString(cd->templateArguments()); cName=tempArgListToString(cd->templateArguments(),cd->getLanguage());
//printf("2. cName=%s\n",cName.data()); //printf("2. cName=%s\n",cName.data());
} }
else // no template specifier else // no template specifier
......
...@@ -2190,7 +2190,7 @@ QCString argListToString(ArgumentList *al,bool useCanonicalType,bool showDefVals ...@@ -2190,7 +2190,7 @@ QCString argListToString(ArgumentList *al,bool useCanonicalType,bool showDefVals
return removeRedundantWhiteSpace(result); return removeRedundantWhiteSpace(result);
} }
QCString tempArgListToString(ArgumentList *al) QCString tempArgListToString(ArgumentList *al,SrcLangExt lang)
{ {
QCString result; QCString result;
if (al==0) return result; if (al==0) return result;
...@@ -2209,6 +2209,10 @@ QCString tempArgListToString(ArgumentList *al) ...@@ -2209,6 +2209,10 @@ QCString tempArgListToString(ArgumentList *al)
{ {
result+="in "; result+="in ";
} }
if (lang==SrcLangExt_Java || lang==SrcLangExt_CSharp)
{
result+=a->type+" ";
}
result+=a->name; result+=a->name;
} }
else // extract name from type else // extract name from type
......
...@@ -229,7 +229,7 @@ QCString removeRedundantWhiteSpace(const QCString &s); ...@@ -229,7 +229,7 @@ QCString removeRedundantWhiteSpace(const QCString &s);
QCString argListToString(ArgumentList *al,bool useCanonicalType=FALSE,bool showDefVals=TRUE); QCString argListToString(ArgumentList *al,bool useCanonicalType=FALSE,bool showDefVals=TRUE);
QCString tempArgListToString(ArgumentList *al); QCString tempArgListToString(ArgumentList *al,SrcLangExt lang);
QCString generateMarker(int id); QCString generateMarker(int id);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment