From c479c6ccb7e4ca8268f6f304600374b7b8619fa5 Mon Sep 17 00:00:00 2001 From: Sergey Prigogin Date: Sun, 12 Aug 2012 17:19:59 -0700 Subject: [PATCH] Cosmetics. --- .../tests/IndexCPPTemplateResolutionTest.java | 415 +++++++++--------- 1 file changed, 208 insertions(+), 207 deletions(-) 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 da5652cb9c5..64423a8ab91 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 @@ -3,7 +3,7 @@ * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html + * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Andrew Ferguson (Symbian) - Initial implementation @@ -69,23 +69,24 @@ import org.eclipse.core.runtime.CoreException; * Tests for exercising resolution of template bindings against IIndex */ public class IndexCPPTemplateResolutionTest extends IndexBindingResolutionTestBase { + public static class SingleProject extends IndexCPPTemplateResolutionTest { public SingleProject() {setStrategy(new SinglePDOMTestStrategy(true));} public static TestSuite suite() {return suite(SingleProject.class);} } - + public static class ProjectWithDepProj extends IndexCPPTemplateResolutionTest { public ProjectWithDepProj() {setStrategy(new ReferencedProject(true));} public static TestSuite suite() {return suite(ProjectWithDepProj.class);} - + @Override public void testDefaultTemplateArgInHeader_264988() throws Exception { // Not supported across projects (the composite index does not merge // default values of template parameters). } } - - public static void addTests(TestSuite suite) { + + public static void addTests(TestSuite suite) { suite.addTest(SingleProject.suite()); suite.addTest(ProjectWithDepProj.suite()); } @@ -93,7 +94,7 @@ public class IndexCPPTemplateResolutionTest extends IndexBindingResolutionTestBa public IndexCPPTemplateResolutionTest() { setStrategy(new ReferencedProject(true)); } - + // template // struct Allocator { // typedef _TpAllocator& alloc_reference; @@ -146,7 +147,7 @@ public class IndexCPPTemplateResolutionTest extends IndexBindingResolutionTestBa assertInstance(type, IBasicType.class); assertEquals("int", ASTTypeUtil.getType(type)); } - + // template // class Allocator; // @@ -252,17 +253,17 @@ public class IndexCPPTemplateResolutionTest extends IndexBindingResolutionTestBa IBinding b0= getBindingFromASTName("C1 c1", 8); IBinding b1= getBindingFromASTName("m1(\"aaa\")", 2); IBinding b2= getBindingFromASTName("m2(\"aaa\")", 2); - + assertEquals(1, getIndex().findNames(b1, IIndex.FIND_REFERENCES).length); assertEquals(1, getIndex().findNames(b2, IIndex.FIND_REFERENCES).length); } - - + + // template // class X { // public: static void foo() {} // }; - + // class A{}; // void bar() { // X::foo(); @@ -271,12 +272,12 @@ public class IndexCPPTemplateResolutionTest extends IndexBindingResolutionTestBa IBinding b0= getBindingFromASTName("foo()", 3); assertInstance(b0, ICPPMethod.class); } - + // template // class StrT { // public: void assign(const T* s) {} // }; - + // #include "header.h" // void main() { // StrT x; @@ -292,7 +293,7 @@ public class IndexCPPTemplateResolutionTest extends IndexBindingResolutionTestBa // template // class X {}; - + // class A{}; // void bar() { // X xa= new X(); @@ -317,7 +318,7 @@ public class IndexCPPTemplateResolutionTest extends IndexBindingResolutionTestBa // public: // void m2(T t) {} // }; - + // class A {}; // void foo() { // C1< StrT > c1a; @@ -330,7 +331,7 @@ public class IndexCPPTemplateResolutionTest extends IndexBindingResolutionTestBa IBinding b3= getBindingFromASTName("c1a;", 3); IBinding b4= getBindingFromASTName("m2(*", 2); } - + // class Str1 { // public: // Str1(const char* s) { @@ -367,11 +368,11 @@ public class IndexCPPTemplateResolutionTest extends IndexBindingResolutionTestBa public void testUnindexedConstructorInstanceImplicitReference() throws Exception { IBinding b0= getBindingFromASTName("m1(\"aaa\")", 2); IBinding b1= getBindingFromASTName("m2(\"aaa\")", 2); - + assertEquals(1, getIndex().findNames(b0, IIndex.FIND_REFERENCES).length); assertEquals(1, getIndex().findNames(b1, IIndex.FIND_REFERENCES).length); } - + // // Bryan W.'s example from bugzilla#167098 // template // class D { //CPPClassTemplate @@ -396,35 +397,35 @@ public class IndexCPPTemplateResolutionTest extends IndexBindingResolutionTestBa public void testCPPConstructorTemplateSpecialization() throws Exception { IBinding b0= getBindingFromASTName("D *var", 1); IBinding b1= getBindingFromASTName("D *var", 6); - - assertInstance(b0, ICPPClassTemplate.class); - assertInstance(b0, ICPPClassType.class); + + assertInstance(b0, ICPPClassTemplate.class); + assertInstance(b0, ICPPClassType.class); assertInstance(b1, ICPPTemplateInstance.class); - assertInstance(b1, ICPPClassType.class); - + assertInstance(b1, ICPPClassType.class); + // ICPPClassType _ct= (ICPPClassType) b1; // ICPPConstructor[] _ctcs= _ct.getConstructors(); // assertEquals(3, _ctcs.length); // two implicit plus the constructor template - + IBinding b2= getBindingFromASTName("D(", 1); IBinding b3= getBindingFromASTName("D(", 6); - + assertInstance(b2, ICPPClassTemplate.class); // *D*(5, 6) assertInstance(b2, ICPPClassType.class); // *D*(5, 6) assertInstance(b3, ICPPTemplateInstance.class); // *D*(5, 6) assertInstance(b3, ICPPConstructor.class); // *D*(5, 6) - - // + + // // ICPPClassType ct= (ICPPClassType) b2; // ICPPConstructor[] ctcs= ct.getConstructors(); // assertEquals(3, ctcs.length); // two implicit plus the constructor template - + IBinding tidSpc= ((ICPPTemplateInstance)b3).getSpecializedBinding(); assertInstance(tidSpc, ICPPConstructor.class); assertInstance(tidSpc, ICPPSpecialization.class); assertInstance(tidSpc, ICPPFunctionTemplate.class); } - + // class B {}; // // template @@ -445,7 +446,7 @@ public class IndexCPPTemplateResolutionTest extends IndexBindingResolutionTestBa assertInstance(b0, ICPPFunction.class); assertInstance(b0, ICPPSpecialization.class); } - + // template class S> // class Foo { // public: @@ -458,7 +459,7 @@ public class IndexCPPTemplateResolutionTest extends IndexBindingResolutionTestBa // }; // // class A {}; - + // void qux() { // Foo f; // f.s.foo(*new A()); @@ -469,22 +470,22 @@ public class IndexCPPTemplateResolutionTest extends IndexBindingResolutionTestBa IBinding b2= getBindingFromASTName("f.s.foo", 1); IBinding b3= getBindingFromASTName("s.foo", 1); IBinding b4= getBindingFromASTName("foo(*", 3); - + assertInstance(b0, ICPPClassTemplate.class); assertInstance(b0, ICPPClassType.class); ICPPTemplateParameter[] ps= ((ICPPClassTemplate)b0).getTemplateParameters(); assertEquals(2, ps.length); assertInstance(ps[0], ICPPTemplateTypeParameter.class); assertInstance(ps[1], ICPPTemplateTemplateParameter.class); - + assertInstance(b1, ICPPTemplateInstance.class); assertInstance(b1, ICPPClassType.class); - + IType[] type= ((ICPPTemplateInstance)b1).getArguments(); assertInstance(type[0], ICPPClassType.class); assertInstance(type[1], ICPPClassTemplate.class); assertInstance(type[1], ICPPClassType.class); - + ObjectMap om= ((ICPPTemplateInstance)b1).getArgumentMap(); assertEquals(2, om.size()); assertInstance(om.keyAt(0), ICPPTemplateTypeParameter.class); @@ -492,14 +493,14 @@ public class IndexCPPTemplateResolutionTest extends IndexBindingResolutionTestBa assertInstance(om.keyAt(1), ICPPTemplateTemplateParameter.class); assertInstance(om.getAt(1), ICPPClassType.class); assertInstance(om.getAt(1), ICPPClassTemplate.class); - + IBinding b1_spcd= ((ICPPTemplateInstance)b1).getSpecializedBinding(); assertInstance(b1_spcd, ICPPClassTemplate.class); assertInstance(b1_spcd, ICPPClassType.class); assertTrue(((IType)b1_spcd).isSameType((IType)b0)); } - - + + // template // class Foo { // public: @@ -517,7 +518,7 @@ public class IndexCPPTemplateResolutionTest extends IndexBindingResolutionTestBa // // class AA {}; // class BB {}; - // + // // class Z : public Foo {}; // // X x; @@ -529,7 +530,7 @@ public class IndexCPPTemplateResolutionTest extends IndexBindingResolutionTestBa getBindingFromASTName("Y y;", 1), getBindingFromASTName("Z z;", 1) }; - + for (IBinding b : bs) { assertInstance(b, ICPPClassType.class); ICPPClassType c= (ICPPClassType) b; @@ -566,10 +567,10 @@ public class IndexCPPTemplateResolutionTest extends IndexBindingResolutionTestBa // class A {}; class B {}; class C {}; // template // class D {}; - // + // // template // class D {}; - + // #include "header.h" // template class D; // harmless declaration for test purposes // template class D {}; @@ -579,20 +580,20 @@ public class IndexCPPTemplateResolutionTest extends IndexBindingResolutionTestBa IBinding b1= getBindingFromASTName("D", 8); IBinding b2= getBindingFromASTName("D", 8); IBinding b3= getBindingFromASTName("D // class A {}; - // + // // template // class B : public A { // public: @@ -616,7 +617,7 @@ public class IndexCPPTemplateResolutionTest extends IndexBindingResolutionTestBa // }; // // B bb; // make sure the instance is in the pdom - + // template // class X : public B {}; // @@ -641,7 +642,7 @@ public class IndexCPPTemplateResolutionTest extends IndexBindingResolutionTestBa ICPPClassType ct= (ICPPClassType) b0; ICPPBase[] bss= ClassTypeHelper.getBases(ct, null); assertEquals(1, bss.length); - assertInstance(bss[0].getBaseClass(), ICPPClassType.class); + assertInstance(bss[0].getBaseClass(), ICPPClassType.class); IBinding b1= getBindingFromASTName("B", 7); assertInstance(b1, ICPPClassType.class); @@ -650,7 +651,7 @@ public class IndexCPPTemplateResolutionTest extends IndexBindingResolutionTestBa assertEquals(1, bss1.length); assertInstance(bss1[0].getBaseClass(), ICPPClassType.class); } - + // class B {}; // // template @@ -667,7 +668,7 @@ public class IndexCPPTemplateResolutionTest extends IndexBindingResolutionTestBa // B foo(B t) { B x= *new B(); return x; } // void bar(B t, int& x) { x++; } // }; - + // A ab; public void testClassSpecializationMethods() throws Exception { IBinding b0= getBindingFromASTName("A ab", 4); @@ -684,31 +685,31 @@ public class IndexCPPTemplateResolutionTest extends IndexBindingResolutionTestBa ICPPMethod foo= dms[0].getName().equals("foo") ? dms[0] : dms[1]; ICPPMethod bar= dms[0].getName().equals("bar") ? dms[0] : dms[1]; - + assertEquals(foo.getName(), "foo"); assertEquals(bar.getName(), "bar"); - + assertInstance(foo.getType().getReturnType(), ICPPClassType.class); assertEquals(((ICPPClassType)foo.getType().getReturnType()).getName(), "B"); assertEquals(foo.getType().getParameterTypes().length, 1); assertInstance(foo.getType().getParameterTypes()[0], ICPPClassType.class); assertEquals(((ICPPClassType)foo.getType().getParameterTypes()[0]).getName(), "B"); - + assertInstance(bar.getType().getReturnType(), ICPPBasicType.class); assertEquals(((ICPPBasicType)bar.getType().getReturnType()).getType(), IBasicType.t_void); } - + // template class A { // public: // typedef T TD; // }; - // + // // class B {}; // A::TD foo; - + // class C {}; // A::TD bar; - // + // // void qux() { // A::TD foo2= foo; // A::TD bar2= bar; @@ -778,20 +779,20 @@ public class IndexCPPTemplateResolutionTest extends IndexBindingResolutionTestBa IBinding b7= getBindingFromASTName("foo(", 3); IBinding b8= getBindingFromASTName("foo(", 3); } - + // class A {}; class B{}; class C {}; // // template - // void foo(T1 t1, T2 t2) {} // (0) + // void foo(T1 t1, T2 t2) {} // (0) // // template<> // void foo(C c, A a) {} // (1) - + // void bar() { // A a; // B b; // C c; - // foo(a,b); // function instance of function template (0) + // foo(a,b); // function instance of function template (0) // foo(c,a); // function specialization (1) // } public void testFunctionInstanceSpecializationsParameters() throws Exception { @@ -806,25 +807,25 @@ public class IndexCPPTemplateResolutionTest extends IndexBindingResolutionTestBa assertInstance(b0_ptypes[1], ICPPClassType.class); assertEquals("A", ((ICPPClassType)b0_ptypes[0]).getName()); assertEquals("B", ((ICPPClassType)b0_ptypes[1]).getName()); - + IParameter[] b0_pms= ((ICPPFunction)b0).getParameters(); assertEquals(2, b0_pms.length); assertInstance(b0_pms[0].getType(), ICPPClassType.class); assertInstance(b0_pms[1].getType(), ICPPClassType.class); assertEquals("A", ((ICPPClassType)b0_pms[0].getType()).getName()); assertEquals("B", ((ICPPClassType)b0_pms[1].getType()).getName()); - + IBinding b0_spcd= ((ICPPTemplateInstance)b0).getSpecializedBinding(); assertInstance(b0_spcd, ICPPFunction.class); assertInstance(b0_spcd, ICPPTemplateDefinition.class); - + IParameter[] b0_spcd_pms= ((ICPPFunction)b0_spcd).getParameters(); assertEquals(2, b0_spcd_pms.length); assertInstance(b0_spcd_pms[0].getType(), ICPPTemplateTypeParameter.class); assertInstance(b0_spcd_pms[1].getType(), ICPPTemplateTypeParameter.class); assertEquals("T1", ((ICPPTemplateTypeParameter)b0_spcd_pms[0].getType()).getName()); assertEquals("T2", ((ICPPTemplateTypeParameter)b0_spcd_pms[1].getType()).getName()); - + ObjectMap b0_am= ((ICPPSpecialization)b0).getArgumentMap(); assertEquals(2, b0_am.size()); assertInstance(b0_am.getAt(0), ICPPClassType.class); @@ -835,7 +836,7 @@ public class IndexCPPTemplateResolutionTest extends IndexBindingResolutionTestBa assertEquals("T2", ((ICPPTemplateTypeParameter)b0_am.keyAt(1)).getName()); assertEquals("A", ((ICPPClassType)b0_am.getAt(0)).getName()); assertEquals("B", ((ICPPClassType)b0_am.getAt(1)).getName()); - + ICPPFunctionType b0_spcd_type= ((ICPPFunction)b0_spcd).getType(); assertInstance(b0_spcd_type.getReturnType(), ICPPBasicType.class); IType[] b0_spcd_ptypes= b0_spcd_type.getParameterTypes(); @@ -844,7 +845,7 @@ public class IndexCPPTemplateResolutionTest extends IndexBindingResolutionTestBa assertInstance(b0_spcd_ptypes[1], ICPPTemplateTypeParameter.class); assertEquals("T1", ((ICPPTemplateTypeParameter)b0_spcd_ptypes[0]).getName()); assertEquals("T2", ((ICPPTemplateTypeParameter)b0_spcd_ptypes[1]).getName()); - + IBinding b1= getBindingFromASTName("foo(c,a)", 3); assertInstance(b1, ICPPFunction.class); ICPPFunctionType b1type= ((ICPPFunction)b1).getType(); @@ -855,20 +856,20 @@ public class IndexCPPTemplateResolutionTest extends IndexBindingResolutionTestBa assertInstance(b1_ptypes[1], ICPPClassType.class); assertEquals("C", ((ICPPClassType)b1_ptypes[0]).getName()); assertEquals("A", ((ICPPClassType)b1_ptypes[1]).getName()); - + IParameter[] b1_pms= ((ICPPFunction)b1).getParameters(); assertEquals(2, b1_pms.length); assertInstance(b1_pms[0].getType(), ICPPClassType.class); assertInstance(b1_pms[1].getType(), ICPPClassType.class); assertEquals("C", ((ICPPClassType)b1_pms[0].getType()).getName()); assertEquals("A", ((ICPPClassType)b1_pms[1].getType()).getName()); - + assertInstance(b1, ICPPSpecialization.class); ICPPSpecialization b1s= (ICPPSpecialization) b1; IBinding b1_spcd= b1s.getSpecializedBinding(); assertInstance(b1_spcd, ICPPFunction.class); assertInstance(b1_spcd, ICPPTemplateDefinition.class); - + ICPPFunctionType b1_spcd_type= ((ICPPFunction)b1_spcd).getType(); assertInstance(b1_spcd_type.getReturnType(), ICPPBasicType.class); IType[] b1_spcd_ptypes= b1_spcd_type.getParameterTypes(); @@ -877,14 +878,14 @@ public class IndexCPPTemplateResolutionTest extends IndexBindingResolutionTestBa assertInstance(b1_spcd_ptypes[1], ICPPTemplateTypeParameter.class); assertEquals("T1", ((ICPPTemplateTypeParameter)b1_spcd_ptypes[0]).getName()); assertEquals("T2", ((ICPPTemplateTypeParameter)b1_spcd_ptypes[1]).getName()); - + IParameter[] b1_spcd_pms= ((ICPPFunction)b1_spcd).getParameters(); assertEquals(2, b1_spcd_pms.length); assertInstance(b1_spcd_pms[0].getType(), ICPPTemplateTypeParameter.class); assertInstance(b1_spcd_pms[1].getType(), ICPPTemplateTypeParameter.class); assertEquals("T1", ((ICPPTemplateTypeParameter)b1_spcd_pms[0].getType()).getName()); assertEquals("T2", ((ICPPTemplateTypeParameter)b1_spcd_pms[1].getType()).getName()); - + ObjectMap b1_am= b1s.getArgumentMap(); assertEquals(2, b1_am.size()); assertInstance(b1_am.keyAt(0), ICPPTemplateTypeParameter.class); @@ -896,12 +897,12 @@ public class IndexCPPTemplateResolutionTest extends IndexBindingResolutionTestBa assertEquals("C", ((ICPPClassType)b1_am.getAt(0)).getName()); assertEquals("A", ((ICPPClassType)b1_am.getAt(1)).getName()); } - + // class A {}; // // template // void foo(T t) {} - + // void bar() { // A a; // foo(a); @@ -910,17 +911,17 @@ public class IndexCPPTemplateResolutionTest extends IndexBindingResolutionTestBa IBinding b0= getBindingFromASTName("foo(a)", 3); assertInstance(b0, ICPPTemplateInstance.class); assertInstance(b0, ICPPFunction.class); - + ICPPFunction f= (ICPPFunction) b0; ICPPFunctionType type= f.getType(); IType rt= type.getReturnType(); IType[] pts= type.getParameterTypes(); - + IParameter[] ps= f.getParameters(); assertEquals(1, ps.length); ICPPParameter param= (ICPPParameter) ps[0]; assertInstance(param, ICPPSpecialization.class); - + IType paramType= param.getType(); assertInstance(paramType, ICPPClassType.class); ICPPParameter paramSpec= (ICPPParameter) ((ICPPSpecialization) param).getSpecializedBinding(); @@ -928,13 +929,13 @@ public class IndexCPPTemplateResolutionTest extends IndexBindingResolutionTestBa ICPPTemplateTypeParameter ttp= (ICPPTemplateTypeParameter) paramSpec.getType(); assertEquals("T", ttp.getName()); assertNull(ttp.getDefault()); - + ICPPTemplateInstance inst= (ICPPTemplateInstance) b0; IBinding sp= inst.getSpecializedBinding(); assertInstance(sp, ICPPFunction.class); assertInstance(sp, ICPPTemplateDefinition.class); } - + // template // void func(T1* obj, R (T2::*member)()) { // } @@ -942,7 +943,7 @@ public class IndexCPPTemplateResolutionTest extends IndexBindingResolutionTestBa // struct A { // void m(); // }; - + // void test() { // A a; // func(&a, &A::m); @@ -959,7 +960,7 @@ public class IndexCPPTemplateResolutionTest extends IndexBindingResolutionTestBa // template // void func(U& u, const typename U::t& v) { // } - + // template class A { // typedef T t; // }; @@ -979,10 +980,10 @@ public class IndexCPPTemplateResolutionTest extends IndexBindingResolutionTestBa // // class B {}; // - // template<> + // template<> // class Foo {}; - - // Foo b1; + + // Foo b1; // // class A {}; // @@ -993,10 +994,10 @@ public class IndexCPPTemplateResolutionTest extends IndexBindingResolutionTestBa public void testClassSpecializations_180738() { IBinding b1a = getBindingFromASTName("Foo b1;", 3); IBinding b1b = getBindingFromASTName("Foo b1;", 6); - + assertInstance(b1a, ICPPClassType.class); assertInstance(b1a, ICPPClassTemplate.class); - + assertInstance(b1b, ICPPClassType.class); assertInstance(b1b, ICPPSpecialization.class); ICPPSpecialization b1spc= (ICPPSpecialization) b1b; @@ -1005,13 +1006,13 @@ public class IndexCPPTemplateResolutionTest extends IndexBindingResolutionTestBa assertInstance(b1om.getAt(0), ICPPClassType.class); ICPPClassType b1pct= (ICPPClassType) b1om.getAt(0); assertEquals("B", b1pct.getName()); - + IBinding b2a = getBindingFromASTName("Foo b2;", 3); IBinding b2b = getBindingFromASTName("Foo b2;", 6); - + assertInstance(b2a, ICPPClassType.class); assertInstance(b2a, ICPPClassTemplate.class); - + assertInstance(b2b, ICPPClassType.class); assertInstance(b2b, ICPPSpecialization.class); ICPPSpecialization b2spc= (ICPPSpecialization) b2b; @@ -1021,7 +1022,7 @@ public class IndexCPPTemplateResolutionTest extends IndexBindingResolutionTestBa ICPPClassType b2pct= (ICPPClassType) b2om.getAt(0); assertEquals("B", b2pct.getName()); } - + // // header file // template // T left(T a, T b) { @@ -1029,7 +1030,7 @@ public class IndexCPPTemplateResolutionTest extends IndexBindingResolutionTestBa // } // void sanity() {} // int d; - + // void foo() { sanity(); } // class Int {}; // Int a,b; @@ -1044,11 +1045,11 @@ public class IndexCPPTemplateResolutionTest extends IndexBindingResolutionTestBa IBinding b5 = getBindingFromASTName("left(a,b)", 4); IBinding b6 = getBindingFromASTName("left(a,b)", 4); } - + // class A {}; // template class D {}; // template class D {}; - + // D daa; public void testClassPartialSpecializations_199572() throws Exception { IBinding b0= getBindingFromASTName("D", 6); @@ -1086,7 +1087,7 @@ public class IndexCPPTemplateResolutionTest extends IndexBindingResolutionTestBa assertEquals("int", ASTTypeUtil.getType(type)); } - // class A {}; class B {}; class X {}; + // class A {}; class B {}; class X {}; // template // class C { // public: @@ -1103,7 +1104,7 @@ public class IndexCPPTemplateResolutionTest extends IndexBindingResolutionTestBa // X t; // operator B() {B b; return b;} // }; - + // class F : public C {}; // void refs() { // C c; @@ -1121,29 +1122,29 @@ public class IndexCPPTemplateResolutionTest extends IndexBindingResolutionTestBa IBinding ca= getBindingFromASTName("C", 4); assertInstance(ca, ICPPClassType.class); assertInstance(ca, ICPPTemplateInstance.class); - + IBinding foo1= getBindingFromASTName("foo(c)", 3); - + IBinding da= getBindingFromASTName("D", 4); assertInstance(da, ICPPClassType.class); assertInstance(da, ICPPTemplateInstance.class); - + IBinding foo2= getBindingFromASTName("foo(d)", 3); IBinding foo3= getBindingFromASTName("foo(e)", 3); IBinding foo4= getBindingFromASTName("foo(cx)", 3); - + assertEquals(foo1, foo2); assertEquals(foo2, foo3); assertEquals(foo3, foo4); } - + // template // class A {}; // // class B {}; - // + // // template<> // class A {}; - + // class C {}; // // A ab; @@ -1151,15 +1152,15 @@ public class IndexCPPTemplateResolutionTest extends IndexBindingResolutionTestBa public void testEnclosingScopes_a() throws Exception { ICPPSpecialization b0= getBindingFromASTName("A", 4, ICPPSpecialization.class, ICPPClassType.class); ICPPTemplateInstance b1= getBindingFromASTName("A", 4, ICPPTemplateInstance.class, ICPPClassType.class); - + ICPPClassType sc0= assertInstance(b0.getSpecializedBinding(), ICPPClassType.class); ICPPClassType sc1= assertInstance(b1.getSpecializedBinding(), ICPPClassType.class); assertTrue(sc0.isSameType(sc1)); - + assertNull(sc0.getScope()); assertNull(b0.getScope()); } - + // template // class A { // public: @@ -1173,7 +1174,7 @@ public class IndexCPPTemplateResolutionTest extends IndexBindingResolutionTestBa // public: // class B {}; // }; - + // #include "header.h" // void refs() { // A::B acb; @@ -1183,7 +1184,7 @@ public class IndexCPPTemplateResolutionTest extends IndexBindingResolutionTestBa ICPPClassType b0= getBindingFromASTName("B acb", 1, ICPPClassType.class); ICPPClassType b1= getBindingFromASTName("B adb", 1, ICPPClassType.class, ICPPSpecialization.class); ICPPClassType b2= getBindingFromASTName("A", 4, ICPPClassType.class, ICPPSpecialization.class); - + IIndexBinding[] sr = getIndex().findBindings("A".toCharArray(), new IndexFilter() { @Override public boolean acceptBinding(IBinding binding) throws CoreException { @@ -1192,7 +1193,7 @@ public class IndexCPPTemplateResolutionTest extends IndexBindingResolutionTestBa }, npm()); assertTrue(sr.length == 1); ICPPClassType b3= (ICPPClassType) sr[0]; - + sr = getIndex().findBindings(new char[][] {"A".toCharArray(), "B".toCharArray()}, new IndexFilter() { @Override public boolean acceptBinding(IBinding binding) throws CoreException { @@ -1201,21 +1202,21 @@ public class IndexCPPTemplateResolutionTest extends IndexBindingResolutionTestBa }, npm()); assertTrue(sr.length == 1); ICPPClassType b4= (ICPPClassType) sr[0]; - + assertFalse(b0 instanceof ICPPSpecialization); - + IIndexScope s0= (IIndexScope) b0.getScope(), s4= (IIndexScope) b4.getScope(); IScope s1= b1.getScope(); - + assertTrue(((IType)s0.getScopeBinding()).isSameType((IType)((IIndexScope)b2.getCompositeScope()).getScopeBinding())); ICPPClassScope cs1= assertInstance(s1, ICPPClassScope.class); assertInstance(cs1.getClassType(), ICPPClassType.class); assertInstance(cs1.getClassType(), ICPPTemplateInstance.class); assertTrue(((IType)((ICPPClassSpecialization) s4.getScopeBinding()).getSpecializedBinding()).isSameType( (IType) ((IIndexScope)b3.getCompositeScope()).getScopeBinding() )); } - + // class A {}; - // + // // template // class X { // public: @@ -1224,23 +1225,23 @@ public class IndexCPPTemplateResolutionTest extends IndexBindingResolutionTestBa // class Z {}; // }; // }; - + // X::Y::Z xayz; public void testEnclosingScopes_c() throws Exception { ICPPClassType b0= getBindingFromASTName("Y::Z x", 1, ICPPClassType.class); ICPPClassType b1= getBindingFromASTName("Z xayz", 1, ICPPClassType.class); - + IScope s0= b0.getScope(), s1= b1.getScope(); - + ICPPClassScope cs0= assertInstance(s0, ICPPClassScope.class); assertInstance(cs0.getClassType(), ICPPClassType.class); assertInstance(cs0.getClassType(), ICPPSpecialization.class); - + ICPPClassScope cs1= assertInstance(s1, ICPPClassScope.class); assertInstance(cs1.getClassType(), ICPPClassType.class); - assertInstance(cs1.getClassType(), ICPPSpecialization.class); + assertInstance(cs1.getClassType(), ICPPSpecialization.class); } - + // class A {}; class B {}; // // template @@ -1251,21 +1252,21 @@ public class IndexCPPTemplateResolutionTest extends IndexBindingResolutionTestBa // public: // class N {}; // }; - + // X::N n; public void testEnclosingScopes_d() throws Exception { ICPPClassType b0= getBindingFromASTName("N n", 1, ICPPClassType.class, ICPPSpecialization.class); ICPPClassType b1= assertInstance(((ICPPSpecialization) b0).getSpecializedBinding(), ICPPClassType.class); - + ICPPClassScope s0= assertInstance(b0.getScope(), ICPPClassScope.class); assertInstance(s0.getClassType(), ICPPTemplateInstance.class); - + ICPPClassScope s1= assertInstance(b1.getScope(), ICPPClassScope.class); assertInstance(s1.getClassType(), ICPPTemplateDefinition.class); - + assertNull(s1.getClassType().getScope()); } - + // typedef signed int SI; // // template @@ -1281,16 +1282,16 @@ public class IndexCPPTemplateResolutionTest extends IndexBindingResolutionTestBa assertInstance(args.keyAt(0), ICPPTemplateNonTypeParameter.class); assertEquals(1, args.size()); } - - // template class A { - // class B { T t; }; - // B b; - // }; - - // void f() { - // A a; - // a.b.t; - // } + + // template class A { + // class B { T t; }; + // B b; + // }; + + // void f() { + // A a; + // a.b.t; + // } public void testNestedClassTypeSpecializations() throws Exception { ICPPField t2 = getBindingFromASTName("t;", 1, ICPPField.class); @@ -1299,7 +1300,7 @@ public class IndexCPPTemplateResolutionTest extends IndexBindingResolutionTestBa assertTrue(type instanceof IBasicType); assertEquals(((IBasicType)type).getType(), IBasicType.t_int); } - + // template struct iterator_traits { // typedef typename _Iterator::pointer pointer; // }; @@ -1311,7 +1312,7 @@ public class IndexCPPTemplateResolutionTest extends IndexBindingResolutionTestBa // template class normal_iterator { // protected: // _Iterator _M_current; - // + // // public: // typedef typename iterator_traits<_Iterator>::pointer pointer; // normal_iterator() : _M_current(_Iterator()) { } @@ -1348,12 +1349,12 @@ public class IndexCPPTemplateResolutionTest extends IndexBindingResolutionTestBa ICPPField t2 = getBindingFromASTName("member; // it->member", 6, ICPPField.class); ICPPClassType ct= t2.getClassOwner(); assertEquals("MyStruct", ct.getName()); - + final IType type = t2.getType(); assertTrue(type instanceof IBasicType); assertEquals(((IBasicType)type).getType(), IBasicType.t_int); } - + // template // class C { // public: @@ -1367,7 +1368,7 @@ public class IndexCPPTemplateResolutionTest extends IndexBindingResolutionTestBa // void foo(aRef& aRefence) {} // void bar(C<_256>& aRefence) {} // void baz(void) {} - + // int main (void) { // C<256> t; // foo(t); @@ -1381,17 +1382,17 @@ public class IndexCPPTemplateResolutionTest extends IndexBindingResolutionTestBa assertInstance(args.keyAt(0), ICPPTemplateNonTypeParameter.class); ICPPBasicType bt= assertInstance(args.getAt(0), ICPPBasicType.class); IASTExpression val= bt.getValue(); - + ICPPFunction foo = getBindingFromASTName("foo(t)", 3, ICPPFunction.class); ICPPFunction bar = getBindingFromASTName("bar(t)", 3, ICPPFunction.class); } - + // template class A {public: class X {};}; // template class A {public: class Y {};}; // template class A {public: class Z {};}; // // class B {}; - + // A::X x; // A::Y y; // A::Z z; @@ -1399,25 +1400,25 @@ public class IndexCPPTemplateResolutionTest extends IndexBindingResolutionTestBa ICPPClassType b2= getBindingFromASTName("A", 9, ICPPClassType.class, ICPPTemplateInstance.class); ICPPClassType b3= getBindingFromASTName("A", 9, ICPPClassType.class, ICPPTemplateInstance.class); ICPPClassType b4= getBindingFromASTName("A", 9, ICPPClassType.class, ICPPTemplateInstance.class); - + assertTrue(!b2.isSameType(b3)); assertTrue(!b3.isSameType(b4)); assertTrue(!b4.isSameType(b2)); - + ICPPClassType X= getBindingFromASTName("X x", 1, ICPPClassType.class); ICPPClassType Y= getBindingFromASTName("Y y", 1, ICPPClassType.class); ICPPClassType Z= getBindingFromASTName("Z z", 1, ICPPClassType.class); - + assertTrue(!X.isSameType(Y)); assertTrue(!Y.isSameType(Z)); assertTrue(!Z.isSameType(X)); } - + // template class A {public: class X {};}; // template class A {public: class Y {};}; // // class B {}; - + // A::X x; //1 // A::Y y; //2 // @@ -1428,10 +1429,10 @@ public class IndexCPPTemplateResolutionTest extends IndexBindingResolutionTestBa ICPPClassType Y= getBindingFromASTName("Y y; //2", 1, ICPPClassType.class); getProblemFromASTName("X x; //3", 1); getProblemFromASTName("Y y; //4", 1); - + assertTrue(!X.isSameType(Y)); } - + // template class A {}; // template<> class A<5> {public: class B{};}; // @@ -1452,18 +1453,18 @@ public class IndexCPPTemplateResolutionTest extends IndexBindingResolutionTestBa ICPPClassType a5c= getBindingFromASTName("A", 7, ICPPClassType.class, ICPPSpecialization.class); ICPPClassType a5d= getBindingFromASTName("A<5>", 4, ICPPClassType.class, ICPPSpecialization.class); ICPPClassType a1= getBindingFromASTName("A<1>", 4, ICPPClassType.class, ICPPTemplateInstance.class); - + assertTrue(a5a.isSameType(a5b)); assertTrue(a5b.isSameType(a5c)); assertTrue(a5c.isSameType(a5d)); assertTrue(a5d.isSameType(a5a)); - + assertTrue(!a1.isSameType(a5a)); assertTrue(!a1.isSameType(a5b)); assertTrue(!a1.isSameType(a5c)); assertTrue(!a1.isSameType(a5d)); } - + // template // class That { // public: @@ -1475,7 +1476,7 @@ public class IndexCPPTemplateResolutionTest extends IndexBindingResolutionTestBa // public: // inline This(); // }; - + // template // inline This::This() : That(I) { // } @@ -1488,12 +1489,12 @@ public class IndexCPPTemplateResolutionTest extends IndexBindingResolutionTestBa ICPPConstructor th1sCtor= ba.assertNonProblem("This() :", 4, ICPPConstructor.class); assertFalse(th1sCtor instanceof ICPPSpecialization);ICPPTemplateNonTypeParameter np= ba.assertNonProblem("I)", 1, ICPPTemplateNonTypeParameter.class); */ - + ICPPTemplateNonTypeParameter np= getBindingFromASTName("I>(I)", 1, ICPPTemplateNonTypeParameter.class); ICPPConstructor clazz= getBindingFromASTName("That(I)", 4, ICPPConstructor.class); ICPPConstructor ctor= getBindingFromASTName("That(I)", 7, ICPPConstructor.class); } - + // template // class That { // public: @@ -1505,7 +1506,7 @@ public class IndexCPPTemplateResolutionTest extends IndexBindingResolutionTestBa // public: // inline This(); // }; - + // template // inline This::This() : That() { // } @@ -1514,59 +1515,59 @@ public class IndexCPPTemplateResolutionTest extends IndexBindingResolutionTestBa assertFalse(tid instanceof ICPPSpecialization); ICPPConstructor th1sCtor= getBindingFromASTName("This() :", 4, ICPPConstructor.class); assertFalse(th1sCtor instanceof ICPPSpecialization); - + ICPPTemplateTypeParameter np= getBindingFromASTName("I>()", 1, ICPPTemplateTypeParameter.class); ICPPConstructor clazz= getBindingFromASTName("That()", 4, ICPPConstructor.class); ICPPConstructor ctor= getBindingFromASTName("That()", 7, ICPPConstructor.class); } - - + + // template class CT { // public: int field; // }; - + // CT v1; public void testUniqueSpecializations_Bug241641() throws Exception { ICPPVariable v1= getBindingFromASTName("v1", 2, ICPPVariable.class); ICPPVariable v2= getBindingFromASTName("v1", 2, ICPPVariable.class); - + IType t1= v1.getType(); assertInstance(t1, ICPPClassType.class); - + ICPPClassType ct= (ICPPClassType) t1; IBinding f1= ct.getCompositeScope().find("field")[0]; IBinding f2= ct.getCompositeScope().find("field")[0]; - + assertSame(f1, f2); } - + // template class CT { // public: int field; // }; - + // CT v1; public void testUniqueInstance_Bug241641() throws Exception { IASTName name= findName("v1", 2); ICPPVariable v1= getBindingFromASTName("v1", 2, ICPPVariable.class); - + IType t1= v1.getType(); assertInstance(t1, ICPPTemplateInstance.class); - + ICPPTemplateInstance inst= (ICPPTemplateInstance) t1; final ICPPClassTemplate tmplDef = (ICPPClassTemplate) inst.getTemplateDefinition(); IBinding inst2= CPPTemplates.instantiate(tmplDef, inst.getTemplateArguments(), name); assertSame(inst, inst2); - + IBinding charInst1= CPPTemplates.instantiate(tmplDef, new ICPPTemplateArgument[] {new CPPTemplateTypeArgument(new CPPBasicType(Kind.eChar, 0))}, name); IBinding charInst2= CPPTemplates.instantiate(tmplDef, new ICPPTemplateArgument[] {new CPPTemplateTypeArgument(new CPPBasicType(Kind.eChar, 0))}, name); assertSame(charInst1, charInst2); } - + // template class XT { // public: void method() {}; // }; // XT x; - + // void test() { // x.method(); // } @@ -1579,22 +1580,22 @@ public class IndexCPPTemplateResolutionTest extends IndexBindingResolutionTestBa assertEquals(1, ms.length); assertEquals(m, ms[0]); } - - // template class A {}; - // template class A { - // void foo(T t); - // }; - // template void A::foo(T t) {} + // template class A {}; + // template class A { + // void foo(T t); + // }; + + // template void A::foo(T t) {} public void testBug177418() throws Exception { ICPPMethod m= getBindingFromASTName("foo", 3, ICPPMethod.class); ICPPClassType owner= m.getClassOwner(); assertInstance(owner, ICPPClassTemplatePartialSpecialization.class); } - - + + // template class XT { - // int f; + // int f; // void m(); // }; @@ -1604,26 +1605,26 @@ public class IndexCPPTemplateResolutionTest extends IndexBindingResolutionTestBa // this->m(); // 2 // this->f; // 2 // }; - public void testUnknownBindings_Bug264988() throws Exception { + public void testUnknownBindings_Bug264988() throws Exception { ICPPMethod m= getBindingFromASTName("m(); // 1", 1, ICPPMethod.class); assertFalse(m instanceof ICPPUnknownBinding); m= getBindingFromASTName("m(); // 2", 1, ICPPMethod.class); assertFalse(m instanceof ICPPUnknownBinding); - + ICPPField f= getBindingFromASTName("f; // 1", 1, ICPPField.class); assertFalse(f instanceof ICPPUnknownBinding); f= getBindingFromASTName("f; // 2", 1, ICPPField.class); assertFalse(f instanceof ICPPUnknownBinding); } - + // template class XT; - + // #include "header.h" // template class XT {}; // void test() { // XT<> x; // }; - public void testDefaultTemplateArgInHeader_264988() throws Exception { + public void testDefaultTemplateArgInHeader_264988() throws Exception { ICPPTemplateInstance ti= getBindingFromASTName("XT<>", 4, ICPPTemplateInstance.class); } @@ -1631,11 +1632,11 @@ public class IndexCPPTemplateResolutionTest extends IndexBindingResolutionTestBa // template class XT { // void m(); // }; - + // template<> void XT::m() { // TInt t; // } - public void testParentScopeOfSpecialization_267013() throws Exception { + public void testParentScopeOfSpecialization_267013() throws Exception { ITypedef ti= getBindingFromASTName("TInt", 4, ITypedef.class); } @@ -1705,10 +1706,10 @@ public class IndexCPPTemplateResolutionTest extends IndexBindingResolutionTestBa // vector v; // f(v.begin()); // } - public void testTemplateMetaprogramming_284686() throws Exception { + public void testTemplateMetaprogramming_284686() throws Exception { getBindingFromASTName("f(v.begin())", 1, ICPPFunction.class); } - + // template class op { // public: // inline static int DO(T key, T key2) { @@ -1724,11 +1725,11 @@ public class IndexCPPTemplateResolutionTest extends IndexBindingResolutionTestBa // Noder1 f; // Noder2 g; // } - public void testInstantiationOfValue_284683() throws Exception { + public void testInstantiationOfValue_284683() throws Exception { getBindingFromASTName("Noder1", 11, ICPPClassSpecialization.class); getBindingFromASTName("Noder2", 11, ICPPClassSpecialization.class); } - + // template struct CT; // template struct CT { @@ -1740,9 +1741,9 @@ public class IndexCPPTemplateResolutionTest extends IndexBindingResolutionTestBa // void test() { // CT p; - // p.f.x; + // p.f.x; // } - public void testTemplateParameterWithoutName_300978() throws Exception { + public void testTemplateParameterWithoutName_300978() throws Exception { getBindingFromASTName("x;", 1, ICPPField.class); ICPPClassSpecialization ctx = getBindingFromASTName("CT", 5, ICPPClassSpecialization.class); ICPPClassTemplate ct= (ICPPClassTemplate) ctx.getSpecializedBinding(); @@ -1762,13 +1763,13 @@ public class IndexCPPTemplateResolutionTest extends IndexBindingResolutionTestBa // f(1); // g(1); // } - public void testExplicitSpecializations_296427() throws Exception { + public void testExplicitSpecializations_296427() throws Exception { ICPPTemplateInstance inst; inst= getBindingFromASTName("X", 0); assertFalse(inst.isExplicitSpecialization()); inst = getBindingFromASTName("Y", 0); assertTrue(inst.isExplicitSpecialization()); - + inst = getBindingFromASTName("f(1)", 1); assertFalse(inst.isExplicitSpecialization()); inst = getBindingFromASTName("g(1)", 1); @@ -1783,7 +1784,7 @@ public class IndexCPPTemplateResolutionTest extends IndexBindingResolutionTestBa // void test() { // OutStream out; // out << endl; - // } + // } public void testInstantiationOfEndl_297457() throws Exception { final IBinding reference = getBindingFromASTName("<< endl", 2); assertTrue(reference instanceof ICPPSpecialization); @@ -1818,7 +1819,7 @@ public class IndexCPPTemplateResolutionTest extends IndexBindingResolutionTestBa // }; // int main() { // A a; - // a.f(0); + // a.f(0); // return 0; // } public void testPartialSpecializationsOfClassTemplateSpecializations_332884() throws Exception { @@ -1837,22 +1838,22 @@ public class IndexCPPTemplateResolutionTest extends IndexBindingResolutionTestBa // struct Nested {}; // }; // struct TXT : XT {}; - + // TXT x; public void testClassSpecialization_Bug354086() throws Exception { ICPPClassType ct= getBindingFromASTName("TXT", 0, ICPPClassType.class); ICPPMethod[] methods = ct.getAllDeclaredMethods(); assertEquals(2, methods.length); - + methods= ct.getConstructors(); assertEquals(2, methods.length); methods= ct.getMethods(); assertEquals(14, methods.length); - + ICPPBase[] bases = ClassTypeHelper.getBases(ct, null); assertEquals(1, bases.length); - + IField field = ct.findField("bfield"); assertNotNull(field); @@ -1862,7 +1863,7 @@ public class IndexCPPTemplateResolutionTest extends IndexBindingResolutionTestBa IBinding[] friends = ClassTypeHelper.getFriends(ct, null); assertEquals(0, friends.length); // not yet supported } - + // struct A { // void f() { } // }; @@ -1876,7 +1877,7 @@ public class IndexCPPTemplateResolutionTest extends IndexBindingResolutionTestBa // }; // B b; // C c; - + // #include "header.h" // void test() { // b.f(); @@ -1904,7 +1905,7 @@ public class IndexCPPTemplateResolutionTest extends IndexBindingResolutionTestBa public void testUsageOfClassTemplateOutsideOfClassBody_357320() throws Exception { getBindingFromASTName("m1", 0, ICPPMethod.class); } - + // template struct foo; // template <> struct foo { // typedef int type; @@ -1932,7 +1933,7 @@ public class IndexCPPTemplateResolutionTest extends IndexBindingResolutionTestBa public void testSpecializationInIndex_367563b() throws Exception { getBindingFromASTName("type type", 4, ITypedef.class); } - + // template struct remove_const_impl {}; // template struct remove_const_impl { // typedef T type;