diff options
author | Andrew Niefer | 2005-06-20 15:48:29 +0000 |
---|---|---|
committer | Andrew Niefer | 2005-06-20 15:48:29 +0000 |
commit | 9c09cf1ebb43d4dd35232e56126457495d68cb14 (patch) | |
tree | dcc4c6376c6ba4b59ab76299bd1975f21f30d678 | |
parent | a3fe799c39aeb2266f59fbe24e5cd8a70df4e304 (diff) | |
download | org.eclipse.cdt-9c09cf1ebb43d4dd35232e56126457495d68cb14.tar.gz org.eclipse.cdt-9c09cf1ebb43d4dd35232e56126457495d68cb14.tar.xz org.eclipse.cdt-9c09cf1ebb43d4dd35232e56126457495d68cb14.zip |
fix bug 98666- template names
2 files changed, 18 insertions, 1 deletions
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 d87542a3293..58564d0aa21 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 @@ -30,6 +30,8 @@ import org.eclipse.cdt.core.dom.ast.IProblemBinding; import org.eclipse.cdt.core.dom.ast.IScope; import org.eclipse.cdt.core.dom.ast.IType; import org.eclipse.cdt.core.dom.ast.ITypedef; +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.ICPPClassScope; import org.eclipse.cdt.core.dom.ast.cpp.ICPPClassTemplate; import org.eclipse.cdt.core.dom.ast.cpp.ICPPClassTemplatePartialSpecialization; @@ -1748,4 +1750,17 @@ public class AST2TemplateTests extends AST2BaseTest { assertSame( add, col.getName(16).resolveBinding() ); } + + public void testBug98666() throws Exception { + StringBuffer buffer = new StringBuffer(); + + IASTTranslationUnit tu = parse( "A::template B<T> b;", ParserLanguage.CPP ); + CPPNameCollector col = new CPPNameCollector(); + tu.accept( col ); + + ICPPASTQualifiedName qn = (ICPPASTQualifiedName) col.getName(0); + IASTName [] ns = qn.getNames(); + assertTrue( ns[1] instanceof ICPPASTTemplateId ); + assertEquals( ((ICPPASTTemplateId)ns[1]).toString(), "B" ); + } } diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/token/BasicTokenDuple.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/token/BasicTokenDuple.java index 0383a72566c..fbda397e9a8 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/token/BasicTokenDuple.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/token/BasicTokenDuple.java @@ -442,7 +442,9 @@ public class BasicTokenDuple implements ITokenDuple { if( i == null ) return EMPTY_STRING; - + else if( i.getType() == IToken.t_template ) + i = i.getNext(); + char[] tempArray = i.getCharImage(); if( i == last ) |