diff options
| author | Alex Crichton <alex@alexcrichton.com> | 2017-08-30 14:48:57 -0700 |
|---|---|---|
| committer | Alex Crichton <alex@alexcrichton.com> | 2017-09-05 07:37:28 -0700 |
| commit | 64a70342e67f09b5326538b08990d1b0d2900a5b (patch) | |
| tree | 0fef98b42f025e8f13769e92b353e14e994f6ba1 /src/rustllvm/RustWrapper.cpp | |
| parent | 87ea0a19bf3a4dccac890b33646fa3460dff5a8b (diff) | |
| download | rust-64a70342e67f09b5326538b08990d1b0d2900a5b.tar.gz rust-64a70342e67f09b5326538b08990d1b0d2900a5b.zip | |
rustc: Remove a number of mutable fields in cstore
This commit started by moving methods from `CrateStore` to queries, but it ended
up necessitating some deeper refactorings to move more items in general to
queries.
Before this commit the *resolver* would walk over the AST and process foreign
modules (`extern { .. }` blocks) and collect `#[link]` annotations. It would
then also process the command line `-l` directives and such. This information
was then stored as precalculated lists in the `CrateStore` object for iterating
over later.
After this, commit, however, this pass no longer happens during resolution but
now instead happens through queries. A query for the linked libraries of a crate
will crawl the crate for `extern` blocks and then process the linkage
annotations at that time.
Diffstat (limited to 'src/rustllvm/RustWrapper.cpp')
0 files changed, 0 insertions, 0 deletions
