[clang] 342e1c7 - [clang-format] Fix a bug in AlignConsecutiveAssignments

via cfe-commits cfe-commits at lists.llvm.org
Wed May 4 12:05:01 PDT 2022


Author: owenca
Date: 2022-05-04T12:04:43-07:00
New Revision: 342e1c77c360e745fc6457037e6c1e37b84f2791

URL: https://github.com/llvm/llvm-project/commit/342e1c77c360e745fc6457037e6c1e37b84f2791
DIFF: https://github.com/llvm/llvm-project/commit/342e1c77c360e745fc6457037e6c1e37b84f2791.diff

LOG: [clang-format] Fix a bug in AlignConsecutiveAssignments

Fixes #55113.

Differential Revision: https://reviews.llvm.org/D124868

Added: 
    

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

Removed: 
    


################################################################################
diff  --git a/clang/lib/Format/WhitespaceManager.cpp b/clang/lib/Format/WhitespaceManager.cpp
index 2dcc4fd62c5e8..cf4ef6338f1bd 100644
--- a/clang/lib/Format/WhitespaceManager.cpp
+++ b/clang/lib/Format/WhitespaceManager.cpp
@@ -369,6 +369,8 @@ AlignTokenSequence(const FormatStyle &Style, unsigned Start, unsigned End,
           if (Changes[i].Tok->MatchingParen &&
               Changes[i].Tok->MatchingParen->is(TT_LambdaLBrace))
             return false;
+          if (Changes[ScopeStart].NewlinesBefore > 0)
+            return false;
           return Style.BinPackArguments;
         }
 

diff  --git a/clang/unittests/Format/FormatTest.cpp b/clang/unittests/Format/FormatTest.cpp
index 37f32691a1d36..78a3c21c33009 100644
--- a/clang/unittests/Format/FormatTest.cpp
+++ b/clang/unittests/Format/FormatTest.cpp
@@ -18010,11 +18010,21 @@ TEST_F(FormatTest, AlignWithLineBreaks) {
                Style);
   // clang-format on
 
-  Style = getLLVMStyleWithColumns(120);
+  Style = getLLVMStyleWithColumns(20);
   Style.AlignConsecutiveAssignments.Enabled = true;
-  Style.ContinuationIndentWidth = 4;
   Style.IndentWidth = 4;
 
+  verifyFormat("void foo() {\n"
+               "    int i1 = 1;\n"
+               "    int j  = 0;\n"
+               "    int k  = bar(\n"
+               "        argument1,\n"
+               "        argument2);\n"
+               "}",
+               Style);
+
+  Style.ColumnLimit = 120;
+
   // clang-format off
   verifyFormat("void SomeFunc() {\n"
                "    newWatcher.maxAgeUsec = ToLegacyTimestamp(GetMaxAge(FromLegacyTimestamp<milliseconds>(monitorFrequencyUsec),\n"


        


More information about the cfe-commits mailing list