Skip to content

[clang-format] missed space before operator when formatting expression inside requires #121471

@chegoryu

Description

@chegoryu

Clang format formats this code:

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:

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:

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

Metadata

Metadata

Assignees

Labels

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions