Open anchpop opened 2 months ago
it seem like this bug is present only for non-doc comments, and it triggers with just struct construction, here's a min example:
const B: b = b {
c: d,
/* block comment, has bug */
// line comment, has bug
..
};
Start with this:
Rust rustfmt, and you get this:
Run it a third time, and you get this:
And then we have a fixed point.
This can cause rustfmt to break certain macro-using code. The behavior still exists if you substitute
a
rather thana!
, and I guess it's weird if it's not idempotent, but it's a bit of an edge case since that is not syntactically valid rust anyway. But you can write fully-compilable code that exhibits this behavior when formatted with rustfmt, if you're using certain macros likeassert_matches!
.