1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-07-23 17:05:26 +02:00

Partial fix for bug#57526 [CModelTests]

This commit is contained in:
Hoda Amer 2004-04-29 18:45:42 +00:00
parent bb06248085
commit 6502083342
2 changed files with 30 additions and 27 deletions

View file

@ -148,7 +148,7 @@ public class StructuralTemplateTests extends ITemplateTests {
//"nonVector"
{"T"},
//"ArrayOverlay"
{"X","Y","size"}, // should be {"X","Y","int=16"},
{"X","Y","int=16"},
//"TemplateContainer::fum"
{"Bar"},
//"TemplateParameter::scrum"
@ -194,7 +194,7 @@ public class StructuralTemplateTests extends ITemplateTests {
String[] myExpectedValues = {
"Map<Key, Value, SortAlgorithm>",
"nonVector<T>",
"ArrayOverlay<X, Y, size>", // should be "ArrayOverlay<X, Y, int=16>",
"ArrayOverlay<X, Y, int=16>",
"fum<Bar>(int) : void",
"scrum<Foo>(void) : void", // TODO: deduce the rules of () versus (void), compare below.
// TODO: shouldn't signature indicate const function as well?

View file

@ -42,36 +42,39 @@ public class ASTUtil {
while (templateParams.hasNext()){
StringBuffer paramType = new StringBuffer();
IASTTemplateParameter parameter = (IASTTemplateParameter)templateParams.next();
if((parameter.getIdentifier() != null) && (parameter.getIdentifier().length() != 0))
{
paramList.add(parameter.getIdentifier().toString());
}
else
{
IASTTemplateParameter.ParamKind kind = parameter.getTemplateParameterKind();
if(kind == IASTTemplateParameter.ParamKind.CLASS){
IASTTemplateParameter.ParamKind kind = parameter.getTemplateParameterKind();
if(kind == IASTTemplateParameter.ParamKind.CLASS){
if((parameter.getIdentifier() != null) && (parameter.getIdentifier().length() != 0))
{
paramType.append(parameter.getIdentifier().toString());
}else {
paramType.append("class"); //$NON-NLS-1$
}
if(kind == IASTTemplateParameter.ParamKind.TYPENAME){
}
if(kind == IASTTemplateParameter.ParamKind.TYPENAME){
if((parameter.getIdentifier() != null) && (parameter.getIdentifier().length() != 0))
{
paramType.append(parameter.getIdentifier().toString());
}else {
paramType.append("typename"); //$NON-NLS-1$
}
if(kind == IASTTemplateParameter.ParamKind.TEMPLATE_LIST){
paramType.append("template<"); //$NON-NLS-1$
String[] subParams = getTemplateParameters(parameter.getTemplateParameters());
int p = 0;
if ( subParams.length > 0)
paramType.append(subParams[p++]);
while( p < subParams.length){
paramType.append(", "); //$NON-NLS-1$
paramType.append(subParams[p++]);
}
paramType.append(">"); //$NON-NLS-1$
}
if(kind == IASTTemplateParameter.ParamKind.TEMPLATE_LIST){
paramType.append("template<"); //$NON-NLS-1$
String[] subParams = getTemplateParameters(parameter.getTemplateParameters());
int p = 0;
if ( subParams.length > 0)
paramType.append(subParams[p++]);
while( p < subParams.length){
paramType.append(", "); //$NON-NLS-1$
paramType.append(subParams[p++]);
}
if(kind == IASTTemplateParameter.ParamKind.PARAMETER){
paramType.append(getType(parameter.getParameterDeclaration()));
}
paramList.add(paramType.toString());
} // end else
paramType.append(">"); //$NON-NLS-1$
}
if(kind == IASTTemplateParameter.ParamKind.PARAMETER){
paramType.append(getType(parameter.getParameterDeclaration()));
}
paramList.add(paramType.toString());
}// end while
String[] parameterTypes = new String[paramList.size()];
for(int j=0; j<paramList.size(); ++j){