Fix formatting failures on Windows
When newline_style is set to Windows, an empty line inside of a macro results in `\r` being passed to the `fold()` in `MacroBranch::rewrite()`. `\r` is technically not an empty string, so we try to indent it, leaving trailing whitespaces behind, even though that was not intended (as far as I can see). This commit replaces the `!l.is_empty()` check with calling `is_empty_line()`, since trying to indent any whitespace-only string will probably result in problematic trailing whitespaces. Fixes: #2810
This commit is contained in:
parent
8fb1b179bf
commit
00a20bceff
@ -1347,7 +1347,7 @@ impl MacroBranch {
|
||||
.fold(
|
||||
(String::new(), true),
|
||||
|(mut s, need_indent), (i, (kind, ref l))| {
|
||||
if !l.is_empty()
|
||||
if !is_empty_line(l)
|
||||
&& need_indent
|
||||
&& !new_body_snippet.is_line_non_formatted(i + 1)
|
||||
{
|
||||
|
14
tests/target/issue-2810.rs
Normal file
14
tests/target/issue-2810.rs
Normal file
@ -0,0 +1,14 @@
|
||||
// rustfmt-newline_style: Windows
|
||||
|
||||
#[macro_export]
|
||||
macro_rules! hmmm___ffi_error {
|
||||
($result:ident) => {
|
||||
pub struct $result {
|
||||
success: bool,
|
||||
}
|
||||
|
||||
impl $result {
|
||||
pub fn foo(self) {}
|
||||
}
|
||||
};
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user