kadircet updated this revision to Diff 187213. kadircet added a comment. - Add more testcases
Repository: rCTE Clang Tools Extra CHANGES SINCE LAST ACTION https://reviews.llvm.org/D58190/new/ https://reviews.llvm.org/D58190 Files: unittests/clangd/XRefsTests.cpp Index: unittests/clangd/XRefsTests.cpp =================================================================== --- unittests/clangd/XRefsTests.cpp +++ unittests/clangd/XRefsTests.cpp @@ -350,6 +350,58 @@ FF(); void f() { T^est a; } )cpp", + + R"cpp( + template <typename T> + struct Foo { void bar() {} }; + + template <> + struct [[Foo]]<int> { void bar() {} }; + + void foo() { + Foo<char> abc; + Fo^o<int> b; + } + )cpp", + + R"cpp( + template <typename T> + struct [[Foo]] { void bar() {} }; + template <> + struct Foo<int> { void bar() {} }; + void foo() { + Fo^o<char> abc; + Foo<int> b; + } + )cpp", + + R"cpp(// partial tmeplate specialization + template <typename T> + struct Foo { void bar() {} }; + template <typename T> + struct [[Foo]]<T*> { void bar() {} }; + ^Foo<int*> x; + )cpp", + + R"cpp(/// function template specializations + template <class T> + void foo(T) {} + template <> + void [[foo]](int) {} + void bar() { + fo^o(10); + } + )cpp", + + R"cpp(/// variable template decls + template <class T> + T var = T(); + + template <> + double [[var]]<int> = 10; + + double y = va^r<int>; + )cpp", }; for (const char *Test : Tests) { Annotations T(Test);
Index: unittests/clangd/XRefsTests.cpp =================================================================== --- unittests/clangd/XRefsTests.cpp +++ unittests/clangd/XRefsTests.cpp @@ -350,6 +350,58 @@ FF(); void f() { T^est a; } )cpp", + + R"cpp( + template <typename T> + struct Foo { void bar() {} }; + + template <> + struct [[Foo]]<int> { void bar() {} }; + + void foo() { + Foo<char> abc; + Fo^o<int> b; + } + )cpp", + + R"cpp( + template <typename T> + struct [[Foo]] { void bar() {} }; + template <> + struct Foo<int> { void bar() {} }; + void foo() { + Fo^o<char> abc; + Foo<int> b; + } + )cpp", + + R"cpp(// partial tmeplate specialization + template <typename T> + struct Foo { void bar() {} }; + template <typename T> + struct [[Foo]]<T*> { void bar() {} }; + ^Foo<int*> x; + )cpp", + + R"cpp(/// function template specializations + template <class T> + void foo(T) {} + template <> + void [[foo]](int) {} + void bar() { + fo^o(10); + } + )cpp", + + R"cpp(/// variable template decls + template <class T> + T var = T(); + + template <> + double [[var]]<int> = 10; + + double y = va^r<int>; + )cpp", }; for (const char *Test : Tests) { Annotations T(Test);
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits