Salsify the crate graph

I.e. make it not one giant input but multiple, for incrementality and decreased memory usage for Salsa 3 reasons.
This commit is contained in:
Chayim Refael Friedman 2025-01-02 01:45:32 +02:00
parent 44f18c3d05
commit c94e9efbef
108 changed files with 3630 additions and 2512 deletions

View file

@ -626,11 +626,11 @@ impl<'db, 'sema> Matcher<'db, 'sema> {
match_error!("Failed to get receiver type for `{}`", expr.syntax().text())
})?
.original;
let krate = self.sema.scope(expr.syntax()).map(|it| it.krate()).unwrap_or_else(|| {
hir::Crate::from(
*self.sema.db.crate_graph().crates_in_topological_order().last().unwrap(),
)
});
let krate = self
.sema
.scope(expr.syntax())
.map(|it| it.krate())
.unwrap_or_else(|| hir::Crate::from(*self.sema.db.all_crates().last().unwrap()));
let res = code_type
.autoderef(self.sema.db)
.enumerate()