Unnamed repository; edit this file 'description' to name the repository.
| -rw-r--r-- | crates/ide-assists/src/handlers/convert_to_guarded_return.rs | 15 | ||||
| -rw-r--r-- | crates/ide-assists/src/tests/generated.rs | 20 |
2 files changed, 35 insertions, 0 deletions
diff --git a/crates/ide-assists/src/handlers/convert_to_guarded_return.rs b/crates/ide-assists/src/handlers/convert_to_guarded_return.rs index 7f4fb4c694..05ccd5b9bf 100644 --- a/crates/ide-assists/src/handlers/convert_to_guarded_return.rs +++ b/crates/ide-assists/src/handlers/convert_to_guarded_return.rs @@ -42,6 +42,21 @@ use crate::{ // bar(); // } // ``` +// --- +// ``` +// //- minicore: option +// fn foo() -> Option<i32> { None } +// fn main() { +// $0let x = foo(); +// } +// ``` +// -> +// ``` +// fn foo() -> Option<i32> { None } +// fn main() { +// let Some(x) = foo() else { return }; +// } +// ``` pub(crate) fn convert_to_guarded_return(acc: &mut Assists, ctx: &AssistContext<'_>) -> Option<()> { match ctx.find_node_at_offset::<Either<ast::LetStmt, ast::IfExpr>>()? { Either::Left(let_stmt) => let_stmt_to_guarded_return(let_stmt, acc, ctx), diff --git a/crates/ide-assists/src/tests/generated.rs b/crates/ide-assists/src/tests/generated.rs index 581efd0bac..3040509000 100644 --- a/crates/ide-assists/src/tests/generated.rs +++ b/crates/ide-assists/src/tests/generated.rs @@ -813,6 +813,26 @@ fn main() { } #[test] +fn doctest_convert_to_guarded_return_1() { + check_doc_test( + "convert_to_guarded_return", + r#####" +//- minicore: option +fn foo() -> Option<i32> { None } +fn main() { + $0let x = foo(); +} +"#####, + r#####" +fn foo() -> Option<i32> { None } +fn main() { + let Some(x) = foo() else { return }; +} +"#####, + ) +} + +#[test] fn doctest_convert_tuple_return_type_to_struct() { check_doc_test( "convert_tuple_return_type_to_struct", |