Merge pull request #2089 from topecongiro/closure-block-body-with-comment

Fix rustfmt failing to format closure block body with comment
This commit is contained in:
Nick Cameron 2017-10-27 15:17:38 +05:30 committed by GitHub
commit f159d32c1f
3 changed files with 22 additions and 6 deletions

View File

@ -899,9 +899,6 @@ fn rewrite_cond(context: &RewriteContext, expr: &ast::Expr, shape: Shape) -> Opt
};
cond.rewrite(context, cond_shape)
}
ast::ExprKind::Block(ref block) if block.stmts.len() == 1 => {
stmt_expr(&block.stmts[0]).and_then(|e| rewrite_cond(context, e, shape))
}
_ => to_control_flow(expr, ExprType::SubExpression).and_then(|control_flow| {
let alt_block_sep =
String::from("\n") + &shape.indent.block_only().to_string(context.config);
@ -2228,7 +2225,7 @@ fn rewrite_last_closure(
) -> Option<String> {
if let ast::ExprKind::Closure(capture, ref fn_decl, ref body, _) = expr.node {
let body = match body.node {
ast::ExprKind::Block(ref block) if block.stmts.len() == 1 => {
ast::ExprKind::Block(ref block) if is_simple_block(block, context.codemap) => {
stmt_expr(&block.stmts[0]).unwrap_or(body)
}
_ => body,

View File

@ -41,7 +41,16 @@ fn main() {
let closure_with_return_type = |aaaaaaaaaaaaaaaaaaaaaaarg1, aaaaaaaaaaaaaaaaaaaaaaarg2| -> Strong { "sup".to_owned() };
|arg1, arg2, _, _, arg3, arg4| { let temp = arg4 + arg3;
arg2 * arg1 - temp }
arg2 * arg1 - temp };
let block_body_with_comment = args.iter()
.map(|a| {
// Emitting only dep-info is possible only for final crate type, as
// as others may emit required metadata for dependent crate types
if a.starts_with("--emit") && is_final_crate_type && !self.workspace_mode {
"--emit=dep-info"
} else { a }
});
}
fn issue311() {

View File

@ -60,7 +60,17 @@ fn main() {
|arg1, arg2, _, _, arg3, arg4| {
let temp = arg4 + arg3;
arg2 * arg1 - temp
}
};
let block_body_with_comment = args.iter().map(|a| {
// Emitting only dep-info is possible only for final crate type, as
// as others may emit required metadata for dependent crate types
if a.starts_with("--emit") && is_final_crate_type && !self.workspace_mode {
"--emit=dep-info"
} else {
a
}
});
}
fn issue311() {