diff --git a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2TemplateTests.java b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2TemplateTests.java index 8b7058858c0..4db597e20d2 100644 --- a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2TemplateTests.java +++ b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2TemplateTests.java @@ -13,6 +13,7 @@ * Sergey Prigogin (Google) * Thomas Corbat (IFS) * Nathan Ridge + * Danny Ferreira *******************************************************************************/ package org.eclipse.cdt.core.parser.tests.ast2; @@ -1968,7 +1969,8 @@ public class AST2TemplateTests extends AST2TestBase { ITypedef myType = (ITypedef) col.getName(31).resolveBinding(); ICPPClassType A = (ICPPClassType) myType.getType(); - ICPPSpecialization Aspec = (ICPPSpecialization) col.getName(10).resolveBinding(); + ICPPClassTemplatePartialSpecialization Aspec = + (ICPPClassTemplatePartialSpecialization) col.getName(10).resolveBinding(); assertTrue(A instanceof ICPPTemplateInstance); assertSame(((ICPPTemplateInstance)A).getTemplateDefinition(), Aspec); @@ -3224,7 +3226,67 @@ public class AST2TemplateTests extends AST2TestBase { BindingAssertionHelper ba= new BindingAssertionHelper(getAboveComment(), CPP); ba.assertNonProblem("foo(s", 3); } + + // template + // struct result : U { + // typedef typename result::result_type type; + // }; + // + // struct B { + // typedef int result_type; + // }; + // + // typedef result::type waldo; + public void testDependentBaseLookup_408314a() throws Exception { + BindingAssertionHelper bh = getAssertionHelper(); + ITypedef waldo = bh.assertNonProblem("waldo"); + assertSameType(waldo.getType(), CommonTypes.int_); + } + + // template + // struct A { + // template + // struct result; + // + // template + // struct result : T { + // typedef typename result::result_type type; + // }; + // }; + // + // struct B { + // typedef int result_type; + // }; + // + // typedef A::result::type waldo; + public void testDependentBaseLookup_408314b() throws Exception { + BindingAssertionHelper bh = getAssertionHelper(); + ITypedef waldo = bh.assertNonProblem("waldo"); + assertSameType(waldo.getType(), CommonTypes.int_); + } + // template + // struct A { + // template + // struct result; + // + // template + // struct result : T { + // typedef typename result::result_type type; + // }; + // }; + // + // struct B { + // typedef int result_type; + // }; + // + // typedef A::result::type waldo; + public void testDependentBaseLookup_408314c() throws Exception { + BindingAssertionHelper bh = getAssertionHelper(); + ITypedef waldo = bh.assertNonProblem("waldo"); + assertSameType(waldo.getType(), CommonTypes.int_); + } + // template // class A { // public: 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 dd55f8fb57c..d07eab93b7a 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 @@ -599,17 +599,14 @@ public class IndexCPPTemplateResolutionTest extends IndexBindingResolutionTestBa IBinding b3= getBindingFromASTName("D