diff --git a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2CPPSpecFailingTest.java b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2CPPSpecFailingTest.java index 55f50da31cb..b5af225df91 100644 --- a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2CPPSpecFailingTest.java +++ b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2CPPSpecFailingTest.java @@ -73,19 +73,4 @@ public class AST2CPPSpecFailingTest extends AST2SpecBaseTest { public void _test14_8_2_4s8() throws Exception { parse(getAboveComment(), ParserLanguage.CPP, true, 0); } - - // template - // T deduce(typename A::X x, // T is not deduced here - // T t, // but T is deduced here - // typename B::Y y); // i is not deduced here - // A a; - // B<77> b; - // int x = deduce<77>(a.xm, 62, y.ym); - // // T is deduced to be int, a.xm must be convertible to - // // A::X - // // i is explicitly specified to be 77, y.ym must be convertible - // // to B<77>::Y - public void _test14_8_2_4s14() throws Exception { - parse(getAboveComment(), ParserLanguage.CPP, true, 0); - } } diff --git a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2CPPSpecTest.java b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2CPPSpecTest.java index f9ec4cbbffc..4419936b960 100644 --- a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2CPPSpecTest.java +++ b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2CPPSpecTest.java @@ -5667,6 +5667,29 @@ public class AST2CPPSpecTest extends AST2SpecBaseTest { parse(getAboveComment(), ParserLanguage.CPP, false, 0); } + // template class A { + // public: + // typedef int X; + // X xm; + // }; + // template class B { + // public: + // typedef int* Y; + // Y ym; + // }; + // template + // T deduce(typename A::X x, // T is not deduced here + // T t, // but T is deduced here + // typename B::Y y); // i is not deduced here + // void test() { + // A a; + // B<77> b; + // deduce<77> (a.xm, 62, b.ym); + // } + public void test14_8_2_4s14() throws Exception { + parse(getAboveComment(), ParserLanguage.CPP, true, 0); + } + // template class A { /* ... */ }; // template void f(A); // void k1() { diff --git a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/internal/index/tests/IndexCBindingResolutionTest.java b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/internal/index/tests/IndexCBindingResolutionTest.java index 2594d6fbdbf..f7b8e5a630f 100644 --- a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/internal/index/tests/IndexCBindingResolutionTest.java +++ b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/internal/index/tests/IndexCBindingResolutionTest.java @@ -348,12 +348,7 @@ public class IndexCBindingResolutionTest extends IndexBindingResolutionTestBase IBinding b10 = getBindingFromASTName("foo1/*k*/", 4); IBinding b10a = getBindingFromASTName("sp);/*9*/ ", 2); } - - public void _testEnumeratorInFileScope() {fail("todo");} - public void _testEnumeratorInStructScope() {fail("todo");} - public void _testEnumeratorInUnionScope() {fail("todo");} - public void _testMemberAccess() {fail("todo");} - + // // header file // struct myStruct { // int a; diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/CPPTemplates.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/CPPTemplates.java index 12cf86cb37a..733c1b7215d 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/CPPTemplates.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/CPPTemplates.java @@ -648,7 +648,7 @@ public class CPPTemplates { return null; // mstodo- instantiate values correctly int parPos= Value.isTemplateParameter(value); - if (parPos > 0) { + if (parPos >= 0) { ICPPTemplateArgument arg = tpMap.getArgument(parPos); if (arg != null) { IValue mappedValue = arg.getNonTypeValue();