summaryrefslogtreecommitdiffstats
path: root/clang-tools-extra/unittests/change-namespace/ChangeNamespaceTests.cpp
diff options
context:
space:
mode:
authorEric Liu <ioeric@google.com>2017-03-17 14:05:39 +0000
committerEric Liu <ioeric@google.com>2017-03-17 14:05:39 +0000
commit284b97c6bcc91184c327b75d3837100abdd0dc0d (patch)
treea627fa2560d49795341ce3987cfe417cace8ba4d /clang-tools-extra/unittests/change-namespace/ChangeNamespaceTests.cpp
parent89b1f94e64e678f19f1e832fdd00de1ece946c9f (diff)
downloadbcm5719-llvm-284b97c6bcc91184c327b75d3837100abdd0dc0d.tar.gz
bcm5719-llvm-284b97c6bcc91184c327b75d3837100abdd0dc0d.zip
[change-namespace] do not rename specialized template parameters.
Reviewers: hokein Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D31076 llvm-svn: 298090
Diffstat (limited to 'clang-tools-extra/unittests/change-namespace/ChangeNamespaceTests.cpp')
-rw-r--r--clang-tools-extra/unittests/change-namespace/ChangeNamespaceTests.cpp46
1 files changed, 46 insertions, 0 deletions
diff --git a/clang-tools-extra/unittests/change-namespace/ChangeNamespaceTests.cpp b/clang-tools-extra/unittests/change-namespace/ChangeNamespaceTests.cpp
index d0a3985ab88..a5e60eaaee4 100644
--- a/clang-tools-extra/unittests/change-namespace/ChangeNamespaceTests.cpp
+++ b/clang-tools-extra/unittests/change-namespace/ChangeNamespaceTests.cpp
@@ -2006,6 +2006,52 @@ TEST_F(ChangeNamespaceTest, EnumInClass) {
EXPECT_EQ(format(Expected), runChangeNamespaceOnCode(Code));
}
+TEST_F(ChangeNamespaceTest, TypeAsTemplateParameter) {
+ std::string Code = "namespace na {\n"
+ "struct X {};\n"
+ "namespace nb {\n"
+ "template <typename TT>\n"
+ "void TempTemp(const TT& t) {\n"
+ " TT tmp;\n"
+ "}\n"
+ "template <typename T>\n"
+ "void Temp(const T& t) {\n"
+ " T tmp = t;\n"
+ " TempTemp(tmp);\n"
+ " TempTemp(t);\n"
+ "}\n"
+ "void f() {\n"
+ " X x;\n"
+ " Temp(x);\n"
+ "}\n"
+ "} // namespace nb\n"
+ "} // namespace na\n";
+ std::string Expected = "namespace na {\n"
+ "struct X {};\n"
+ "\n"
+ "} // namespace na\n"
+ "namespace x {\n"
+ "namespace y {\n"
+ "template <typename TT>\n"
+ "void TempTemp(const TT& t) {\n"
+ " TT tmp;\n"
+ "}\n"
+ "template <typename T>\n"
+ "void Temp(const T& t) {\n"
+ " T tmp = t;\n"
+ " TempTemp(tmp);\n"
+ " TempTemp(t);\n"
+ "}\n"
+ "void f() {\n"
+ " ::na::X x;\n"
+ " Temp(x);\n"
+ "}\n"
+ "} // namespace y\n"
+ "} // namespace x\n";
+
+ EXPECT_EQ(format(Expected), runChangeNamespaceOnCode(Code));
+}
+
} // anonymous namespace
} // namespace change_namespace
} // namespace clang
OpenPOWER on IntegriCloud