diff options
| author | Shoyu Vanilla (Flint) <modulo641@gmail.com> | 2025-09-20 12:06:18 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-09-20 12:06:18 +0000 |
| commit | e976c9c762e1d19e177e41a9fe2b2a397229f8c4 (patch) | |
| tree | ed06737172acd4dd50cd6d0d2c102ed78a05a6b9 | |
| parent | f6170ec3f56cafa7c27e921c410155edbcb992d8 (diff) | |
| parent | 1a56d279b8dee896dd46552806686fac513336a7 (diff) | |
| download | rust-e976c9c762e1d19e177e41a9fe2b2a397229f8c4.tar.gz rust-e976c9c762e1d19e177e41a9fe2b2a397229f8c4.zip | |
Merge pull request #20688 from A4-Tacks/fix-applicable-after-l-curly-replace-is-method-with-if-let
Fix applicable after l_curly for replace_is_method_with_if_let_method
| -rw-r--r-- | src/tools/rust-analyzer/crates/ide-assists/src/handlers/replace_is_method_with_if_let_method.rs | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/tools/rust-analyzer/crates/ide-assists/src/handlers/replace_is_method_with_if_let_method.rs b/src/tools/rust-analyzer/crates/ide-assists/src/handlers/replace_is_method_with_if_let_method.rs index 5ef8ba46b9e..f507cae1bb0 100644 --- a/src/tools/rust-analyzer/crates/ide-assists/src/handlers/replace_is_method_with_if_let_method.rs +++ b/src/tools/rust-analyzer/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 + } +} +"#, + ); + } } |
