Open tnull opened 7 months ago
Thanks for the report. Yeah, there's something about the OR pattern that's throwing off the alignment. Without the OR pattern things align as you'd expect.
Input:
fn main() {
let error_code = match err {
msgs::DecodeError::UnknownVersion => 0x4000 | 1, // unknown realm byte
msgs::DecodeError::ShortRead => 0x4000 | 22, // invalid_onion_payload
_ => 0x2000 | 2, // Should never happen
};
}
Output:
fn main() {
let error_code = match err {
msgs::DecodeError::UnknownVersion => 0x4000 | 1, // unknown realm byte
msgs::DecodeError::ShortRead => 0x4000 | 22, // invalid_onion_payload
_ => 0x2000 | 2, // Should never happen
};
}
When reformatting the following example:
we receive this result:
Note that the comment at the end of the second match arm is unaligned with the others. For the third match arm
rustfmt
even introduces many whitespaces to ensure it's aligned with the in the first match arm. However, it seems thatrustfmt
entirely forgets about this alignment in the second match arm, presumably due to it being an OR patternThis seems to happen independently from any particular config option or
rustfmt
version, but currently I'm using