[clang] 62bcb75 - [AST] Add more testcases to QualTypeNamesTest. NFC

Sam McCall via cfe-commits cfe-commits at lists.llvm.org
Wed Dec 15 13:02:26 PST 2021


Author: Sam McCall
Date: 2021-12-15T21:59:54+01:00
New Revision: 62bcb75ce5108c2536b8bf7f4428034d418b9c0b

URL: https://github.com/llvm/llvm-project/commit/62bcb75ce5108c2536b8bf7f4428034d418b9c0b
DIFF: https://github.com/llvm/llvm-project/commit/62bcb75ce5108c2536b8bf7f4428034d418b9c0b.diff

LOG: [AST] Add more testcases to QualTypeNamesTest. NFC

These all currently pass, but are tricky cases not currently covered.
https://reviews.llvm.org/D114251 would break them in its current state.

Added: 
    

Modified: 
    clang/unittests/Tooling/QualTypeNamesTest.cpp

Removed: 
    


################################################################################
diff  --git a/clang/unittests/Tooling/QualTypeNamesTest.cpp b/clang/unittests/Tooling/QualTypeNamesTest.cpp
index 4ae6861751b8..336a27e69be5 100644
--- a/clang/unittests/Tooling/QualTypeNamesTest.cpp
+++ b/clang/unittests/Tooling/QualTypeNamesTest.cpp
@@ -92,6 +92,9 @@ TEST(QualTypeNameTest, getFullyQualifiedName) {
       "OuterTemplateClass<A::B::Class0>::Inner";
   Visitor.ExpectedQualTypeNames["CheckM"] = "const A::B::Class0 *";
   Visitor.ExpectedQualTypeNames["CheckN"] = "const X *";
+  Visitor.ExpectedQualTypeNames["ttp_using"] =
+      "OuterTemplateClass<A::B::Class0>";
+  Visitor.ExpectedQualTypeNames["alias_of_template"] = "ABTemplate0IntInt";
   Visitor.runOver(
       "int CheckInt;\n"
       "template <typename T>\n"
@@ -124,6 +127,9 @@ TEST(QualTypeNameTest, getFullyQualifiedName) {
       "}\n"
       "using A::B::Class0;\n"
       "void Function(Class0 CheckF);\n"
+      "OuterTemplateClass<Class0> ttp_using;\n"
+      "using ABTemplate0IntInt = A::B::Template0<int, int>;\n"
+      "void Function(ABTemplate0IntInt alias_of_template);\n"
       "using namespace A::B::C;\n"
       "void Function(MyInt CheckG);\n"
       "void f() {\n"
@@ -182,6 +188,25 @@ TEST(QualTypeNameTest, getFullyQualifiedName) {
       "  struct A { typedef int X; };"
       "}");
 
+  TypeNameVisitor DoubleUsing;
+  DoubleUsing.ExpectedQualTypeNames["direct"] = "a::A<0>";
+  DoubleUsing.ExpectedQualTypeNames["indirect"] = "b::B";
+  DoubleUsing.ExpectedQualTypeNames["double_indirect"] = "b::B";
+  DoubleUsing.runOver(R"cpp(
+    namespace a {
+      template<int> class A {};
+      A<0> direct;
+    }
+    namespace b {
+      using B = ::a::A<0>;
+      B indirect;
+    }
+    namespace b {
+      using ::b::B;
+      B double_indirect;
+    }
+  )cpp");
+
   TypeNameVisitor GlobalNsPrefix;
   GlobalNsPrefix.WithGlobalNsPrefix = true;
   GlobalNsPrefix.ExpectedQualTypeNames["IntVal"] = "int";


        


More information about the cfe-commits mailing list