Allow callers to determine if blocks can be formatted on a single line
This will make it easier to format the divergent blocks of `let-else` statements since it'll be easier to prevent the block from being formatted on a single line if the preconditions aren't met.
This commit is contained in:
parent
9316df0ca2
commit
8be748dbb7
13
src/expr.rs
13
src/expr.rs
@ -575,6 +575,17 @@ fn rewrite_block(
|
|||||||
label: Option<ast::Label>,
|
label: Option<ast::Label>,
|
||||||
context: &RewriteContext<'_>,
|
context: &RewriteContext<'_>,
|
||||||
shape: Shape,
|
shape: Shape,
|
||||||
|
) -> Option<String> {
|
||||||
|
rewrite_block_inner(block, attrs, label, true, context, shape)
|
||||||
|
}
|
||||||
|
|
||||||
|
fn rewrite_block_inner(
|
||||||
|
block: &ast::Block,
|
||||||
|
attrs: Option<&[ast::Attribute]>,
|
||||||
|
label: Option<ast::Label>,
|
||||||
|
allow_single_line: bool,
|
||||||
|
context: &RewriteContext<'_>,
|
||||||
|
shape: Shape,
|
||||||
) -> Option<String> {
|
) -> Option<String> {
|
||||||
let prefix = block_prefix(context, block, shape)?;
|
let prefix = block_prefix(context, block, shape)?;
|
||||||
|
|
||||||
@ -586,7 +597,7 @@ fn rewrite_block(
|
|||||||
|
|
||||||
let result = rewrite_block_with_visitor(context, &prefix, block, attrs, label, shape, true);
|
let result = rewrite_block_with_visitor(context, &prefix, block, attrs, label, shape, true);
|
||||||
if let Some(ref result_str) = result {
|
if let Some(ref result_str) = result {
|
||||||
if result_str.lines().count() <= 3 {
|
if allow_single_line && result_str.lines().count() <= 3 {
|
||||||
if let rw @ Some(_) =
|
if let rw @ Some(_) =
|
||||||
rewrite_single_line_block(context, &prefix, block, attrs, label, shape)
|
rewrite_single_line_block(context, &prefix, block, attrs, label, shape)
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user