diff options
| author | bors <bors@rust-lang.org> | 2024-05-07 07:24:15 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2024-05-07 07:24:15 +0000 |
| commit | 24ef42aafc03cf1bf4298a0fec1ca313979169d7 (patch) | |
| tree | 1ee03cc12c259fd097947d5fdce08650a5bff611 /src | |
| parent | c50b357efe81c4632ce3875496029fc596be0e8b (diff) | |
| parent | 88a0df9d822be905a5984369cd5cb94d91f2f9e6 (diff) | |
| download | rust-24ef42aafc03cf1bf4298a0fec1ca313979169d7.tar.gz rust-24ef42aafc03cf1bf4298a0fec1ca313979169d7.zip | |
Auto merge of #17192 - roife:fix-issue-17179, r=lnicola
Fix source_range for INT_NUMBER in completion fix #17179. Previously r-a use `TextRange::empty(self.position.offset)` as `source_range` for `INT_NUMBER`, so the `text_edit` would always be an insertion, which results in #17179. This PR changed it by using `text_range` of `original_token` (same as `IDENT`).
Diffstat (limited to 'src')
| -rw-r--r-- | src/tools/rust-analyzer/crates/ide-completion/src/context.rs | 2 | ||||
| -rw-r--r-- | src/tools/rust-analyzer/crates/ide-completion/src/render.rs | 45 |
2 files changed, 46 insertions, 1 deletions
diff --git a/src/tools/rust-analyzer/crates/ide-completion/src/context.rs b/src/tools/rust-analyzer/crates/ide-completion/src/context.rs index 8b435f419c7..db34beadc0f 100644 --- a/src/tools/rust-analyzer/crates/ide-completion/src/context.rs +++ b/src/tools/rust-analyzer/crates/ide-completion/src/context.rs @@ -466,7 +466,7 @@ impl CompletionContext<'_> { cov_mark::hit!(completes_if_lifetime_without_idents); TextRange::at(self.original_token.text_range().start(), TextSize::from(1)) } - IDENT | LIFETIME_IDENT | UNDERSCORE => self.original_token.text_range(), + IDENT | LIFETIME_IDENT | UNDERSCORE | INT_NUMBER => self.original_token.text_range(), _ if kind.is_keyword() => self.original_token.text_range(), _ => TextRange::empty(self.position.offset), } diff --git a/src/tools/rust-analyzer/crates/ide-completion/src/render.rs b/src/tools/rust-analyzer/crates/ide-completion/src/render.rs index 0f13bea7b66..db69b220786 100644 --- a/src/tools/rust-analyzer/crates/ide-completion/src/render.rs +++ b/src/tools/rust-analyzer/crates/ide-completion/src/render.rs @@ -1731,6 +1731,51 @@ fn foo(a: A) { B { bar: a.$0 }; } } #[test] + fn tuple_field_detail() { + check( + r#" +struct S(i32); + +fn f() -> i32 { + let s = S(0); + s.0$0 +} +"#, + SymbolKind::Field, + expect![[r#" + [ + CompletionItem { + label: "0", + source_range: 56..57, + delete: 56..57, + insert: "0", + kind: SymbolKind( + Field, + ), + detail: "i32", + relevance: CompletionRelevance { + exact_name_match: false, + type_match: Some( + Exact, + ), + is_local: false, + is_item_from_trait: false, + is_item_from_notable_trait: false, + is_name_already_imported: false, + requires_import: false, + is_op_method: false, + is_private_editable: false, + postfix_match: None, + is_definite: false, + function: None, + }, + }, + ] + "#]], + ); + } + + #[test] fn record_field_and_call_relevances() { check_relevance( r#" |
