Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrew Niefer2005-06-20 15:48:29 +0000
committerAndrew Niefer2005-06-20 15:48:29 +0000
commit9c09cf1ebb43d4dd35232e56126457495d68cb14 (patch)
treedcc4c6376c6ba4b59ab76299bd1975f21f30d678
parenta3fe799c39aeb2266f59fbe24e5cd8a70df4e304 (diff)
downloadorg.eclipse.cdt-9c09cf1ebb43d4dd35232e56126457495d68cb14.tar.gz
org.eclipse.cdt-9c09cf1ebb43d4dd35232e56126457495d68cb14.tar.xz
org.eclipse.cdt-9c09cf1ebb43d4dd35232e56126457495d68cb14.zip
fix bug 98666- template names
-rw-r--r--core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2TemplateTests.java15
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/token/BasicTokenDuple.java4
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 )

Back to the top