about summary refs log tree commit diff
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2022-06-05 18:29:59 +0000
committerbors <bors@rust-lang.org>2022-06-05 18:29:59 +0000
commitad6810e90bf89a4ef0ae21349d077050bc2a4fa2 (patch)
treede347859e50d214f39f36278d95ceae01c70a562
parent995a17fbd9f7cdedfdafec946b1d9e44eff448b4 (diff)
parent0be31d945e380471c0183884f57af85b812d6497 (diff)
downloadrust-ad6810e90bf89a4ef0ae21349d077050bc2a4fa2.tar.gz
rust-ad6810e90bf89a4ef0ae21349d077050bc2a4fa2.zip
Auto merge of #12475 - Veykril:trait-impl-completion, r=Veykril
fix: Fix trait impl completions using wrong insert position

Fixes https://github.com/rust-lang/rust-analyzer/issues/12474
-rw-r--r--crates/ide-completion/src/completions/item_list/trait_impl.rs23
1 files changed, 22 insertions, 1 deletions
diff --git a/crates/ide-completion/src/completions/item_list/trait_impl.rs b/crates/ide-completion/src/completions/item_list/trait_impl.rs
index 8a2bbae73f4..56f656f4794 100644
--- a/crates/ide-completion/src/completions/item_list/trait_impl.rs
+++ b/crates/ide-completion/src/completions/item_list/trait_impl.rs
@@ -118,7 +118,7 @@ fn completion_match(ctx: &CompletionContext) -> Option<(ImplCompletionKind, Text
             ImplCompletionKind::All,
             match nameref {
                 Some(name) => name.syntax().text_range(),
-                None => TextRange::empty(ctx.position.offset),
+                None => ctx.source_range(),
             },
             ctx.impl_def.clone()?,
         )),
@@ -693,6 +693,27 @@ impl Test for () {
 }
 ",
         );
+        check_edit(
+            "type SomeType",
+            r#"
+trait Test {
+    type SomeType;
+}
+
+impl Test for () {
+    type$0
+}
+"#,
+            "
+trait Test {
+    type SomeType;
+}
+
+impl Test for () {
+    type SomeType = $0;\n\
+}
+",
+        );
     }
 
     #[test]