From 407f89f372e3cd609c019e193c7cf180f88575f2 Mon Sep 17 00:00:00 2001 From: Markus Schorn Date: Wed, 12 Nov 2008 14:44:00 +0000 Subject: [PATCH] Testcase for members of class specializations, bug 248927. --- .../tests/IndexCPPTemplateResolutionTest.java | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/internal/index/tests/IndexCPPTemplateResolutionTest.java b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/internal/index/tests/IndexCPPTemplateResolutionTest.java index 8d85415cbea..d60a4ebad78 100644 --- a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/internal/index/tests/IndexCPPTemplateResolutionTest.java +++ b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/internal/index/tests/IndexCPPTemplateResolutionTest.java @@ -1489,4 +1489,23 @@ public class IndexCPPTemplateResolutionTest extends IndexBindingResolutionTestBa IBinding charInst2= CPPTemplates.instantiate(tmplDef, new ICPPTemplateArgument[] {new CPPTemplateArgument(new CPPBasicType(IBasicType.t_char, 0))}); assertSame(charInst1, charInst2); } + + + // template class XT { + // public: void method() {}; + // }; + // XT x; + + // void test() { + // x.method(); + // } + public void testMethodSpecialization_Bug248927() throws Exception { + ICPPMethod m= getBindingFromASTName("method", 6, ICPPMethod.class); + assertInstance(m, ICPPSpecialization.class); + ICPPClassType ct= m.getClassOwner(); + assertInstance(ct, ICPPTemplateInstance.class); + ICPPMethod[] ms= ct.getDeclaredMethods(); + assertEquals(1, ms.length); + assertEquals(m, ms[0]); + } }