diff options
Diffstat (limited to 'clang/unittests/Format/FormatTest.cpp')
-rw-r--r-- | clang/unittests/Format/FormatTest.cpp | 35 |
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 |