Unnamed repository; edit this file 'description' to name the repository.
Fix applicable after l_curly for replace_is_method_with_if_let_method
A4-Tacks 7 months ago
parent 2268a56 · commit d374851
-rw-r--r--crates/ide-assists/src/handlers/replace_is_method_with_if_let_method.rs18
1 files changed, 18 insertions, 0 deletions
diff --git a/crates/ide-assists/src/handlers/replace_is_method_with_if_let_method.rs b/crates/ide-assists/src/handlers/replace_is_method_with_if_let_method.rs
index 5ef8ba46b9..f507cae1bb 100644
--- a/crates/ide-assists/src/handlers/replace_is_method_with_if_let_method.rs
+++ b/crates/ide-assists/src/handlers/replace_is_method_with_if_let_method.rs
@@ -31,6 +31,9 @@ pub(crate) fn replace_is_method_with_if_let_method(
ast::Expr::MethodCallExpr(call) => call,
_ => return None,
};
+ if ctx.offset() > if_expr.then_branch()?.stmt_list()?.l_curly_token()?.text_range().end() {
+ return None;
+ }
let name_ref = call_expr.name_ref()?;
match name_ref.text().as_str() {
@@ -191,4 +194,19 @@ fn main() {
"#,
);
}
+
+ #[test]
+ fn replace_is_some_with_if_let_some_not_applicable_after_l_curly() {
+ check_assist_not_applicable(
+ replace_is_method_with_if_let_method,
+ r#"
+fn main() {
+ let x = Some(1);
+ if x.is_some() {
+ ()$0
+ }
+}
+"#,
+ );
+ }
}