Unnamed repository; edit this file 'description' to name the repository.
Merge #11265
11265: fix: Fix postfix completion panic r=lnicola a=Veykril Fixes https://github.com/rust-analyzer/rust-analyzer/issues/11233 bors r+ Co-authored-by: Lukas Wirth <[email protected]>
bors[bot] 2022-01-12
parent de50ef4 · parent 09ce5d8 · commit 4fe10b7
-rw-r--r--crates/ide_completion/src/completions/postfix.rs4
1 files changed, 4 insertions, 0 deletions
diff --git a/crates/ide_completion/src/completions/postfix.rs b/crates/ide_completion/src/completions/postfix.rs
index a212a98461..0dfb8abb8b 100644
--- a/crates/ide_completion/src/completions/postfix.rs
+++ b/crates/ide_completion/src/completions/postfix.rs
@@ -225,6 +225,10 @@ fn build_postfix_snippet_builder<'ctx>(
) -> Option<impl Fn(&str, &str, &str) -> Builder + 'ctx> {
let receiver_syntax = receiver.syntax();
let receiver_range = ctx.sema.original_range_opt(receiver_syntax)?.range;
+ if ctx.source_range().end() < receiver_range.start() {
+ // This shouldn't happen, yet it does. I assume this might be due to an incorrect token mapping.
+ return None;
+ }
let delete_range = TextRange::new(receiver_range.start(), ctx.source_range().end());
// Wrapping impl Fn in an option ruins lifetime inference for the parameters in a way that