<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/57304>57304</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
clang-format generates bad formatting with double braces
</td>
</tr>
<tr>
<th>Labels</th>
<td>
clang-format
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
zmodem
</td>
</tr>
</table>
<pre>
Consider:
```
$ cat | clang-format -style=chromium
static constexpr std::array<PrefetchItemState, 11>
kOrderedPrefetchItemStates = {{
PrefetchItemState::NEW_REQUEST,
PrefetchItemState::SENT_GENERATE_PAGE_BUNDLE,
PrefetchItemState::AWAITING_GCM,
PrefetchItemState::RECEIVED_GCM,
PrefetchItemState::SENT_GET_OPERATION,
PrefetchItemState::RECEIVED_BUNDLE,
PrefetchItemState::DOWNLOADING,
PrefetchItemState::DOWNLOADED,
PrefetchItemState::IMPORTING,
PrefetchItemState::FINISHED,
PrefetchItemState::ZOMBIE}};
```
It outputs:
```
static constexpr std::array<PrefetchItemState, 11> kOrderedPrefetchItemStates =
{{PrefetchItemState::NEW_REQUEST,
PrefetchItemState::SENT_GENERATE_PAGE_BUNDLE,
PrefetchItemState::AWAITING_GCM, PrefetchItemState::RECEIVED_GCM,
PrefetchItemState::SENT_GET_OPERATION, PrefetchItemState::RECEIVED_BUNDLE,
PrefetchItemState::DOWNLOADING, PrefetchItemState::DOWNLOADED,
PrefetchItemState::IMPORTING, PrefetchItemState::FINISHED,
PrefetchItemState::ZOMBIE}};
```
It would be more readable to have one argument per line, and in fact that's exactly what clang-format would do if the code was using single braces:
```
$ cat | clang-format -style=chromium
static constexpr std::array<PrefetchItemState, 11> kOrderedPrefetchItemStates = { PrefetchItemState::NEW_REQUEST, PrefetchItemState::SENT_GENERATE_PAGE_BUNDLE, PrefetchItemState::AWAITING_GCM, PrefetchItemState::RECEIVED_GCM, PrefetchItemState::SENT_GET_OPERATION, PrefetchItemState::RECEIVED_BUNDLE, PrefetchItemState::DOWNLOADING, PrefetchItemState::DOWNLOADED, PrefetchItemState::IMPORTING, PrefetchItemState::FINISHED, PrefetchItemState::ZOMBIE};
```
generates
```
static constexpr std::array<PrefetchItemState, 11> kOrderedPrefetchItemStates =
{PrefetchItemState::NEW_REQUEST,
PrefetchItemState::SENT_GENERATE_PAGE_BUNDLE,
PrefetchItemState::AWAITING_GCM,
PrefetchItemState::RECEIVED_GCM,
PrefetchItemState::SENT_GET_OPERATION,
PrefetchItemState::RECEIVED_BUNDLE,
PrefetchItemState::DOWNLOADING,
PrefetchItemState::DOWNLOADED,
PrefetchItemState::IMPORTING,
PrefetchItemState::FINISHED,
PrefetchItemState::ZOMBIE};
```
Could it be made to do the same for the double braces case?
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzNVtlu4jAU_ZrkxSrKxvaQByCBidQGBuhUmhfk2JckM1mQ7ZQyXz9O6KqO2hioNJHlyI7vPdfKOceOSnpwJ2XBUwpMs0ea4WnGU98zHttxaDmIYIG0_gSRDBfx1bZkuZy44uKQgWZ7JGFlnlb5cT1CXGCREkRkegEPOyYnaI1hjzBj-KDZkwWDLQiSBALylVwNmjVBpqnZ_lOO-vk9Z7I6oO9WcyRRZUHjur0KqJ_3qRvk0L_bLP3vt_5qLbFaBq38cL2Z-aG_HK39zWI08zfj29C79tunGN2NgnUQzjazyU37qKU_8YMfvqcW9VjuejNf1BUH8_AERNUNevO78Ho-8uQe1YN8r31McLOYL9dKMNMgDFbfVEB-zm_Gga_1vbrZ438LoukDgcpK7CrBP5bPOWL4RAEvezpKQZn6Z9K-HeVP4LgKv08jdCsyK7O3BXMVqXoJmu7LKqMoApSXDBADTHGUARIlSvA9oLIAhFlc5VAItAOGsrRoKIgLitICbTERSCRYaFafI3iQw-yA9nLi7XFwhKElSrdyOUjGU0B7zFHF0yJGdSdRI4YJfCIZ1RPnCyVWK6vdkXKKmC6roC-SzQW1ciGBfK6KDyURQwGs_sH_gWurWvZ5jq18R1G27hNvJqd4uOp9RNHM1W4hSq5-Hn0njc-monF0TBsjl65bWy7HOSDplc2AllX0bLjST7mEmergmr2eafUca2Dp1LXp0B5iXaQiA_eN1z6rBEWYouOkqI18n4rkbXK9YpmbCLFrfN2ayhbLRVXUIWUuB1l2__S62rHyFxB5lkxTziupQWva7duGoyfugDrmcDg0hwYB04Gu1RsS0sODbrdH6NYmeoYjyLirdceaZb0uVg61rqenrmVYljGwbNMxB4bZ6UYm7ttDQs163sGaY0CO06xTl9IpWawzt6kqqmIuP2YpF_zlI-Y8jQuABlHmx5VISub-yeXJlutN_W5T_F8ZMfvk">