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 549e1b1cd69..915e1bd1de4 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 @@ -528,7 +528,7 @@ public class IndexCPPTemplateResolutionTest extends IndexBindingResolutionTestBa // void test() { // B::a; // } - public void _testInstanceInheritance_258745() throws Exception { + public void testInstanceInheritance_258745() throws Exception { getBindingFromASTName("a", 1, ICPPField.class); } diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPLinkage.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPLinkage.java index 71747bd3b2d..2a52bf28604 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPLinkage.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPLinkage.java @@ -37,6 +37,7 @@ import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTElaboratedTypeSpecifier; import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTFunctionDeclarator; import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTNamespaceDefinition; import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTQualifiedName; +import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTTemplateId; import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTUsingDirective; import org.eclipse.cdt.core.dom.ast.cpp.ICPPBasicType; import org.eclipse.cdt.core.dom.ast.cpp.ICPPClassScope; @@ -847,9 +848,14 @@ class PDOMCPPLinkage extends PDOMLinkage implements IIndexCPPBindingConstants { super.onCreateName(file, name, pdomName); IASTNode parentNode= name.getParent(); + IASTNode nameNode = name; + if (name.getPropertyInParent() == ICPPASTTemplateId.TEMPLATE_NAME && + parentNode.getParent() instanceof ICPPASTQualifiedName) { + nameNode = parentNode; + parentNode = parentNode.getParent(); + } if (parentNode instanceof ICPPASTQualifiedName) { - IASTName[] ns = ((ICPPASTQualifiedName) parentNode).getNames(); - if (name != ns[ns.length - 1]) { + if (nameNode != ((ICPPASTQualifiedName) parentNode).getLastName()) { return; } parentNode = parentNode.getParent();