summaryrefslogtreecommitdiffstats
path: root/clang/unittests/Format/FormatTest.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'clang/unittests/Format/FormatTest.cpp')
-rw-r--r--clang/unittests/Format/FormatTest.cpp35
1 files changed, 35 insertions, 0 deletions
diff --git a/clang/unittests/Format/FormatTest.cpp b/clang/unittests/Format/FormatTest.cpp
index 581d15672ba..ecb3dddfdf8 100644
--- a/clang/unittests/Format/FormatTest.cpp
+++ b/clang/unittests/Format/FormatTest.cpp
@@ -14373,6 +14373,41 @@ TEST_F(FormatTest, AmbersandInLamda) {
verifyFormat("auto lambda = [&a = a]() { a = 2; };", AlignStyle);
}
+TEST_F(FormatTest, RefQualifiedTemplateMember) {
+ FormatStyle AlignStyle = getLLVMStyle();
+ AlignStyle.AlwaysBreakTemplateDeclarations = FormatStyle::BTDS_Yes;
+
+ verifyFormat("struct f {\n"
+ " template <class T>\n"
+ " int &foo() & noexcept {}\n"
+ "};",
+ AlignStyle);
+
+ verifyFormat("struct f {\n"
+ " template <class T>\n"
+ " int &foo() && noexcept {}\n"
+ "};",
+ AlignStyle);
+
+ verifyFormat("struct f {\n"
+ " template <class T>\n"
+ " int &foo() const & noexcept {}\n"
+ "};",
+ AlignStyle);
+
+ verifyFormat("struct f {\n"
+ " template <class T>\n"
+ " int &foo() const & noexcept {}\n"
+ "};",
+ AlignStyle);
+
+ verifyFormat("struct f {\n"
+ " template <class T>\n"
+ " auto foo() && noexcept -> int & {}\n"
+ "};",
+ AlignStyle);
+}
+
} // end namespace
} // end namespace format
} // end namespace clang
OpenPOWER on IntegriCloud