mirror of
https://github.com/rust-lang/rust-analyzer.git
synced 2025-09-30 05:45:12 +00:00
internal: Improve rooted upmapping
This commit is contained in:
parent
03d2d9016d
commit
9ba4493918
24 changed files with 231 additions and 153 deletions
|
@ -38,7 +38,7 @@ fn fixes(ctx: &DiagnosticsContext<'_>, d: &hir::IncorrectCase) -> Option<Vec<Ass
|
|||
let def = NameClass::classify(&ctx.sema, &name_node)?.defined()?;
|
||||
|
||||
let name_node = InFile::new(d.file, name_node.syntax());
|
||||
let frange = name_node.original_file_range(ctx.sema.db);
|
||||
let frange = name_node.original_file_range_rooted(ctx.sema.db);
|
||||
|
||||
let label = format!("Rename to {}", d.suggested_text);
|
||||
let mut res = unresolved_fix("change_case", &label, frange.range);
|
||||
|
|
|
@ -114,10 +114,8 @@ fn add_variant_to_union(
|
|||
) -> Option<Assist> {
|
||||
let adt_source = adt_union.source(ctx.sema.db)?;
|
||||
let adt_syntax = adt_source.syntax();
|
||||
let Some(field_list) = adt_source.value.record_field_list() else {
|
||||
return None;
|
||||
};
|
||||
let range = adt_syntax.original_file_range(ctx.sema.db);
|
||||
let field_list = adt_source.value.record_field_list()?;
|
||||
let range = adt_syntax.original_file_range_rooted(ctx.sema.db);
|
||||
let field_name = make::name(field_name);
|
||||
|
||||
let (offset, record_field) =
|
||||
|
@ -144,7 +142,7 @@ fn add_field_to_struct_fix(
|
|||
) -> Option<Assist> {
|
||||
let struct_source = adt_struct.source(ctx.sema.db)?;
|
||||
let struct_syntax = struct_source.syntax();
|
||||
let struct_range = struct_syntax.original_file_range(ctx.sema.db);
|
||||
let struct_range = struct_syntax.original_file_range_rooted(ctx.sema.db);
|
||||
let field_list = struct_source.value.field_list();
|
||||
match field_list {
|
||||
Some(FieldList::RecordFieldList(field_list)) => {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue