about summary refs log tree commit diff
path: root/compiler/rustc_session/src/cstore.rs
AgeCommit message (Collapse)AuthorLines
2021-12-23Import `SourceFile`s from crate before decoding foreign `Span`Aaron Hill-0/+6
Fixes #92163 Fixes #92014 When writing to the incremental cache, we encode all `Span`s we encounter, regardless of whether or not their `SourceFile` comes from the local crate, or from a foreign crate. When we decode a `Span`, we use the `StableSourceFileId` we encoded to locate the matching `SourceFile` in the current session. If this id corresponds to a `SourceFile` from another crate, then we need to have already imported that `SourceFile` into our current session. This usually happens automatically during resolution / macro expansion, when we try to resolve definitions from other crates. In certain cases, however, we may try to load a `Span` from a transitive dependency without having ever imported the `SourceFile`s from that crate, leading to an ICE. This PR fixes the issue by calling `imported_source_files()` when we encounter a `SourceFile` with a foreign `CrateNum`. This ensures that all `SourceFile`s from that crate are imported into the current session.
2021-10-06Access Session while decoding expn_id.Camille GILLOT-1/+8
2021-10-03Add some inlining.Camille GILLOT-0/+4
2021-10-03Move rustc_middle::middle::cstore to rustc_session.Camille GILLOT-0/+195