Skip to content

Commit

Permalink
Auto merge of rust-lang#17192 - roife:fix-issue-17179, r=lnicola
Browse files Browse the repository at this point in the history
Fix source_range for INT_NUMBER in completion

fix rust-lang#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 rust-lang#17179.

This PR changed it by using `text_range` of `original_token` (same as `IDENT`).
  • Loading branch information
bors committed May 7, 2024
2 parents c50b357 + 88a0df9 commit 24ef42a
Show file tree
Hide file tree
Showing 2 changed files with 46 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -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),
}
Expand Down
45 changes: 45 additions & 0 deletions src/tools/rust-analyzer/crates/ide-completion/src/render.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1730,6 +1730,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(
Expand Down

0 comments on commit 24ef42a

Please sign in to comment.