about summary refs log tree commit diff
path: root/compiler/rustc_session/src/cstore.rs
AgeCommit message (Collapse)AuthorLines
2024-04-19Move `stable_crate_ids` from `CrateStore` to `Untracked`Oli Scherer-2/+5
This way it's like `Definitions`, which creates `DefId`s by interning `DefPathData`s, but for interning stable crate hashes
2024-03-27Make `def_path_hash_to_def_id` a hookOli Scherer-3/+0
2024-03-27Move `CrateStore::expn_hash_to_expn_id` to a hookOli Scherer-9/+0
2024-03-27Start replacing `CStore` trait methods with hooks.Oli Scherer-6/+0
This also avoids the cyclic definition issues with CrateStore being defined after TyCtxt, but needing to be used in TyCtxt.
2023-11-30Move `MetadataLoader{,Dyn}` to `rustc_metadata`.Nicholas Nethercote-18/+1
They're not used in `rustc_session`, and `rustc_metadata` is a more obvious location. `MetadataLoader` was originally put into `rustc_session` in #41565 to avoid a dependency on LLVM, but things have changed a lot since then and that's no longer relevant, e.g. `rustc_codegen_llvm` depends on `rustc_metadata`.
2023-09-09Use `FreezeLock` for `CStore`John Kåre Alsaker-2/+2
2023-09-02Rename `Freeze` to `FreezeLock`John Kåre Alsaker-2/+2
2023-09-02Add `Freeze` type and use it to store `Definitions`John Kåre Alsaker-2/+2
2023-07-17Do not fetch HIR in native_libs.Camille GILLOT-0/+2
2023-05-16Remove `MetadataRef` type aliasMaybe Waffle-3/+4
2023-05-06introduce `DynSend` and `DynSync` auto traitSparrowLii-2/+2
2023-04-04Add a usize-indexed append-only-vecOli Scherer-2/+2
2023-03-19The name of NativeLib will be presentedyukang-2/+5
2023-02-21Use a lock-free datastructure for `source_span`Oli Scherer-3/+2
2023-02-21Remove unused `Debug` implOli Scherer-1/+0
2023-02-20Move the resolver into a queryOli Scherer-1/+1
2023-02-20Make untracked.source_span lockable so that resolution can still write to it ↵Oli Scherer-1/+1
when using TyCtxt
2023-02-20Make untracked.cstore lockable so that resolution can still write to it when ↵Oli Scherer-3/+3
using TyCtxt
2023-01-17Remove double spaces after dots in commentsMaybe Waffle-1/+1
2022-12-09Fold `Definitions` into the untracked dataOli Scherer-2/+3
2022-12-09Move the untracked cstore and source_span into a structOli Scherer-1/+10
2022-09-12change rlib format to discern native dependenciesDaniil Belov-0/+2
2022-08-26Implementation of import_name_typeDaniel Paoliello-1/+32
2022-03-30Stabilize native library modifier syntax and the `whole-archive` modifier ↵Vadim Petrochenkov-0/+6
specifically
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