xref: /llvm-project/clang-tools-extra/test/clang-tidy/checkers/misc/unused-using-decls-cxx17.cpp (revision 89a1d03e2b379e325daa5249411e414bbd995b5e)
1*89a1d03eSRichard // RUN: %check_clang_tidy -std=c++17-or-later %s misc-unused-using-decls %t -- --fix-notes -- -fno-delayed-template-parsing
2*89a1d03eSRichard 
3*89a1d03eSRichard namespace ns {
4*89a1d03eSRichard 
5*89a1d03eSRichard template <typename T> class Foo {
6*89a1d03eSRichard public:
7*89a1d03eSRichard   Foo(T);
8*89a1d03eSRichard };
9*89a1d03eSRichard // Deduction guide (CTAD)
10*89a1d03eSRichard template <typename T> Foo(T t) -> Foo<T>;
11*89a1d03eSRichard 
12*89a1d03eSRichard template <typename T> class Bar {
13*89a1d03eSRichard public:
14*89a1d03eSRichard   Bar(T);
15*89a1d03eSRichard };
16*89a1d03eSRichard 
17*89a1d03eSRichard template <typename T> class Unused {};
18*89a1d03eSRichard 
19*89a1d03eSRichard } // namespace ns
20*89a1d03eSRichard 
21*89a1d03eSRichard using ns::Bar;
22*89a1d03eSRichard using ns::Foo;
23*89a1d03eSRichard using ns::Unused; // Unused
24*89a1d03eSRichard // CHECK-MESSAGES: :[[@LINE-1]]:11: warning: using decl 'Unused' is unused
25*89a1d03eSRichard // CHECK-FIXES: {{^}}// Unused
26*89a1d03eSRichard 
f()27*89a1d03eSRichard void f() {
28*89a1d03eSRichard   Foo(123);
29*89a1d03eSRichard   Bar(1);
30*89a1d03eSRichard }
31