Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/ide-assists/src/handlers/convert_closure_to_fn.rs')
-rw-r--r--crates/ide-assists/src/handlers/convert_closure_to_fn.rs66
1 files changed, 33 insertions, 33 deletions
diff --git a/crates/ide-assists/src/handlers/convert_closure_to_fn.rs b/crates/ide-assists/src/handlers/convert_closure_to_fn.rs
index 43515de71e..ca142332d9 100644
--- a/crates/ide-assists/src/handlers/convert_closure_to_fn.rs
+++ b/crates/ide-assists/src/handlers/convert_closure_to_fn.rs
@@ -101,21 +101,21 @@ pub(crate) fn convert_closure_to_fn(acc: &mut Assists, ctx: &AssistContext<'_>)
// but we need to locate `AstPtr`s inside the body.
let mut wrap_body_in_block = true;
if let ast::Expr::BlockExpr(block) = &body {
- if let Some(async_token) = block.async_token() {
- if !is_async {
- is_async = true;
- ret_ty = ret_ty.future_output(ctx.db())?;
- let token_idx = async_token.index();
- let whitespace_tokens_after_count = async_token
- .siblings_with_tokens(Direction::Next)
- .skip(1)
- .take_while(|token| token.kind() == SyntaxKind::WHITESPACE)
- .count();
- body.syntax().splice_children(
- token_idx..token_idx + whitespace_tokens_after_count + 1,
- Vec::new(),
- );
- }
+ if let Some(async_token) = block.async_token()
+ && !is_async
+ {
+ is_async = true;
+ ret_ty = ret_ty.future_output(ctx.db())?;
+ let token_idx = async_token.index();
+ let whitespace_tokens_after_count = async_token
+ .siblings_with_tokens(Direction::Next)
+ .skip(1)
+ .take_while(|token| token.kind() == SyntaxKind::WHITESPACE)
+ .count();
+ body.syntax().splice_children(
+ token_idx..token_idx + whitespace_tokens_after_count + 1,
+ Vec::new(),
+ );
}
if let Some(gen_token) = block.gen_token() {
is_gen = true;
@@ -236,6 +236,7 @@ pub(crate) fn convert_closure_to_fn(acc: &mut Assists, ctx: &AssistContext<'_>)
};
let mut fn_ = make::fn_(
None,
+ None,
closure_name_or_default.clone(),
closure_type_params,
closure_where_clause,
@@ -505,7 +506,7 @@ fn wrap_capture_in_deref_if_needed(
make::expr_prefix(T![*], capture_name).into()
}
-fn capture_as_arg(ctx: &AssistContext<'_>, capture: &ClosureCapture) -> ast::Expr {
+fn capture_as_arg(ctx: &AssistContext<'_>, capture: &ClosureCapture<'_>) -> ast::Expr {
let place = parse_expr_from_str(&capture.display_place_source_code(ctx.db()), ctx.edition())
.expect("`display_place_source_code()` produced an invalid expr");
let needs_mut = match capture.kind() {
@@ -513,10 +514,10 @@ fn capture_as_arg(ctx: &AssistContext<'_>, capture: &ClosureCapture) -> ast::Exp
CaptureKind::MutableRef | CaptureKind::UniqueSharedRef => true,
CaptureKind::Move => return place,
};
- if let ast::Expr::PrefixExpr(expr) = &place {
- if expr.op_kind() == Some(ast::UnaryOp::Deref) {
- return expr.expr().expect("`display_place_source_code()` produced an invalid expr");
- }
+ if let ast::Expr::PrefixExpr(expr) = &place
+ && expr.op_kind() == Some(ast::UnaryOp::Deref)
+ {
+ return expr.expr().expect("`display_place_source_code()` produced an invalid expr");
}
make::expr_ref(place, needs_mut)
}
@@ -642,11 +643,11 @@ fn peel_blocks_and_refs_and_parens(mut expr: ast::Expr) -> ast::Expr {
expr = ast::Expr::cast(parent).unwrap();
continue;
}
- if let Some(stmt_list) = ast::StmtList::cast(parent) {
- if let Some(block) = stmt_list.syntax().parent().and_then(ast::BlockExpr::cast) {
- expr = ast::Expr::BlockExpr(block);
- continue;
- }
+ if let Some(stmt_list) = ast::StmtList::cast(parent)
+ && let Some(block) = stmt_list.syntax().parent().and_then(ast::BlockExpr::cast)
+ {
+ expr = ast::Expr::BlockExpr(block);
+ continue;
}
break;
}
@@ -662,12 +663,11 @@ fn expr_of_pat(pat: ast::Pat) -> Option<ast::Expr> {
if let Some(let_stmt) = ast::LetStmt::cast(ancestor.clone()) {
break 'find_expr let_stmt.initializer();
}
- if ast::MatchArm::can_cast(ancestor.kind()) {
- if let Some(match_) =
+ if ast::MatchArm::can_cast(ancestor.kind())
+ && let Some(match_) =
ancestor.parent().and_then(|it| it.parent()).and_then(ast::MatchExpr::cast)
- {
- break 'find_expr match_.expr();
- }
+ {
+ break 'find_expr match_.expr();
}
if ast::ExprStmt::can_cast(ancestor.kind()) {
break;
@@ -1066,7 +1066,7 @@ fn foo() {
r#"
fn foo() {
let (mut a, b) = (0.1, "abc");
- fn closure(p1: i32, p2: &mut bool, a: &mut f64, b: &&'static str) {
+ fn closure(p1: i32, p2: &mut bool, a: &mut f64, b: &&str) {
*a = 1.2;
let c = *b;
}
@@ -1098,7 +1098,7 @@ fn foo() {
r#"
fn foo() {
let (mut a, b) = (0.1, "abc");
- fn closure(p1: i32, p2: &mut bool, a: &mut f64, b: &&'static str) {
+ fn closure(p1: i32, p2: &mut bool, a: &mut f64, b: &&str) {
let _: &mut bool = p2;
*a = 1.2;
let c = *b;
@@ -1136,7 +1136,7 @@ fn foo() {
r#"
fn foo() {
let (mut a, b) = (0.1, "abc");
- fn closure(p1: i32, p2: &mut bool, a: &mut f64, b: &&'static str) {
+ fn closure(p1: i32, p2: &mut bool, a: &mut f64, b: &&str) {
let _: &mut bool = p2;
*a = 1.2;
let c = *b;