Issue 160908
Summary [clang-format] Multiline requires _expression_ breaks formatting
Labels clang-format
Assignees
Reporter adriankwiat
    When requires _expression_ that has multiple statements is used as operand of binary operator (and some longer _expression_), code is formatted incorrectly (doesn't respect column limit).

Example input:
```cpp
template <class>
inline constexpr bool some_long_name_just_for_example{true};

template <class T>
using Typ = T;

template <class Type>
concept C = requires {
 typename Typ<Type>;
  typename Typ<Type &>;
}
&& some_long_name_just_for_example<Type>
&& some_long_name_just_for_example<Type &>
&& some_long_name_just_for_example<const Type>;

int main() {}
```

Output:
```cpp
template <class> inline constexpr bool some_long_name_just_for_example{true};

template <class T> using Typ = T;

template <class Type>
concept C = requires {
  typename Typ<Type>;
 typename Typ<Type &>;
} && some_long_name_just_for_example<Type> && some_long_name_just_for_example<Type &> && some_long_name_just_for_example<const Type>;

int main() {}
```

`.clang_format`:
```yaml
BreakBeforeBinaryOperators: All
ColumnLimit: 80
```

clang-format version 20.1.8 (Fedora 20.1.8-4.fc42)
_______________________________________________
llvm-bugs mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs

Reply via email to