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, krate: None,
block: None, block: None,
}) })
.unwrap() .expect("db is expected to be attached")
} }
pub fn new_with( pub fn new_with(

View File

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