This crate is responsible for the part of name resolution that doesn’t require type checker.
Module structure of the crate is built here. Paths in macros, imports, expressions, types, patterns are resolved here. Label and lifetime names are resolved here as well.
Type-relative name resolution (methods, fields, associated items) happens in
Resolverto macro expander.
DefIdTree, sometimes required to satisfy borrow checker by avoiding borrowing the whole resolver.