From 6631c857b996d332e9c7a455e327322e0c372c24 Mon Sep 17 00:00:00 2001 From: Nathan Ridge Date: Sun, 8 Sep 2013 00:47:54 -0400 Subject: Bug 416788 - [regression] "Member declaration not found" for member of template specialization Change-Id: I388ea1f7dc6ff2bf315958960a113e9110acd9c8 Signed-off-by: Nathan Ridge Reviewed-on: https://git.eclipse.org/r/16207 Reviewed-by: Sergey Prigogin IP-Clean: Sergey Prigogin Tested-by: Sergey Prigogin --- .../core/parser/tests/ast2/AST2TemplateTests.java | 20 ++++++++++++++++++++ .../core/dom/parser/cpp/CPPNamespaceScope.java | 2 +- 2 files changed, 21 insertions(+), 1 deletion(-) 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 8e258b4da25..79df6f44e9c 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 @@ -8076,4 +8076,24 @@ public class AST2TemplateTests extends AST2TestBase { helper.assertNonProblem("decltype(foo(T()))::type"); assertSameType((ITypedef) helper.assertNonProblem("U::type"), CommonTypes.int_); } + + // namespace N { + // template + // struct C; + // + // template + // struct C { + // C(); + // void waldo(); + // }; + // + // template + // C::C() {} + // + // template + // void C::waldo() {} + // } + public void testMemberOfPartialSpecialization_416788() throws Exception { + parseAndCheckBindings(); + } } diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPNamespaceScope.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPNamespaceScope.java index c4b2729e587..205e9de5480 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPNamespaceScope.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPNamespaceScope.java @@ -163,7 +163,7 @@ public class CPPNamespaceScope extends CPPScope implements ICPPInternalNamespace IScope scope= this; ICPPASTNameSpecifier[] segments= name.getQualifier(); try { - for (int i= segments.length - 1; --i >= 0;) { + for (int i= segments.length; --i >= 0;) { if (scope == null) return false; IName scopeName = scope.getScopeName(); -- cgit v1.2.3