From 8f4d85a9d727440b246aee8f54549c5c72022700 Mon Sep 17 00:00:00 2001 From: Nick Cameron Date: Mon, 27 Nov 2017 17:01:49 +1300 Subject: [PATCH] Merge multiline_closure_forces_block and multiline_match_arm_forces_block into force_multiline_block --- Configurations.md | 34 ++++++------------- src/closures.rs | 2 +- src/config.rs | 6 ++-- src/expr.rs | 6 ++-- .../configs-force_multiline_block-false.rs | 22 ++++++++++++ .../configs-force_multiline_block-true.rs | 18 ++++++++++ ...gs-multiline_closure_forces_block-false.rs | 11 ------ ...igs-multiline_closure_forces_block-true.rs | 9 ----- ...-multiline_match_arm_forces_block-false.rs | 13 ------- ...s-multiline_match_arm_forces_block-true.rs | 11 ------ .../configs-force_multiline_block-false.rs | 18 ++++++++++ .../configs-force_multiline_block-true.rs | 22 ++++++++++++ ...gs-multiline_closure_forces_block-false.rs | 9 ----- ...igs-multiline_closure_forces_block-true.rs | 11 ------ ...-multiline_match_arm_forces_block-false.rs | 11 ------ ...s-multiline_match_arm_forces_block-true.rs | 13 ------- 16 files changed, 95 insertions(+), 121 deletions(-) create mode 100644 tests/source/configs-force_multiline_block-false.rs create mode 100644 tests/source/configs-force_multiline_block-true.rs delete mode 100644 tests/source/configs-multiline_closure_forces_block-false.rs delete mode 100644 tests/source/configs-multiline_closure_forces_block-true.rs delete mode 100644 tests/source/configs-multiline_match_arm_forces_block-false.rs delete mode 100644 tests/source/configs-multiline_match_arm_forces_block-true.rs create mode 100644 tests/target/configs-force_multiline_block-false.rs create mode 100644 tests/target/configs-force_multiline_block-true.rs delete mode 100644 tests/target/configs-multiline_closure_forces_block-false.rs delete mode 100644 tests/target/configs-multiline_closure_forces_block-true.rs delete mode 100644 tests/target/configs-multiline_match_arm_forces_block-false.rs delete mode 100644 tests/target/configs-multiline_match_arm_forces_block-true.rs diff --git a/Configurations.md b/Configurations.md index ee4851eb2e5..76589314e03 100644 --- a/Configurations.md +++ b/Configurations.md @@ -1172,9 +1172,9 @@ pub enum Foo {} pub enum Foo {} ``` -## `multiline_closure_forces_block` +## `force_multiline_blocks` -Force multiline closure bodies to be wrapped in a block +Force multiline closure and match arm bodies to be wrapped in a block - **Default value**: `false` - **Possible values**: `false`, `true` @@ -1186,6 +1186,13 @@ result.and_then(|maybe_value| match maybe_value { None => ..., Some(value) => ..., }) + +match lorem { + None => if ipsum { + println!("Hello World"); + }, + Some(dolor) => ..., +} ``` #### `true`: @@ -1198,29 +1205,7 @@ result.and_then(|maybe_value| { Some(value) => ..., } }) -``` - -## `multiline_match_arm_forces_block` - -Force multiline match arm bodies to be wrapped in a block - -- **Default value**: `false` -- **Possible values**: `false`, `true` - -#### `false` (default): - -```rust -match lorem { - None => if ipsum { - println!("Hello World"); - }, - Some(dolor) => ..., -} -``` -#### `true`: - -```rust match lorem { None => { if ipsum { @@ -1231,6 +1216,7 @@ match lorem { } ``` + ## `newline_style` Unix or Windows line endings diff --git a/src/closures.rs b/src/closures.rs index ebc12382bd7..71862b82ba0 100644 --- a/src/closures.rs +++ b/src/closures.rs @@ -146,7 +146,7 @@ fn rewrite_closure_expr( rewrite = and_one_line(rewrite); } rewrite = rewrite.and_then(|rw| { - if context.config.multiline_closure_forces_block() && rw.contains('\n') { + if context.config.force_multiline_blocks() && rw.contains('\n') { None } else { Some(rw) diff --git a/src/config.rs b/src/config.rs index fe18f02d33e..c6225222231 100644 --- a/src/config.rs +++ b/src/config.rs @@ -621,8 +621,6 @@ pub fn get_toml_path(dir: &Path) -> Result, Error> { // Match wrap_match_arms: bool, true, false, "Wrap the body of arms in blocks when it does not fit on \ the same line with the pattern of arms"; - multiline_match_arm_forces_block: bool, false, false, - "Force multiline match arm bodies to be wrapped in a block"; match_block_trailing_comma: bool, false, false, "Put a trailing comma after a block based match arm (non-block arms are not affected)"; @@ -645,8 +643,8 @@ pub fn get_toml_path(dir: &Path) -> Result, Error> { "Remove blank lines at start or end of a block"; same_line_attributes: bool, true, false, "Try to put attributes on the same line as fields and variants."; - multiline_closure_forces_block: bool, false, false, - "Force multiline closure bodies to be wrapped in a block"; + force_multiline_blocks: bool, false, false, + "Force multiline closure bodies and match arms to be wrapped in a block"; fn_args_density: Density, Density::Tall, false, "Argument density in functions"; brace_style: BraceStyle, BraceStyle::SameLineWhere, false, "Brace style for items"; control_brace_style: ControlBraceStyle, ControlBraceStyle::AlwaysSameLine, false, diff --git a/src/expr.rs b/src/expr.rs index 14913fef9e7..9d29425a5dd 100644 --- a/src/expr.rs +++ b/src/expr.rs @@ -1499,8 +1499,7 @@ fn flatten_arm_body<'a>(context: &'a RewriteContext, body: &'a ast::Expr) -> (bo { if let ast::StmtKind::Expr(ref expr) = block.stmts[0].node { ( - !context.config.multiline_match_arm_forces_block() - && expr.can_be_overflowed(context, 1), + !context.config.force_multiline_blocks() && expr.can_be_overflowed(context, 1), &**expr, ) } else { @@ -1508,8 +1507,7 @@ fn flatten_arm_body<'a>(context: &'a RewriteContext, body: &'a ast::Expr) -> (bo } } _ => ( - !context.config.multiline_match_arm_forces_block() - && body.can_be_overflowed(context, 1), + !context.config.force_multiline_blocks() && body.can_be_overflowed(context, 1), &*body, ), } diff --git a/tests/source/configs-force_multiline_block-false.rs b/tests/source/configs-force_multiline_block-false.rs new file mode 100644 index 00000000000..b97e348e5da --- /dev/null +++ b/tests/source/configs-force_multiline_block-false.rs @@ -0,0 +1,22 @@ +// rustfmt-force_multiline_blocks: false +// Option forces multiline match arm and closure bodies to be wrapped in a block + +fn main() { + match lorem { + Lorem::Ipsum => { + if ipsum { + println!("dolor"); + } + } + Lorem::Dolor => println!("amet"), + } +} + +fn main() { + result.and_then(|maybe_value| { + match maybe_value { + None => Err("oops"), + Some(value) => Ok(1), + } + }); +} diff --git a/tests/source/configs-force_multiline_block-true.rs b/tests/source/configs-force_multiline_block-true.rs new file mode 100644 index 00000000000..db9d3de4614 --- /dev/null +++ b/tests/source/configs-force_multiline_block-true.rs @@ -0,0 +1,18 @@ +// rustfmt-force_multiline_blocks: true +// Option forces multiline match arm and closure bodies to be wrapped in a block + +fn main() { + match lorem { + Lorem::Ipsum => if ipsum { + println!("dolor"); + }, + Lorem::Dolor => println!("amet"), + } +} + +fn main() { + result.and_then(|maybe_value| match maybe_value { + None => Err("oops"), + Some(value) => Ok(1), + }); +} diff --git a/tests/source/configs-multiline_closure_forces_block-false.rs b/tests/source/configs-multiline_closure_forces_block-false.rs deleted file mode 100644 index e885dff5ee6..00000000000 --- a/tests/source/configs-multiline_closure_forces_block-false.rs +++ /dev/null @@ -1,11 +0,0 @@ -// rustfmt-multiline_closure_forces_block: false -// Option forces multiline closure bodies to be wrapped in a block - -fn main() { - result.and_then(|maybe_value| { - match maybe_value { - None => Err("oops"), - Some(value) => Ok(1), - } - }); -} diff --git a/tests/source/configs-multiline_closure_forces_block-true.rs b/tests/source/configs-multiline_closure_forces_block-true.rs deleted file mode 100644 index f267466ac66..00000000000 --- a/tests/source/configs-multiline_closure_forces_block-true.rs +++ /dev/null @@ -1,9 +0,0 @@ -// rustfmt-multiline_closure_forces_block: true -// Option forces multiline closure bodies to be wrapped in a block - -fn main() { - result.and_then(|maybe_value| match maybe_value { - None => Err("oops"), - Some(value) => Ok(1), - }); -} diff --git a/tests/source/configs-multiline_match_arm_forces_block-false.rs b/tests/source/configs-multiline_match_arm_forces_block-false.rs deleted file mode 100644 index 4cbec0c7c1c..00000000000 --- a/tests/source/configs-multiline_match_arm_forces_block-false.rs +++ /dev/null @@ -1,13 +0,0 @@ -// rustfmt-multiline_match_arm_forces_block: false -// Option forces multiline match arm bodies to be wrapped in a block - -fn main() { - match lorem { - Lorem::Ipsum => { - if ipsum { - println!("dolor"); - } - } - Lorem::Dolor => println!("amet"), - } -} diff --git a/tests/source/configs-multiline_match_arm_forces_block-true.rs b/tests/source/configs-multiline_match_arm_forces_block-true.rs deleted file mode 100644 index 602076a4e74..00000000000 --- a/tests/source/configs-multiline_match_arm_forces_block-true.rs +++ /dev/null @@ -1,11 +0,0 @@ -// rustfmt-multiline_match_arm_forces_block: true -// Option forces multiline match arm bodies to be wrapped in a block - -fn main() { - match lorem { - Lorem::Ipsum => if ipsum { - println!("dolor"); - }, - Lorem::Dolor => println!("amet"), - } -} diff --git a/tests/target/configs-force_multiline_block-false.rs b/tests/target/configs-force_multiline_block-false.rs new file mode 100644 index 00000000000..11ccc9a7512 --- /dev/null +++ b/tests/target/configs-force_multiline_block-false.rs @@ -0,0 +1,18 @@ +// rustfmt-force_multiline_blocks: false +// Option forces multiline match arm and closure bodies to be wrapped in a block + +fn main() { + match lorem { + Lorem::Ipsum => if ipsum { + println!("dolor"); + }, + Lorem::Dolor => println!("amet"), + } +} + +fn main() { + result.and_then(|maybe_value| match maybe_value { + None => Err("oops"), + Some(value) => Ok(1), + }); +} diff --git a/tests/target/configs-force_multiline_block-true.rs b/tests/target/configs-force_multiline_block-true.rs new file mode 100644 index 00000000000..aec50afe5a8 --- /dev/null +++ b/tests/target/configs-force_multiline_block-true.rs @@ -0,0 +1,22 @@ +// rustfmt-force_multiline_blocks: true +// Option forces multiline match arm and closure bodies to be wrapped in a block + +fn main() { + match lorem { + Lorem::Ipsum => { + if ipsum { + println!("dolor"); + } + } + Lorem::Dolor => println!("amet"), + } +} + +fn main() { + result.and_then(|maybe_value| { + match maybe_value { + None => Err("oops"), + Some(value) => Ok(1), + } + }); +} diff --git a/tests/target/configs-multiline_closure_forces_block-false.rs b/tests/target/configs-multiline_closure_forces_block-false.rs deleted file mode 100644 index 7fb3d597da1..00000000000 --- a/tests/target/configs-multiline_closure_forces_block-false.rs +++ /dev/null @@ -1,9 +0,0 @@ -// rustfmt-multiline_closure_forces_block: false -// Option forces multiline closure bodies to be wrapped in a block - -fn main() { - result.and_then(|maybe_value| match maybe_value { - None => Err("oops"), - Some(value) => Ok(1), - }); -} diff --git a/tests/target/configs-multiline_closure_forces_block-true.rs b/tests/target/configs-multiline_closure_forces_block-true.rs deleted file mode 100644 index 01e2de43527..00000000000 --- a/tests/target/configs-multiline_closure_forces_block-true.rs +++ /dev/null @@ -1,11 +0,0 @@ -// rustfmt-multiline_closure_forces_block: true -// Option forces multiline closure bodies to be wrapped in a block - -fn main() { - result.and_then(|maybe_value| { - match maybe_value { - None => Err("oops"), - Some(value) => Ok(1), - } - }); -} diff --git a/tests/target/configs-multiline_match_arm_forces_block-false.rs b/tests/target/configs-multiline_match_arm_forces_block-false.rs deleted file mode 100644 index 3c4c1470b0f..00000000000 --- a/tests/target/configs-multiline_match_arm_forces_block-false.rs +++ /dev/null @@ -1,11 +0,0 @@ -// rustfmt-multiline_match_arm_forces_block: false -// Option forces multiline match arm bodies to be wrapped in a block - -fn main() { - match lorem { - Lorem::Ipsum => if ipsum { - println!("dolor"); - }, - Lorem::Dolor => println!("amet"), - } -} diff --git a/tests/target/configs-multiline_match_arm_forces_block-true.rs b/tests/target/configs-multiline_match_arm_forces_block-true.rs deleted file mode 100644 index c36d59c315c..00000000000 --- a/tests/target/configs-multiline_match_arm_forces_block-true.rs +++ /dev/null @@ -1,13 +0,0 @@ -// rustfmt-multiline_match_arm_forces_block: true -// Option forces multiline match arm bodies to be wrapped in a block - -fn main() { - match lorem { - Lorem::Ipsum => { - if ipsum { - println!("dolor"); - } - } - Lorem::Dolor => println!("amet"), - } -} -- 2.44.0