<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/55360>55360</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            [clang-format] Bad interaction between AlignConsecutiveAssignments.Enabled=true and BinPackArguments=false
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          cha5on
      </td>
    </tr>
</table>

<pre>
    ### Description

`AlignConsecutiveAssignments` doesn't align properly if `BinPackArguments = false`.

First noticed with clang-format 14.0.0, but present in current main branch.

Proposed fix is at https://reviews.llvm.org/D125162 .

### Example 1

`.clang-format` for this example:

```
---
Language:        Cpp
# BasedOnStyle:  LLVM
AccessModifierOffset: -2
AlignConsecutiveAssignments: Consecutive
BinPackArguments: false
BinPackParameters: false
```

Expected:
```
struct A {
  int a;
  int b;
  int c;
};
struct B {
  A a1;
  A a2;
  A a3;
};
int a_long_name                  = 1;
int an_even_longer_name_for_wrap = 1;
auto b                           = B{{a_long_name, a_long_name, a_long_name},

                                     {an_even_longer_name_for_wrapping,
                                      an_even_longer_name_for_wrapping,
                                      an_even_longer_name_for_wrapping}};
```

Actual:

```
struct A {
  int a;
  int b;
  int c;
};
struct B {
  A a1;
  A a2;
  A a3;
};
int a_long_name                  = 1;
int an_even_longer_name_for_wrap = 1;
auto b                           = B{{a_long_name, a_long_name, a_long_name},

           {an_even_longer_name_for_wrapping,
                                      an_even_longer_name_for_wrapping,
                                      an_even_longer_name_for_wrapping}};
```

### Example 2

A slightly smaller case with a reduced column limit.

`.clang-format` for this example:

```
---
Language:        Cpp
# BasedOnStyle:  LLVM
AccessModifierOffset: -2
AlignConsecutiveAssignments: Consecutive
BinPackArguments: false
BinPackParameters: false
ColumnLimit:     50
```

Expected:

```
struct A {
  int a;
  int b;
};
struct B {
  A a1;
  A a2;
};
int a_longer_name_for_wrap = 1;
// comment to prevent alignment
int a_long_name = 1;
auto b          = B({a_long_name, a_long_name},
                    {a_longer_name_for_wrap,
                     a_longer_name_for_wrap});
```

Actual:

```
struct A {
  int a;
  int b;
};
struct B {
  A a1;
  A a2;
};
int a_longer_name_for_wrap = 1;
// comment to prevent alignment
int a_long_name = 1;
auto b          = B({a_long_name, a_long_name},
           {a_longer_name_for_wrap,
                     a_longer_name_for_wrap});
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJztF8tu2zjwa-TLwIIekR0ffPAjPaVogAX2apDUWOaWogSSspO_71ByHcl2tQu03T1sBMHmcN5PirzK35ZBknYvbNEKI2snKx1E2yBanX9n0UrJQm8qbVE0Th5xZS1tlKidJSzkFVodJHMHzBNCbaoajXoDuQfCr6V-YeLryhRNywJBuoU9UxYJGfZVfZLGOtCVkwJzOEl3AKGYLqb7ypTMQfwQRmEUJBvgjSM1aEkeSA2iMcYvS0YAN0yLw0DwC1lUWZK5l68gLZCsg3O1DdJVkHyi1-BR4smGSh3LsDIFbW3jJItnCQwEvUfr6ZWVtUKIr2IV9i320aEVuAMpxY7D6xyynN8WnE6n3eKZpDSs8ORwfjZ1fbEC1oz8-aL_cG-qo3l-_vNzh14JgdZ-rnK5l2i-7PcWnSeZJmf8SDqJrIfp6K8T6Im6_PXRL8ywEh2aa_yVh93v02uNwmH-Ho0hlXWmEQ5WEMzX3Q5QoqnCgnQA8ytYXOBgvr2sz9LWfWkrYHGPmcBkCKZ3RbVG7FSli50mf-Hm8dUdD8n1Do-oWyY0LduOqmJ3Mqy-ImeNq4DfCh1IX3sv5uueFb4lRkAyP9n0oz-ioKeKVIxYXktdXMT-I4Gjgfgd4sjvXubu1uFKuIap8Z78qMUfFMivrsX_RcXdHiHJoCDB0ng-ODo-bcmUQgOCRn13GjIwmDf-cBSVakoNSpbShVe1-3EEXeM3bbSefbC-O5NFIzm6PZ1-zVz4mTlwv_H_poe7rxuqltKHDaih6avp6Jftp5rfvD9KxkdB1_nJ43jn91r97vj4znztw3hT_oDHK1v8F7P-I6f_Uion-TLNF-mCTZx0CpdBth4MuozsZ7nPDhom_DUGOLoTooaRcRM-acaVb_UtJQ9pxOdwO2227TCZNEYthxeHgsZyw0NKBgH-9nD-m9Il6C-aIQRKaxu0tMiylLw4LBMUPBJ89shEFnHk6Uw84OOjmM_SOV9wMVGMo7LewSBJNJ6gFUFr8nEil0mUJFEWLeLFQ5zF4V7QPWW-5wvkJC_iwUOEdBFSl8vMxCxbk3hTWEIqad37TWfC2lhgG08vn-riUJmlOLCs0pNW87K1_BuviQOX">