Unnamed repository; edit this file 'description' to name the repository.
Fix allow extracting function from single brace of block expression
AmrDeveloper 2023-04-10
parent 51d5862 · commit 2afc124
-rw-r--r--crates/ide-assists/src/handlers/extract_function.rs17
1 files changed, 17 insertions, 0 deletions
diff --git a/crates/ide-assists/src/handlers/extract_function.rs b/crates/ide-assists/src/handlers/extract_function.rs
index 0b90c9ba34..ced1aec7f8 100644
--- a/crates/ide-assists/src/handlers/extract_function.rs
+++ b/crates/ide-assists/src/handlers/extract_function.rs
@@ -70,6 +70,11 @@ pub(crate) fn extract_function(acc: &mut Assists, ctx: &AssistContext<'_>) -> Op
}
let node = ctx.covering_element();
+ if node.kind() == SyntaxKind::L_CURLY || node.kind() == SyntaxKind::R_CURLY {
+ cov_mark::hit!(extract_function_in_curly_bracket_is_not_applicable);
+ return None;
+ }
+
if node.kind() == COMMENT {
cov_mark::hit!(extract_function_in_comment_is_not_applicable);
return None;
@@ -5800,4 +5805,16 @@ fn $0fun_name() -> ControlFlow<()> {
"#,
);
}
+
+ #[test]
+ fn in_left_curly_is_not_applicable() {
+ cov_mark::check!(extract_function_in_curly_bracket_is_not_applicable);
+ check_assist_not_applicable(extract_function, r"fn foo() { $0}$0 ");
+ }
+
+ #[test]
+ fn in_right_curly_is_not_applicable() {
+ cov_mark::check!(extract_function_in_curly_bracket_is_not_applicable);
+ check_assist_not_applicable(extract_function, r"fn foo() $0{$0 } ");
+ }
}