about summary refs log tree commit diff
path: root/src/libsyntax/parse/parser/expr.rs
diff options
context:
space:
mode:
authorMazdak Farrokhzad <twingoow@gmail.com>2019-10-24 20:19:59 +0200
committerGitHub <noreply@github.com>2019-10-24 20:19:59 +0200
commitcdb7634f0c87d7bd25773b7a0a0fde3bc26322de (patch)
tree850e02b482576d035a42dc9a8e6ae059c40237bd /src/libsyntax/parse/parser/expr.rs
parent8e0007f829661e57d008d2e908c95f6e84b04b25 (diff)
parent94216ce3adfdb7d6c206505fca736d274a98ad2b (diff)
downloadrust-cdb7634f0c87d7bd25773b7a0a0fde3bc26322de.tar.gz
rust-cdb7634f0c87d7bd25773b7a0a0fde3bc26322de.zip
Rollup merge of #65625 - petrochenkov:cstore, r=Mark-Simulacrum,Zoxc
Turn crate store into a resolver output

Crate store (`CStore`) is a vector of data (`CrateMetadata`) associated with extern crates loaded during the current compilation session.

All crates are loaded in the resolver when resolving either paths pointing to extern prelude or `extern crate` items. (There are also a couple of crates like panic runtime that are loaded kind of like implicit `extern crate`s, but that also happens in resolve.)

The use of `CStore` from `rustc_plugin` (which is outside of the resolver) was unnecessary because legacy plugins are not added to the crate store and don't use `CrateNum`s.

So, `CStore` can be produced by the resolver instead of being kept in some really global data (`rustc_interface::Compiler`) like now.

As a result of crate store being more "local" we can now remove some locks and `Lrc`s.
Diffstat (limited to 'src/libsyntax/parse/parser/expr.rs')
0 files changed, 0 insertions, 0 deletions