internal: Shrink size of Binding

This commit is contained in:
Lukas Wirth 2024-07-22 17:12:55 +02:00
parent 36f58f5fff
commit 7c374a10bd
15 changed files with 94 additions and 56 deletions

View file

@ -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