mirror of
https://github.com/rust-lang/rust-analyzer.git
synced 2025-10-01 06:11:35 +00:00
internal: Shrink size of Binding
This commit is contained in:
parent
36f58f5fff
commit
7c374a10bd
15 changed files with 94 additions and 56 deletions
|
@ -32,9 +32,8 @@ pub(super) fn hints(
|
|||
let def = sema.to_def(def)?;
|
||||
let def: DefWithBody = def.into();
|
||||
|
||||
let source_map = sema.db.body_with_source_map(def.into()).1;
|
||||
let (hir, source_map) = sema.db.body_with_source_map(def.into());
|
||||
|
||||
let hir = sema.db.body(def.into());
|
||||
let mir = sema.db.mir_body(def.into()).ok()?;
|
||||
|
||||
let local_to_binding = mir.local_to_binding_map();
|
||||
|
@ -74,22 +73,33 @@ pub(super) fn hints(
|
|||
Ok(s) => s.value.text_range(),
|
||||
Err(_) => continue,
|
||||
},
|
||||
MirSpan::BindingId(b) => {
|
||||
match source_map
|
||||
.patterns_for_binding(b)
|
||||
.iter()
|
||||
.find_map(|p| source_map.pat_syntax(*p).ok())
|
||||
{
|
||||
Some(s) => s.value.text_range(),
|
||||
None => continue,
|
||||
}
|
||||
}
|
||||
MirSpan::SelfParam => match source_map.self_param_syntax() {
|
||||
Some(s) => s.value.text_range(),
|
||||
None => continue,
|
||||
},
|
||||
MirSpan::Unknown => continue,
|
||||
};
|
||||
let binding_source = source_map
|
||||
.patterns_for_binding(*binding)
|
||||
.first()
|
||||
.and_then(|d| source_map.pat_syntax(*d).ok())
|
||||
.and_then(|d| {
|
||||
Some(FileRange {
|
||||
file_id: d.file_id.file_id()?.into(),
|
||||
range: d.value.text_range(),
|
||||
})
|
||||
});
|
||||
let binding = &hir.bindings[*binding];
|
||||
let binding_source =
|
||||
binding.definitions.first().and_then(|d| source_map.pat_syntax(*d).ok()).and_then(
|
||||
|d| {
|
||||
Some(FileRange {
|
||||
file_id: d.file_id.file_id()?.into(),
|
||||
range: d.value.text_range(),
|
||||
})
|
||||
},
|
||||
);
|
||||
let name = binding.name.display_no_db().to_smolstr();
|
||||
if name.starts_with("<ra@") {
|
||||
continue; // Ignore desugared variables
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue