diff --git a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2CPPTests.java b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2CPPTests.java index d9a1ea13ac4..5aad6f9d918 100644 --- a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2CPPTests.java +++ b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2CPPTests.java @@ -2124,5 +2124,23 @@ public class AST2CPPTests extends AST2BaseTest { assertSame( refs[0], col.getName(4) ); assertSame( refs[1], col.getName(7) ); } + + public void testBug86372() throws Exception { + StringBuffer buffer = new StringBuffer(); + buffer.append("class A { \n"); //$NON-NLS-1$ + buffer.append(" public: \n"); //$NON-NLS-1$ + buffer.append(" template void f(T); \n"); //$NON-NLS-1$ + buffer.append(" template struct X { }; \n"); //$NON-NLS-1$ + buffer.append("}; \n"); //$NON-NLS-1$ + buffer.append("class B : public A { \n"); //$NON-NLS-1$ + buffer.append(" public: \n"); //$NON-NLS-1$ + buffer.append(" using A::f; // illformed \n"); //$NON-NLS-1$ + buffer.append(" using A::X; // illformed \n"); //$NON-NLS-1$ + buffer.append("}; \n"); //$NON-NLS-1$ + + IASTTranslationUnit tu = parse(buffer.toString(), ParserLanguage.CPP); + CPPNameCollector col = new CPPNameCollector(); + tu.getVisitor().visitTranslationUnit(col); + } } diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTTemplateId.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTTemplateId.java index e8f21d2eeae..510f4ba4c7c 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTTemplateId.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTTemplateId.java @@ -21,7 +21,8 @@ import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTTemplateId; * @author jcamelon */ public class CPPASTTemplateId extends CPPASTNode implements ICPPASTTemplateId { - + private static final char[] EMPTY_CHAR_ARRAY = { }; + private static final String EMPTY_STRING = ""; //$NON-NLS-1$ private IASTName templateName; /* (non-Javadoc) @@ -121,8 +122,10 @@ public class CPPASTTemplateId extends CPPASTNode implements ICPPASTTemplateId { * @see org.eclipse.cdt.core.dom.ast.IASTName#toCharArray() */ public char[] toCharArray() { - // TODO Auto-generated method stub - return null; + return EMPTY_CHAR_ARRAY; + } + public String toString() { + return EMPTY_STRING; } }