[clang-format] [PR45942] [[nodiscard]] causes && to be miss interpreted as BinaryOperators
Summary: https://bugs.llvm.org/show_bug.cgi?id=45942 With Chromium style (although that is not important) its just it defines PointerAligmment: Left The following arguments `S&&` are formatted differently depending on if the class has an attribute between it and the class identifier ``` class S { S(S&&) = default; }; class [[nodiscard]] S { S(S &&) = default; }; ``` The prescense of [[nodiscard]] between the `class/struct` and the `{` causes the `{` to be incorrectly seen as a `TT_FunctionLBrace` which in turn transforms all the && to be `TT_BinaryOperators` rather than `TT_PointerOrReference`, as binary operators other spacing rules come into play causing a miss format This revision resolves this by allowing the parseRecord to consider the [[nodisscard]] Reviewed By: Abpostelnicu Subscribers: cfe-commits Tags: #clang, #clang-format Differential Revision: https://reviews.llvm.org/D80008
Loading
Please sign in to comment