summaryrefslogtreecommitdiffstats
path: root/unittests
diff options
context:
space:
mode:
authorHaojian Wu <hokein@google.com>2017-10-23 08:58:50 +0000
committerHaojian Wu <hokein@google.com>2017-10-23 08:58:50 +0000
commit4e7c0628623316fe522d2b2688d8c7d4a8047105 (patch)
tree18a3e635edf72365b837fd34736b2607189dfe14 /unittests
parentef34bcb258ffbf7a500bb715edced98fe6348676 (diff)
[rename] Don't overwrite the template argument when renaming a template function.
Reviewers: ioeric Reviewed By: ioeric Subscribers: cierpuchaw, cfe-commits, klimek Differential Revision: https://reviews.llvm.org/D39120 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@316314 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'unittests')
-rw-r--r--unittests/Rename/RenameFunctionTest.cpp19
1 files changed, 19 insertions, 0 deletions
diff --git a/unittests/Rename/RenameFunctionTest.cpp b/unittests/Rename/RenameFunctionTest.cpp
index ef84b4bdb7..b27bbe273a 100644
--- a/unittests/Rename/RenameFunctionTest.cpp
+++ b/unittests/Rename/RenameFunctionTest.cpp
@@ -220,6 +220,25 @@ TEST_F(RenameFunctionTest, RenameFunctionDecls) {
CompareSnippets(Expected, After);
}
+TEST_F(RenameFunctionTest, RenameTemplateFunctions) {
+ std::string Before = R"(
+ namespace na {
+ template<typename T> T X();
+ }
+ namespace na { void f() { X<int>(); } }
+ namespace nb { void g() { na::X <int>(); } }
+ )";
+ std::string Expected = R"(
+ namespace na {
+ template<typename T> T Y();
+ }
+ namespace na { void f() { nb::Y<int>(); } }
+ namespace nb { void g() { Y<int>(); } }
+ )";
+ std::string After = runClangRenameOnCode(Before, "na::X", "nb::Y");
+ CompareSnippets(Expected, After);
+}
+
TEST_F(RenameFunctionTest, RenameOutOfLineFunctionDecls) {
std::string Before = R"(
namespace na {