Merge pull request #20445 from rust-lang/veykril/push-twmmuyzwtxno

fix: Attach db for inlay hint compute
This commit is contained in:
Lukas Wirth 2025-08-13 08:01:19 +00:00 committed by GitHub
commit 2cc7bb371d
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 11 additions and 9 deletions

View File

@ -289,7 +289,7 @@ impl<'db> DbInterner<'db> {
krate: None,
block: None,
})
.unwrap()
.expect("db is expected to be attached")
}
pub fn new_with(

View File

@ -107,14 +107,16 @@ pub(crate) fn inlay_hints(
}
};
let mut preorder = file.preorder();
while let Some(event) = preorder.next() {
if matches!((&event, range_limit), (WalkEvent::Enter(node), Some(range)) if range.intersect(node.text_range()).is_none())
{
preorder.skip_subtree();
continue;
salsa::attach(sema.db, || {
while let Some(event) = preorder.next() {
if matches!((&event, range_limit), (WalkEvent::Enter(node), Some(range)) if range.intersect(node.text_range()).is_none())
{
preorder.skip_subtree();
continue;
}
hints(event);
}
hints(event);
}
});
if let Some(range_limit) = range_limit {
acc.retain(|hint| range_limit.contains_range(hint.range));
}
@ -736,7 +738,7 @@ fn label_of_ty(
config: &InlayHintsConfig,
display_target: DisplayTarget,
) -> Result<(), HirDisplayError> {
let iter_item_type = salsa::attach(sema.db, || hint_iterator(sema, famous_defs, ty));
let iter_item_type = hint_iterator(sema, famous_defs, ty);
match iter_item_type {
Some((iter_trait, item, ty)) => {
const LABEL_START: &str = "impl ";