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]]