internal: Enforce Resolver to always have a module scope

This commit is contained in:
Lukas Wirth 2022-03-31 11:12:08 +02:00
parent ef92453dfe
commit 75689f2ad8
71 changed files with 360 additions and 398 deletions

View file

@ -110,7 +110,10 @@ fn hints(
config: &InlayHintsConfig,
node: SyntaxNode,
) {
let krate = sema.scope(&node).module().map(|it| it.krate());
let krate = match sema.scope(&node) {
Some(it) => it.krate(),
None => return,
};
let famous_defs = FamousDefs(sema, krate);
if let Some(expr) = ast::Expr::cast(node.clone()) {
chaining_hints(hints, sema, &famous_defs, config, &expr);
@ -503,7 +506,7 @@ fn bind_pat_hints(
return None;
}
let krate = sema.scope(desc_pat.syntax()).module().map(|it| it.krate());
let krate = sema.scope(desc_pat.syntax())?.krate();
let famous_defs = FamousDefs(sema, krate);
let label = hint_iterator(sema, &famous_defs, config, &ty);