Skip to content

Commit 3325622

Browse files
committed
Auto merge of #15430 - alibektas:deunwrap/wrap_return_type_in_result, r=Veykril
minor : Deunwrap wrap_return_type_in_result #15398 subtask 7
2 parents fac77a8 + eed1b3b commit 3325622

File tree

1 file changed

+6
-8
lines changed

1 file changed

+6
-8
lines changed

crates/ide-assists/src/handlers/wrap_return_type_in_result.rs

+6-8
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,11 @@ pub(crate) fn wrap_return_type_in_result(acc: &mut Assists, ctx: &AssistContext<
4848
return None;
4949
}
5050

51+
let new_result_ty =
52+
make::ext::ty_result(type_ref.clone(), make::ty_placeholder()).clone_for_update();
53+
let generic_args = new_result_ty.syntax().descendants().find_map(ast::GenericArgList::cast)?;
54+
let last_genarg = generic_args.generic_args().last()?;
55+
5156
acc.add(
5257
AssistId("wrap_return_type_in_result", AssistKind::RefactorRewrite),
5358
"Wrap return type in Result",
@@ -75,19 +80,12 @@ pub(crate) fn wrap_return_type_in_result(acc: &mut Assists, ctx: &AssistContext<
7580
ted::replace(ret_expr_arg.syntax(), ok_wrapped.syntax());
7681
}
7782

78-
let new_result_ty =
79-
make::ext::ty_result(type_ref.clone(), make::ty_placeholder()).clone_for_update();
8083
let old_result_ty = edit.make_mut(type_ref.clone());
8184

8285
ted::replace(old_result_ty.syntax(), new_result_ty.syntax());
8386

8487
if let Some(cap) = ctx.config.snippet_cap {
85-
let generic_args = new_result_ty
86-
.syntax()
87-
.descendants()
88-
.find_map(ast::GenericArgList::cast)
89-
.unwrap();
90-
edit.add_placeholder_snippet(cap, generic_args.generic_args().last().unwrap());
88+
edit.add_placeholder_snippet(cap, last_genarg);
9189
}
9290
},
9391
)

0 commit comments

Comments
 (0)