262feb3337
Fixes 5901 Take leading attributes and comments into consideration when determining if we need to wrap the `else` keyword onto the next line.
74 lines
1.8 KiB
Rust
74 lines
1.8 KiB
Rust
// rustfmt-version: Two
|
|
// rustfmt-single_line_let_else_max_width: 100
|
|
|
|
fn issue5901() {
|
|
#[cfg(target_os = "linux")]
|
|
let Some(x) = foo else { todo!() };
|
|
|
|
#[cfg(target_os = "linux")]
|
|
// Some comments between attributes and let-else statement
|
|
let Some(x) = foo else { todo!() };
|
|
|
|
#[cfg(target_os = "linux")]
|
|
#[cfg(target_arch = "x86_64")]
|
|
let Some(x) = foo else { todo!() };
|
|
|
|
// The else block is multi-lined
|
|
#[cfg(target_os = "linux")]
|
|
let Some(x) = foo else {
|
|
return;
|
|
};
|
|
|
|
// The else block will be single-lined because attributes and comments before `let`
|
|
// are no longer included when calculating max width
|
|
#[cfg(target_os = "linux")]
|
|
#[cfg(target_arch = "x86_64")]
|
|
// Some comments between attributes and let-else statement
|
|
let Some(x) = foo else { todo!() };
|
|
|
|
// Some more test cases for v2 formatting with attributes
|
|
|
|
#[cfg(target_os = "linux")]
|
|
#[cfg(target_arch = "x86_64")]
|
|
let Some(x) = opt
|
|
// pre else keyword line-comment
|
|
else {
|
|
return;
|
|
};
|
|
|
|
#[cfg(target_os = "linux")]
|
|
#[cfg(target_arch = "x86_64")]
|
|
let Some(x) = opt else
|
|
// post else keyword line-comment
|
|
{
|
|
return;
|
|
};
|
|
|
|
#[cfg(target_os = "linux")]
|
|
#[cfg(target_arch = "x86_64")]
|
|
let Foo {
|
|
x: Bar(..),
|
|
y: FooBar(..),
|
|
z: Baz(..),
|
|
} = opt
|
|
else {
|
|
return;
|
|
};
|
|
|
|
#[cfg(target_os = "linux")]
|
|
#[cfg(target_arch = "x86_64")]
|
|
let Some(Ok((Message::ChangeColor(super::color::Color::Rgb(r, g, b)), Point { x, y, z }))) =
|
|
opt
|
|
else {
|
|
return;
|
|
};
|
|
|
|
#[cfg(target_os = "linux")]
|
|
#[cfg(target_arch = "x86_64")]
|
|
let Some(x) =
|
|
very_very_very_very_very_very_very_very_very_very_very_very_long_expression_in_assign_rhs()
|
|
else {
|
|
return;
|
|
};
|
|
}
|