1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-06-07 17:56:01 +02:00

199572: fix StackOverflowError

This commit is contained in:
Andrew Ferguson 2007-09-05 14:37:29 +00:00
parent 2d980092d9
commit ec2fd1ebff
2 changed files with 16 additions and 1 deletions

View file

@ -645,4 +645,18 @@ public class IndexCPPTemplateResolutionTest extends IndexBindingResolutionTestBa
IBinding b5 = getBindingFromASTName("left(a,b)", 4); IBinding b5 = getBindingFromASTName("left(a,b)", 4);
IBinding b6 = getBindingFromASTName("left(a,b)", 4); IBinding b6 = getBindingFromASTName("left(a,b)", 4);
} }
// class A {};
// template<typename T1, typename T2> class D {};
// template<typename X1> class D<X1,X1> {};
// D<A,A> daa;
public void testClassPartialSpecializations_199572() throws Exception {
IBinding b0= getBindingFromASTName("D<A,A>", 6);
assertInstance(b0, ICPPTemplateInstance.class);
assertInstance(b0, ICPPClassType.class);
IBinding b1= getBindingFromASTName("D<A,A>", 1);
assertInstance(b1, ICPPTemplateDefinition.class);
assertInstance(b1, ICPPClassType.class);
}
} }

View file

@ -37,4 +37,5 @@ public class CompositeCPPClassTemplatePartialSpecialization extends CompositeCPP
public ObjectMap getArgumentMap() { return TemplateInstanceUtil.getArgumentMap(cf, rbinding); } public ObjectMap getArgumentMap() { return TemplateInstanceUtil.getArgumentMap(cf, rbinding); }
public IBinding getSpecializedBinding() { return TemplateInstanceUtil.getSpecializedBinding(cf, rbinding); } public IBinding getSpecializedBinding() { return TemplateInstanceUtil.getSpecializedBinding(cf, rbinding); }
public int getSignatureMemento() throws CoreException { return ((IPDOMOverloader) rbinding).getSignatureMemento(); } public int getSignatureMemento() throws CoreException { return ((IPDOMOverloader) rbinding).getSignatureMemento(); }
public IBinding instantiate(IType[] args) { return InternalTemplateInstantiatorUtil.instantiate(args, cf, rbinding); }
} }