diff options
| author | bors <bors@rust-lang.org> | 2023-09-08 08:24:29 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2023-09-08 08:24:29 +0000 |
| commit | 33256222303cf2d2d63c6eac217a5fb64efb0433 (patch) | |
| tree | 8cea94738857324971c8f3ddcc64152542581702 | |
| parent | fac77a8a07e3731994394272ad9f5ac6f5a94f37 (diff) | |
| parent | eed1b3b6524ffd63cce76a72ef14e9bd83e7c65a (diff) | |
| download | rust-33256222303cf2d2d63c6eac217a5fb64efb0433.tar.gz rust-33256222303cf2d2d63c6eac217a5fb64efb0433.zip | |
Auto merge of #15430 - alibektas:deunwrap/wrap_return_type_in_result, r=Veykril
minor : Deunwrap wrap_return_type_in_result #15398 subtask 7
| -rw-r--r-- | crates/ide-assists/src/handlers/wrap_return_type_in_result.rs | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/crates/ide-assists/src/handlers/wrap_return_type_in_result.rs b/crates/ide-assists/src/handlers/wrap_return_type_in_result.rs index 24c3387457a..61e9bcdcc51 100644 --- a/crates/ide-assists/src/handlers/wrap_return_type_in_result.rs +++ b/crates/ide-assists/src/handlers/wrap_return_type_in_result.rs @@ -48,6 +48,11 @@ pub(crate) fn wrap_return_type_in_result(acc: &mut Assists, ctx: &AssistContext< return None; } + let new_result_ty = + make::ext::ty_result(type_ref.clone(), make::ty_placeholder()).clone_for_update(); + let generic_args = new_result_ty.syntax().descendants().find_map(ast::GenericArgList::cast)?; + let last_genarg = generic_args.generic_args().last()?; + acc.add( AssistId("wrap_return_type_in_result", AssistKind::RefactorRewrite), "Wrap return type in Result", @@ -75,19 +80,12 @@ pub(crate) fn wrap_return_type_in_result(acc: &mut Assists, ctx: &AssistContext< ted::replace(ret_expr_arg.syntax(), ok_wrapped.syntax()); } - let new_result_ty = - make::ext::ty_result(type_ref.clone(), make::ty_placeholder()).clone_for_update(); let old_result_ty = edit.make_mut(type_ref.clone()); ted::replace(old_result_ty.syntax(), new_result_ty.syntax()); if let Some(cap) = ctx.config.snippet_cap { - let generic_args = new_result_ty - .syntax() - .descendants() - .find_map(ast::GenericArgList::cast) - .unwrap(); - edit.add_placeholder_snippet(cap, generic_args.generic_args().last().unwrap()); + edit.add_placeholder_snippet(cap, last_genarg); } }, ) |
