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*89a1d03eSRichardvoid f() { 28*89a1d03eSRichard Foo(123); 29*89a1d03eSRichard Bar(1); 30*89a1d03eSRichard } 31