// RUN: %clang_cc1 -triple x86_64-unknown-unknown -std=c++17 -ast-dump %s | FileCheck -strict-whitespace %s // Tests to verify we construct correct using template names. // TemplateNames are not dumped, so the sugar here isn't obvious. However // the "using" on the TemplateSpecializationTypes shows that the // UsingTemplateName is present. namespace ns { template class S { public: S(T); }; } using ns::S; // TemplateName in TemplateSpecializationType. template using A = S; // CHECK: TypeAliasDecl // CHECK-NEXT: `-ElaboratedType {{.*}} 'S' sugar dependent // CHECK-NEXT: `-TemplateSpecializationType {{.*}} 'S' dependent using S // TemplateName in TemplateArgument. template