<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/121471>121471</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[clang-format] missed space before operator when formatting expression inside requires
</td>
</tr>
<tr>
<th>Labels</th>
<td>
clang-format
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
chegoryu
</td>
</tr>
</table>
<pre>
Clang format formats this code:
```cpp
template<typename T, typename V>
concept CheckMultiplicableBy = requires(T a, V b) {
{ a * b } -> std::same_as<T>;
{ b * a } -> std::same_as<T>;
{ a *= b } -> std::same_as<T&>;
};
```
Into this:
```cpp
template<typename T, typename V>
concept CheckMultiplicableBy = requires(T a, V b) {
{ a* b } -> std::same_as<T>;
{ b* a } -> std::same_as<T>;
{ a *= b } -> std::same_as<T&>;
};
```
I.e. removes space before `*`.
With brackets works fine:
```cpp
template<typename T, typename V>
concept CheckMultiplicableBy = requires(T a, V b) {
{ (a * b) } -> std::same_as<T>;
{ (b * a) } -> std::same_as<T>;
{ a *= b } -> std::same_as<T&>;
};
```
Clang format version:
```
$ clang-format-19 --version
Ubuntu clang-format version 19.1.6 (++20241217110052+657e03f8625c-1~exp1~20241217110110.73)
```
Config (`clang-format-19 file.cpp --dump-config`): https://pastebin.com/6pKSdncm
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzMVUuPpDYQ_jXFpQSyi24eBw5097YURTllsjlGxhSNMzwc28zuXPa3RzDs7PYqUrJRpIyE5EJ8Xz0-VxXKe3ObmCs4nuB4idQS-tlVuufb7J6XqJnb5-o8qOmG3exGFfbDY-iNRz23DGkNooZMvDzaWhB14NEOKjCk5_BseVIj4wPQGV_f3kP6DkSt50mzDXjuWT_-tAzB2MFo1Qx8ekZIL-j4j8U49kDFA6rVxXtsgEqE_ASixvVEhUA1Ngj5BWNI36EP7ZpXWns18m_KQ3p-WAOmXzjNxlHfxdnirFn9XSjKXpmQX3bjs0SrLeofpjBvKr4JAf-Ffv-zfAkn6Hicn9ijt0ozNtzNjnGF0ApPXpC_mtBj45R-5ODxw-wePXZmehONC1Tsvfvy5Z9rCVTsHfy9zP_yFu5WwxM7b-bpG11Xmw6oV2T8goxliXG8wxFE_UuzTGG5w3z2hrJMZJKt9QKdgE4k6CBJ5lIKcSSgU3bMWaRdkdFRx_ITf7Ty01cgKUWSp0DlX2Q_T525ba4z8W2CnRk40dZiHLfLaGO9gbfmKiGtsQ_BbrNLV6CrVT5wY6ZEzyPQNbM__txOeozaKm3LtFQRVzJPj4UsiyKP-qrRXZcT5bpMVZl3aX44yKzMWBVNpojyyFQk6CikIElSUp5IEjorSaQ6LwqmDg6CR2WGZBiexmR2t8h4v3AlSR5yGQ2q4cFve53o69qAaN30rlp5cbPcPBzEYHzwXzwFE4btn3BHPF5wNN5zez9vs2WnwuzwQ8_T3gvBTDfkj9ax3y7RTN60_DoT0eKG6l7Amwn90uzyrYnsR2zd_DvrAHTd6vNA173Ep4r-DAAA__8Hoe_5">