<html>
    <head>
      <base href="https://bugs.llvm.org/">
    </head>
    <body><table border="1" cellspacing="0" cellpadding="8">
        <tr>
          <th>Bug ID</th>
          <td><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - AlignAfterOpen: Align does not align body of lambda as function param with following params"
   href="https://bugs.llvm.org/show_bug.cgi?id=39688">39688</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>AlignAfterOpen: Align does not align body of lambda as function param with following params
          </td>
        </tr>

        <tr>
          <th>Product</th>
          <td>clang
          </td>
        </tr>

        <tr>
          <th>Version</th>
          <td>unspecified
          </td>
        </tr>

        <tr>
          <th>Hardware</th>
          <td>Macintosh
          </td>
        </tr>

        <tr>
          <th>OS</th>
          <td>MacOS X
          </td>
        </tr>

        <tr>
          <th>Status</th>
          <td>NEW
          </td>
        </tr>

        <tr>
          <th>Severity</th>
          <td>enhancement
          </td>
        </tr>

        <tr>
          <th>Priority</th>
          <td>P
          </td>
        </tr>

        <tr>
          <th>Component</th>
          <td>Formatter
          </td>
        </tr>

        <tr>
          <th>Assignee</th>
          <td>unassignedclangbugs@nondot.org
          </td>
        </tr>

        <tr>
          <th>Reporter</th>
          <td>moorecr3@gmail.com
          </td>
        </tr>

        <tr>
          <th>CC</th>
          <td>djasper@google.com, klimek@google.com, llvm-bugs@lists.llvm.org
          </td>
        </tr></table>
      <p>
        <div>
        <pre>Behavior is identical on clang-format versions 5,6,7

When a lambda is passed as a function argument and is opened on the same line
as the function's open paren, the lambda body is not aligned with the rest of
the arguments.  This makes sense when the lambda is the final argument, but not
with following args.


input.cpp / expected output:
{
  test_long_function([&] {
                       if (true) {
                         dothis();
                       } else {
                         dothat();
                       }
                     },
                     secondArg);

}


ouput.cpp / actual output:
{
  test_long_function([&] {
    if (true) {
      dothis();
    } else {
      dothat();
    }
  },
                     secondArg);
}


.clang-format:
---
ColumnLimit:     0
AlignAfterOpenBracket: Align



note, if the lambda is not on the same line as the open paren, it formats as
expected:

{
  test_long_function(firstarg,
                     [&] {
                       if (condition()) {
                         dothis();
                       } else {
                         dothat();
                       }
                     },
                     thirdarg);
}</pre>
        </div>
      </p>


      <hr>
      <span>You are receiving this mail because:</span>

      <ul>
          <li>You are on the CC list for the bug.</li>
      </ul>
    </body>
</html>