[clang] 1809d0f - [clang-format] Insert a space between l_paren and ref-qualifier (#111465)

via cfe-commits cfe-commits at lists.llvm.org
Tue Oct 8 21:24:21 PDT 2024


Author: Owen Pan
Date: 2024-10-08T21:24:17-07:00
New Revision: 1809d0fa1c15b16ca94381d8be3ef70c4a83c36b

URL: https://github.com/llvm/llvm-project/commit/1809d0fa1c15b16ca94381d8be3ef70c4a83c36b
DIFF: https://github.com/llvm/llvm-project/commit/1809d0fa1c15b16ca94381d8be3ef70c4a83c36b.diff

LOG: [clang-format] Insert a space between l_paren and ref-qualifier (#111465)

Fixes #111346.

Added: 
    

Modified: 
    clang/lib/Format/TokenAnnotator.cpp
    clang/unittests/Format/FormatTest.cpp

Removed: 
    


################################################################################
diff  --git a/clang/lib/Format/TokenAnnotator.cpp b/clang/lib/Format/TokenAnnotator.cpp
index f6e5798057bbd2..364d7e9855e8cf 100644
--- a/clang/lib/Format/TokenAnnotator.cpp
+++ b/clang/lib/Format/TokenAnnotator.cpp
@@ -5454,6 +5454,10 @@ bool TokenAnnotator::spaceRequiredBefore(const AnnotatedLine &Line,
   }
   if ((Left.is(TT_TemplateOpener)) != (Right.is(TT_TemplateCloser)))
     return ShouldAddSpacesInAngles();
+  if (Left.is(tok::r_paren) && Right.is(TT_PointerOrReference) &&
+      Right.isOneOf(tok::amp, tok::ampamp)) {
+    return true;
+  }
   // Space before TT_StructuredBindingLSquare.
   if (Right.is(TT_StructuredBindingLSquare)) {
     return !Left.isOneOf(tok::amp, tok::ampamp) ||

diff  --git a/clang/unittests/Format/FormatTest.cpp b/clang/unittests/Format/FormatTest.cpp
index 61287aafe8273d..2c5e5857445c35 100644
--- a/clang/unittests/Format/FormatTest.cpp
+++ b/clang/unittests/Format/FormatTest.cpp
@@ -11519,6 +11519,7 @@ TEST_F(FormatTest, UnderstandsFunctionRefQualification) {
                AlignLeft);
   verifyFormat("template <typename T> void operator=(T) & {}", AlignLeft);
   verifyFormat("template <typename T> void operator=(T) && {}", AlignLeft);
+  verifyFormat("for (foo<void() &&>& cb : X)", AlignLeft);
 
   FormatStyle AlignMiddle = getLLVMStyle();
   AlignMiddle.PointerAlignment = FormatStyle::PAS_Middle;


        


More information about the cfe-commits mailing list