]> granicus.if.org Git - clang/commitdiff
Stop using "template" when printing qualtype names
authorReid Kleckner <rnk@google.com>
Tue, 16 Feb 2016 20:34:27 +0000 (20:34 +0000)
committerReid Kleckner <rnk@google.com>
Tue, 16 Feb 2016 20:34:27 +0000 (20:34 +0000)
Summary:
The keyword "template" isn't necessary when
printing a fully-qualified qualtype name, and, in fact,
results in a syntax error if one tries to use it. So stop
printing it.

Reviewers: rsmith, rnk

Subscribers: rnk, klimek, cfe-commits

Differential Revision: http://reviews.llvm.org/D17214

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@261005 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Tooling/Core/QualTypeNames.cpp
unittests/Tooling/QualTypeNamesTest.cpp

index 2ff6bad4064b2a3b8b11f3d0680a1de3f400333f..02773be2a1819eb36d68f75794f5c55956757715 100644 (file)
@@ -329,7 +329,8 @@ NestedNameSpecifier *createNestedNameSpecifier(
 NestedNameSpecifier *createNestedNameSpecifier(
     const ASTContext &Ctx, const TypeDecl *TD, bool FullyQualify) {
   return NestedNameSpecifier::Create(Ctx, createOuterNNS(Ctx, TD, FullyQualify),
-                                     true /*Template*/, TD->getTypeForDecl());
+                                     false /*No TemplateKeyword*/,
+                                     TD->getTypeForDecl());
 }
 
 /// \brief Return the fully qualified type, including fully-qualified
index 889c52523194c820d002b278078e06954c09e45d..d7e7de52e88fc6c41d95ee368e626ff7e1f5e08d 100644 (file)
@@ -85,7 +85,8 @@ TEST(QualTypeNameTest, getFullyQualifiedName) {
   // Namespace alias
   Visitor.ExpectedQualTypeNames["CheckL"] = "A::B::C::MyInt";
   Visitor.ExpectedQualTypeNames["non_dependent_type_var"] =
-      "template Foo<X>::non_dependent_type";
+      "Foo<X>::non_dependent_type";
+  Visitor.ExpectedQualTypeNames["AnEnumVar"] = "EnumScopeClass::AnEnum";
   Visitor.runOver(
       "int CheckInt;\n"
       "namespace A {\n"
@@ -143,6 +144,11 @@ TEST(QualTypeNameTest, getFullyQualifiedName) {
       "  var.dependent_type_var = 0;\n"
       "var.non_dependent_type_var = 0;\n"
       "}\n"
+      "class EnumScopeClass {\n"
+      "public:\n"
+      "  enum AnEnum { ZERO, ONE };\n"
+      "};\n"
+      "EnumScopeClass::AnEnum AnEnumVar;\n"
 );
 
   TypeNameVisitor Complex;