From 41af7e796316487b8c28108d8819495a96011f32 Mon Sep 17 00:00:00 2001 From: truls-p <20932917+truls-p@users.noreply.github.com> Date: Thu, 18 Aug 2022 21:10:12 +0100 Subject: [PATCH 1/8] Add details to documentation + examples --- Configurations.md | 36 +++++++++++++++++++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) diff --git a/Configurations.md b/Configurations.md index e066553dc63..82008d7c46a 100644 --- a/Configurations.md +++ b/Configurations.md @@ -2379,7 +2379,7 @@ Don't reformat out of line modules ## `single_line_if_else_max_width` -Maximum line length for single line if-else expressions. A value of `0` (zero) results in if-else expressions always being broken into multiple lines. Note this occurs when `use_small_heuristics` is set to `Off`. +Maximum line length for single line if-else expressions. A value of `0` (zero) results in if-else expressions always being broken into multiple lines. Note this occurs when `use_small_heuristics` is set to `Off`. If one of the if-else blocks contain a statement, a comment, an attribute, or is empty, the if-else expression will be broken into multiple lines. When using `version = "Two"` the if-else expression at the end of a block will be formatted on a single line. The last if-else expression in the last example snippet of this section would be formatted on a single line with `version = "Two"`. - **Default value**: `50` - **Possible values**: any positive integer that is less than or equal to the value specified for [`max_width`](#max_width) @@ -2387,6 +2387,40 @@ Maximum line length for single line if-else expressions. A value of `0` (zero) r By default this option is set as a percentage of [`max_width`](#max_width) provided by [`use_small_heuristics`](#use_small_heuristics), but a value set directly for `single_line_if_else_max_width` will take precedence. +#### `50` (default): + +```rust +fn foo() -> usize { + let some_long_name = true; + let some_other_long_name = false; + let bar = if some_long_name && some_other_long_name { + baz() + } else { + buzz() + }; + if some_long_name && some_other_long_name { + 1 + } else { + 2 + } +} +``` + +#### `70`: + +```rust +fn foo() -> usize { + let some_long_name = true; + let some_other_long_name = false; + let bar = if some_long_name && some_other_long_name { baz() } else { buzz() }; + if some_long_name && some_other_long_name { + 1 + } else { + 2 + } +} +``` + See also [`max_width`](#max_width) and [`use_small_heuristics`](#use_small_heuristics) ## `space_after_colon` From f60a569942d11b02eaff79578c1a79d4c8b82679 Mon Sep 17 00:00:00 2001 From: truls-p <20932917+truls-p@users.noreply.github.com> Date: Thu, 18 Aug 2022 21:13:55 +0100 Subject: [PATCH 2/8] Add tests for `single_line_if_else_max_width` --- tests/source/issue-5496/70.rs | 8 ++++++++ tests/source/issue-5496/70_version_two.rs | 12 ++++++++++++ tests/source/issue-5496/default.rs | 6 ++++++ tests/target/issue-5496/70.rs | 12 ++++++++++++ tests/target/issue-5496/70_version_two.rs | 8 ++++++++ tests/target/issue-5496/default.rs | 14 ++++++++++++++ 6 files changed, 60 insertions(+) create mode 100644 tests/source/issue-5496/70.rs create mode 100644 tests/source/issue-5496/70_version_two.rs create mode 100644 tests/source/issue-5496/default.rs create mode 100644 tests/target/issue-5496/70.rs create mode 100644 tests/target/issue-5496/70_version_two.rs create mode 100644 tests/target/issue-5496/default.rs diff --git a/tests/source/issue-5496/70.rs b/tests/source/issue-5496/70.rs new file mode 100644 index 00000000000..7d90ba9e896 --- /dev/null +++ b/tests/source/issue-5496/70.rs @@ -0,0 +1,8 @@ +// rustfmt-version: One +// rustfmt-single_line_if_else_max_width: 70 +fn foo() -> usize { + let some_long_name = true; + let some_other_long_name = false; + let bar = if some_long_name && some_other_long_name { baz() } else { buzz() }; + if some_long_name && some_other_long_name { 1 } else { 2 } +} \ No newline at end of file diff --git a/tests/source/issue-5496/70_version_two.rs b/tests/source/issue-5496/70_version_two.rs new file mode 100644 index 00000000000..f8043c7755e --- /dev/null +++ b/tests/source/issue-5496/70_version_two.rs @@ -0,0 +1,12 @@ +// rustfmt-version: Two +// rustfmt-single_line_if_else_max_width: 70 +fn foo() -> usize { + let some_long_name = true; + let some_other_long_name = false; + let bar = if some_long_name && some_other_long_name { baz() } else { buzz() }; + if some_long_name && some_other_long_name { + 1 + } else { + 2 + } +} \ No newline at end of file diff --git a/tests/source/issue-5496/default.rs b/tests/source/issue-5496/default.rs new file mode 100644 index 00000000000..9674b39b7de --- /dev/null +++ b/tests/source/issue-5496/default.rs @@ -0,0 +1,6 @@ +fn foo() -> usize { + let some_long_name = true; + let some_other_long_name = false; + let bar = if some_long_name && some_other_long_name { baz() } else { buzz() }; + if some_long_name && some_other_long_name { 1 } else { 2 } +} \ No newline at end of file diff --git a/tests/target/issue-5496/70.rs b/tests/target/issue-5496/70.rs new file mode 100644 index 00000000000..59822847dea --- /dev/null +++ b/tests/target/issue-5496/70.rs @@ -0,0 +1,12 @@ +// rustfmt-version: One +// rustfmt-single_line_if_else_max_width: 70 +fn foo() -> usize { + let some_long_name = true; + let some_other_long_name = false; + let bar = if some_long_name && some_other_long_name { baz() } else { buzz() }; + if some_long_name && some_other_long_name { + 1 + } else { + 2 + } +} diff --git a/tests/target/issue-5496/70_version_two.rs b/tests/target/issue-5496/70_version_two.rs new file mode 100644 index 00000000000..7833a6cce2f --- /dev/null +++ b/tests/target/issue-5496/70_version_two.rs @@ -0,0 +1,8 @@ +// rustfmt-version: Two +// rustfmt-single_line_if_else_max_width: 70 +fn foo() -> usize { + let some_long_name = true; + let some_other_long_name = false; + let bar = if some_long_name && some_other_long_name { baz() } else { buzz() }; + if some_long_name && some_other_long_name { 1 } else { 2 } +} diff --git a/tests/target/issue-5496/default.rs b/tests/target/issue-5496/default.rs new file mode 100644 index 00000000000..300364b0265 --- /dev/null +++ b/tests/target/issue-5496/default.rs @@ -0,0 +1,14 @@ +fn foo() -> usize { + let some_long_name = true; + let some_other_long_name = false; + let bar = if some_long_name && some_other_long_name { + baz() + } else { + buzz() + }; + if some_long_name && some_other_long_name { + 1 + } else { + 2 + } +} From 37d9b88df1f70b1fe231f395f98b90a1ae82c7b1 Mon Sep 17 00:00:00 2001 From: truls-p <20932917+truls-p@users.noreply.github.com> Date: Wed, 24 Aug 2022 21:12:27 +0100 Subject: [PATCH 3/8] Refine documentation + add additional tests for `single_line_if_else_max_width` --- Configurations.md | 18 +++++- tests/source/issue-5496/nested_if_one.rs | 10 ++++ tests/source/issue-5496/nested_if_two.rs | 22 +++++++ tests/source/issue-5496/simple_one.rs | 24 ++++++++ tests/source/issue-5496/simple_two.rs | 24 ++++++++ tests/target/issue-5496/nested_if_one.rs | 38 ++++++++++++ tests/target/issue-5496/nested_if_two.rs | 22 +++++++ tests/target/issue-5496/simple_one.rs | 76 ++++++++++++++++++++++++ tests/target/issue-5496/simple_two.rs | 76 ++++++++++++++++++++++++ 9 files changed, 309 insertions(+), 1 deletion(-) create mode 100644 tests/source/issue-5496/nested_if_one.rs create mode 100644 tests/source/issue-5496/nested_if_two.rs create mode 100644 tests/source/issue-5496/simple_one.rs create mode 100644 tests/source/issue-5496/simple_two.rs create mode 100644 tests/target/issue-5496/nested_if_one.rs create mode 100644 tests/target/issue-5496/nested_if_two.rs create mode 100644 tests/target/issue-5496/simple_one.rs create mode 100644 tests/target/issue-5496/simple_two.rs diff --git a/Configurations.md b/Configurations.md index 82008d7c46a..4202cdfaa30 100644 --- a/Configurations.md +++ b/Configurations.md @@ -2379,7 +2379,9 @@ Don't reformat out of line modules ## `single_line_if_else_max_width` -Maximum line length for single line if-else expressions. A value of `0` (zero) results in if-else expressions always being broken into multiple lines. Note this occurs when `use_small_heuristics` is set to `Off`. If one of the if-else blocks contain a statement, a comment, an attribute, or is empty, the if-else expression will be broken into multiple lines. When using `version = "Two"` the if-else expression at the end of a block will be formatted on a single line. The last if-else expression in the last example snippet of this section would be formatted on a single line with `version = "Two"`. +Maximum line length for single line if-else expressions. A value of `0` (zero) results in if-else expressions always being broken into multiple lines. Note this occurs when `use_small_heuristics` is set to `Off`. + +Common if-else expressions that may be formatted on a single line are expressions on the right hand side of the equals (`=`) sign in a let statement, expressions inside a function call, and expressions inside a closure. If one of the if-else blocks contain a statement, a comment, an attribute, or is empty, the if-else expression will be broken into multiple lines. For backwards compatability reasons, an if-else expression at the end of a block is treated as a statement when using `version = "One"` and may not be formatted on a single line. When using `version = "Two"` an if-else expression at the end of a block may be formatted on a single line if it is a simple if-else expression as described earlier. As an example, the last if-else expression in the last snippet of this section would be formatted on a single line with `version = "Two"`. - **Default value**: `50` - **Possible values**: any positive integer that is less than or equal to the value specified for [`max_width`](#max_width) @@ -2393,6 +2395,18 @@ By default this option is set as a percentage of [`max_width`](#max_width) provi fn foo() -> usize { let some_long_name = true; let some_other_long_name = false; + fun(if some_long_name && some_other_long_name { + 0 + } else { + 10 + }); + closure(|super_long_closure_variable| { + if super_long_closure_variable == 0 { + 0 + } else { + 10 + } + }); let bar = if some_long_name && some_other_long_name { baz() } else { @@ -2412,6 +2426,8 @@ fn foo() -> usize { fn foo() -> usize { let some_long_name = true; let some_other_long_name = false; + fun(if some_long_name && some_other_long_name { 0 } else { 10 }); + closure(|super_long_closure_variable| if super_long_closure_variable == 0 { 0 } else { 10 }); let bar = if some_long_name && some_other_long_name { baz() } else { buzz() }; if some_long_name && some_other_long_name { 1 diff --git a/tests/source/issue-5496/nested_if_one.rs b/tests/source/issue-5496/nested_if_one.rs new file mode 100644 index 00000000000..e0325b30f7a --- /dev/null +++ b/tests/source/issue-5496/nested_if_one.rs @@ -0,0 +1,10 @@ +// rustfmt-version: One +// rustfmt-single_line_if_else_max_width: 75 +fn foo() -> usize { + // nested + let _ = if true { if false { 1 } else { 2 } } else { 3 }; + let _ = if true { 3 } else { if false { 1 } else { 2 } }; + let _ = if true { if false { 1 } else { 2 } } else { if false { 3 } else { 4 } }; + + 1 +} \ No newline at end of file diff --git a/tests/source/issue-5496/nested_if_two.rs b/tests/source/issue-5496/nested_if_two.rs new file mode 100644 index 00000000000..8fe822c067b --- /dev/null +++ b/tests/source/issue-5496/nested_if_two.rs @@ -0,0 +1,22 @@ +// rustfmt-version: Two +// rustfmt-single_line_if_else_max_width: 75 +fn foo() -> usize { + // nested + let _ = if true { + if false { 1 } else { 2 } + } else { + 3 + }; + let _ = if true { + 3 + } else { + if false { 1 } else { 2 } + }; + let _ = if true { + if false { 1 } else { 2 } + } else { + if false { 3 } else { 4 } + }; + + 1 +} diff --git a/tests/source/issue-5496/simple_one.rs b/tests/source/issue-5496/simple_one.rs new file mode 100644 index 00000000000..307920ef7e6 --- /dev/null +++ b/tests/source/issue-5496/simple_one.rs @@ -0,0 +1,24 @@ +// rustfmt-version: One +fn foo() -> usize { + // empty + let _ = if true { 1 } else { }; + let _ = if true { } else { 2 }; + let _ = if true { } else { }; + + // attribute + let _ = if true { #[must_use] 1 } else { 2 }; + let _ = if true { 1 } else { #[must_use] 2 }; + let _ = if true { #[must_use] 1 } else { #[must_use] 2 }; + + // comment + let _ = if true { 1 /*1*/ } else { 2 }; + let _ = if true { 1 } else { 2 /*2*/}; + let _ = if true { 1 /*1*/} else { 2 /*2*/}; + + // a statement + let _ = if true { let a = 1; a } else { 2 }; + let _ = if true { 1 } else { let b = 2; b }; + let _ = if true { let a = 1; a } else { let b = 2; b }; + + 1 +} \ No newline at end of file diff --git a/tests/source/issue-5496/simple_two.rs b/tests/source/issue-5496/simple_two.rs new file mode 100644 index 00000000000..e8a34c3590c --- /dev/null +++ b/tests/source/issue-5496/simple_two.rs @@ -0,0 +1,24 @@ +// rustfmt-version: Two +fn foo() -> usize { + // empty + let _ = if true { 1 } else { }; + let _ = if true { } else { 2 }; + let _ = if true { } else { }; + + // attribute + let _ = if true { #[must_use] 1 } else { 2 }; + let _ = if true { 1 } else { #[must_use] 2 }; + let _ = if true { #[must_use] 1 } else { #[must_use] 2 }; + + // comment + let _ = if true { 1 /*1*/ } else { 2 }; + let _ = if true { 1 } else { 2 /*2*/}; + let _ = if true { 1 /*1*/} else { 2 /*2*/}; + + // a statement + let _ = if true { let a = 1; a } else { 2 }; + let _ = if true { 1 } else { let b = 2; b }; + let _ = if true { let a = 1; a } else { let b = 2; b }; + + 1 +} \ No newline at end of file diff --git a/tests/target/issue-5496/nested_if_one.rs b/tests/target/issue-5496/nested_if_one.rs new file mode 100644 index 00000000000..a471ca5da3d --- /dev/null +++ b/tests/target/issue-5496/nested_if_one.rs @@ -0,0 +1,38 @@ +// rustfmt-version: One +// rustfmt-single_line_if_else_max_width: 75 +fn foo() -> usize { + // nested + let _ = if true { + if false { + 1 + } else { + 2 + } + } else { + 3 + }; + let _ = if true { + 3 + } else { + if false { + 1 + } else { + 2 + } + }; + let _ = if true { + if false { + 1 + } else { + 2 + } + } else { + if false { + 3 + } else { + 4 + } + }; + + 1 +} diff --git a/tests/target/issue-5496/nested_if_two.rs b/tests/target/issue-5496/nested_if_two.rs new file mode 100644 index 00000000000..8fe822c067b --- /dev/null +++ b/tests/target/issue-5496/nested_if_two.rs @@ -0,0 +1,22 @@ +// rustfmt-version: Two +// rustfmt-single_line_if_else_max_width: 75 +fn foo() -> usize { + // nested + let _ = if true { + if false { 1 } else { 2 } + } else { + 3 + }; + let _ = if true { + 3 + } else { + if false { 1 } else { 2 } + }; + let _ = if true { + if false { 1 } else { 2 } + } else { + if false { 3 } else { 4 } + }; + + 1 +} diff --git a/tests/target/issue-5496/simple_one.rs b/tests/target/issue-5496/simple_one.rs new file mode 100644 index 00000000000..ea26c7fc93f --- /dev/null +++ b/tests/target/issue-5496/simple_one.rs @@ -0,0 +1,76 @@ +// rustfmt-version: One +fn foo() -> usize { + // empty + let _ = if true { + 1 + } else { + }; + let _ = if true { + } else { + 2 + }; + let _ = if true { + } else { + }; + + // attribute + let _ = if true { + #[must_use] + 1 + } else { + 2 + }; + let _ = if true { + 1 + } else { + #[must_use] + 2 + }; + let _ = if true { + #[must_use] + 1 + } else { + #[must_use] + 2 + }; + + // comment + let _ = if true { + 1 /*1*/ + } else { + 2 + }; + let _ = if true { + 1 + } else { + 2 /*2*/ + }; + let _ = if true { + 1 /*1*/ + } else { + 2 /*2*/ + }; + + // a statement + let _ = if true { + let a = 1; + a + } else { + 2 + }; + let _ = if true { + 1 + } else { + let b = 2; + b + }; + let _ = if true { + let a = 1; + a + } else { + let b = 2; + b + }; + + 1 +} diff --git a/tests/target/issue-5496/simple_two.rs b/tests/target/issue-5496/simple_two.rs new file mode 100644 index 00000000000..69264e6200d --- /dev/null +++ b/tests/target/issue-5496/simple_two.rs @@ -0,0 +1,76 @@ +// rustfmt-version: Two +fn foo() -> usize { + // empty + let _ = if true { + 1 + } else { + }; + let _ = if true { + } else { + 2 + }; + let _ = if true { + } else { + }; + + // attribute + let _ = if true { + #[must_use] + 1 + } else { + 2 + }; + let _ = if true { + 1 + } else { + #[must_use] + 2 + }; + let _ = if true { + #[must_use] + 1 + } else { + #[must_use] + 2 + }; + + // comment + let _ = if true { + 1 /*1*/ + } else { + 2 + }; + let _ = if true { + 1 + } else { + 2 /*2*/ + }; + let _ = if true { + 1 /*1*/ + } else { + 2 /*2*/ + }; + + // a statement + let _ = if true { + let a = 1; + a + } else { + 2 + }; + let _ = if true { + 1 + } else { + let b = 2; + b + }; + let _ = if true { + let a = 1; + a + } else { + let b = 2; + b + }; + + 1 +} From d6f3a90b77221262e62f99fb589c59e8e150e467 Mon Sep 17 00:00:00 2001 From: Truls <20932917+truls-p@users.noreply.github.com> Date: Thu, 25 Aug 2022 17:50:30 +0100 Subject: [PATCH 4/8] Update Configurations.md Add some newlines for default examples Co-authored-by: Yacin Tmimi --- Configurations.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Configurations.md b/Configurations.md index 4202cdfaa30..5d8e25c328d 100644 --- a/Configurations.md +++ b/Configurations.md @@ -2393,13 +2393,12 @@ By default this option is set as a percentage of [`max_width`](#max_width) provi ```rust fn foo() -> usize { - let some_long_name = true; - let some_other_long_name = false; fun(if some_long_name && some_other_long_name { 0 } else { 10 }); + closure(|super_long_closure_variable| { if super_long_closure_variable == 0 { 0 @@ -2407,11 +2406,13 @@ fn foo() -> usize { 10 } }); + let bar = if some_long_name && some_other_long_name { baz() } else { buzz() }; + if some_long_name && some_other_long_name { 1 } else { From a372baa10917e2e0cdf367c7c72cf4e5030a35c7 Mon Sep 17 00:00:00 2001 From: Truls <20932917+truls-p@users.noreply.github.com> Date: Thu, 25 Aug 2022 17:51:40 +0100 Subject: [PATCH 5/8] Reformat description in Configurations.md Co-authored-by: Yacin Tmimi --- Configurations.md | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/Configurations.md b/Configurations.md index 5d8e25c328d..b62c9bc05b8 100644 --- a/Configurations.md +++ b/Configurations.md @@ -2381,7 +2381,17 @@ Don't reformat out of line modules Maximum line length for single line if-else expressions. A value of `0` (zero) results in if-else expressions always being broken into multiple lines. Note this occurs when `use_small_heuristics` is set to `Off`. -Common if-else expressions that may be formatted on a single line are expressions on the right hand side of the equals (`=`) sign in a let statement, expressions inside a function call, and expressions inside a closure. If one of the if-else blocks contain a statement, a comment, an attribute, or is empty, the if-else expression will be broken into multiple lines. For backwards compatability reasons, an if-else expression at the end of a block is treated as a statement when using `version = "One"` and may not be formatted on a single line. When using `version = "Two"` an if-else expression at the end of a block may be formatted on a single line if it is a simple if-else expression as described earlier. As an example, the last if-else expression in the last snippet of this section would be formatted on a single line with `version = "Two"`. +Common if-else expressions that may be formatted on a single line are: +* Expressions on the right hand side of an equals (`=`) sign. e.g. `let x = if y == 1 { 0 } else { 1 };` +* Conditional expression in function calls `f(if x== 0 { 10 } else { 0 })` +* Single expression closures. e.g. `let x = |y| if y == 0 { 0 } else { 10 };` + +In the following scenarios the if-else expression will be formatted over multiple lines. +* Empty if-else blocks. +* An outer if-else expression when if-else expression are nested. +* if-else blocks that contain statements e.g. `let x = a;`, comments, or attributes `let _ = if true { #[must_use] 1 } else { 2 };`. + +When `version=One` is set (the default) if-else expression at the end of a block are treated as statements and are not formatted on a single line. When using `version=Two` the if-else expression may be formatted on a single line if it meets the criteria described above. - **Default value**: `50` - **Possible values**: any positive integer that is less than or equal to the value specified for [`max_width`](#max_width) From c0216104801129112316794b7cfc831e76940b98 Mon Sep 17 00:00:00 2001 From: truls-p <20932917+truls-p@users.noreply.github.com> Date: Thu, 25 Aug 2022 17:54:14 +0100 Subject: [PATCH 6/8] Add some more whitespace in examples, but remove unnecessary spaces --- Configurations.md | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/Configurations.md b/Configurations.md index b62c9bc05b8..a39446d4528 100644 --- a/Configurations.md +++ b/Configurations.md @@ -2408,7 +2408,7 @@ fn foo() -> usize { } else { 10 }); - + closure(|super_long_closure_variable| { if super_long_closure_variable == 0 { 0 @@ -2416,13 +2416,13 @@ fn foo() -> usize { 10 } }); - + let bar = if some_long_name && some_other_long_name { baz() } else { buzz() }; - + if some_long_name && some_other_long_name { 1 } else { @@ -2435,11 +2435,12 @@ fn foo() -> usize { ```rust fn foo() -> usize { - let some_long_name = true; - let some_other_long_name = false; fun(if some_long_name && some_other_long_name { 0 } else { 10 }); + closure(|super_long_closure_variable| if super_long_closure_variable == 0 { 0 } else { 10 }); + let bar = if some_long_name && some_other_long_name { baz() } else { buzz() }; + if some_long_name && some_other_long_name { 1 } else { From 63ccc1c67eeb953d5616be59b491db93c478820b Mon Sep 17 00:00:00 2001 From: truls-p <20932917+truls-p@users.noreply.github.com> Date: Thu, 25 Aug 2022 17:56:29 +0100 Subject: [PATCH 7/8] Add missing newlines in tests/source files --- tests/source/issue-5496/70.rs | 2 +- tests/source/issue-5496/70_version_two.rs | 2 +- tests/source/issue-5496/default.rs | 2 +- tests/source/issue-5496/nested_if_one.rs | 2 +- tests/source/issue-5496/simple_one.rs | 2 +- tests/source/issue-5496/simple_two.rs | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/tests/source/issue-5496/70.rs b/tests/source/issue-5496/70.rs index 7d90ba9e896..0c08c9ac797 100644 --- a/tests/source/issue-5496/70.rs +++ b/tests/source/issue-5496/70.rs @@ -5,4 +5,4 @@ fn foo() -> usize { let some_other_long_name = false; let bar = if some_long_name && some_other_long_name { baz() } else { buzz() }; if some_long_name && some_other_long_name { 1 } else { 2 } -} \ No newline at end of file +} diff --git a/tests/source/issue-5496/70_version_two.rs b/tests/source/issue-5496/70_version_two.rs index f8043c7755e..2fc3b6adca0 100644 --- a/tests/source/issue-5496/70_version_two.rs +++ b/tests/source/issue-5496/70_version_two.rs @@ -9,4 +9,4 @@ fn foo() -> usize { } else { 2 } -} \ No newline at end of file +} diff --git a/tests/source/issue-5496/default.rs b/tests/source/issue-5496/default.rs index 9674b39b7de..50ff93fe62a 100644 --- a/tests/source/issue-5496/default.rs +++ b/tests/source/issue-5496/default.rs @@ -3,4 +3,4 @@ fn foo() -> usize { let some_other_long_name = false; let bar = if some_long_name && some_other_long_name { baz() } else { buzz() }; if some_long_name && some_other_long_name { 1 } else { 2 } -} \ No newline at end of file +} diff --git a/tests/source/issue-5496/nested_if_one.rs b/tests/source/issue-5496/nested_if_one.rs index e0325b30f7a..b805bc5699a 100644 --- a/tests/source/issue-5496/nested_if_one.rs +++ b/tests/source/issue-5496/nested_if_one.rs @@ -7,4 +7,4 @@ fn foo() -> usize { let _ = if true { if false { 1 } else { 2 } } else { if false { 3 } else { 4 } }; 1 -} \ No newline at end of file +} diff --git a/tests/source/issue-5496/simple_one.rs b/tests/source/issue-5496/simple_one.rs index 307920ef7e6..ef32c310038 100644 --- a/tests/source/issue-5496/simple_one.rs +++ b/tests/source/issue-5496/simple_one.rs @@ -21,4 +21,4 @@ fn foo() -> usize { let _ = if true { let a = 1; a } else { let b = 2; b }; 1 -} \ No newline at end of file +} diff --git a/tests/source/issue-5496/simple_two.rs b/tests/source/issue-5496/simple_two.rs index e8a34c3590c..4d05b72ddc4 100644 --- a/tests/source/issue-5496/simple_two.rs +++ b/tests/source/issue-5496/simple_two.rs @@ -21,4 +21,4 @@ fn foo() -> usize { let _ = if true { let a = 1; a } else { let b = 2; b }; 1 -} \ No newline at end of file +} From a5361464b592e8e494e3a6f19891924ec8276878 Mon Sep 17 00:00:00 2001 From: truls-p <20932917+truls-p@users.noreply.github.com> Date: Thu, 25 Aug 2022 18:04:51 +0100 Subject: [PATCH 8/8] Some small tweaks to Configuration.md --- Configurations.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Configurations.md b/Configurations.md index a39446d4528..f13cd564098 100644 --- a/Configurations.md +++ b/Configurations.md @@ -2383,15 +2383,15 @@ Maximum line length for single line if-else expressions. A value of `0` (zero) r Common if-else expressions that may be formatted on a single line are: * Expressions on the right hand side of an equals (`=`) sign. e.g. `let x = if y == 1 { 0 } else { 1 };` -* Conditional expression in function calls `f(if x== 0 { 10 } else { 0 })` +* Conditional expression in function calls. e.g. `f(if x== 0 { 10 } else { 0 })` * Single expression closures. e.g. `let x = |y| if y == 0 { 0 } else { 10 };` In the following scenarios the if-else expression will be formatted over multiple lines. * Empty if-else blocks. * An outer if-else expression when if-else expression are nested. -* if-else blocks that contain statements e.g. `let x = a;`, comments, or attributes `let _ = if true { #[must_use] 1 } else { 2 };`. +* If-else blocks that contain statements (e.g. `let x = a;`), comments, or attributes (e.g. `let _ = if true { #[must_use] 1 } else { 2 };`). -When `version=One` is set (the default) if-else expression at the end of a block are treated as statements and are not formatted on a single line. When using `version=Two` the if-else expression may be formatted on a single line if it meets the criteria described above. +When `version=One` is set (the default) an if-else expression at the end of a block is treated as a statement and is not formatted on a single line. When using `version=Two` the if-else expression may be formatted on a single line if it meets the criteria described above. - **Default value**: `50` - **Possible values**: any positive integer that is less than or equal to the value specified for [`max_width`](#max_width)