diff options
| author | Vadim Petrochenkov <vadim.petrochenkov@gmail.com> | 2018-10-13 21:21:08 +0300 |
|---|---|---|
| committer | Vadim Petrochenkov <vadim.petrochenkov@gmail.com> | 2018-10-13 21:35:19 +0300 |
| commit | 522948827b8e691f8f1efce2a87ab813045af60b (patch) | |
| tree | a61249aa83822de5ac550c64330375c76bdeb1fe /src/librustc/ty | |
| parent | 83bb430663b35989cfc968550196c64a7b173cf4 (diff) | |
| download | rust-522948827b8e691f8f1efce2a87ab813045af60b.tar.gz rust-522948827b8e691f8f1efce2a87ab813045af60b.zip | |
Copy extern prelude from resolver to global context
Diffstat (limited to 'src/librustc/ty')
| -rw-r--r-- | src/librustc/ty/context.rs | 3 | ||||
| -rw-r--r-- | src/librustc/ty/item_path.rs | 2 | ||||
| -rw-r--r-- | src/librustc/ty/mod.rs | 3 |
3 files changed, 5 insertions, 3 deletions
diff --git a/src/librustc/ty/context.rs b/src/librustc/ty/context.rs index ab1df2d4c3b..5e15ca16b97 100644 --- a/src/librustc/ty/context.rs +++ b/src/librustc/ty/context.rs @@ -936,8 +936,8 @@ pub struct GlobalCtxt<'tcx> { freevars: FxHashMap<DefId, Lrc<Vec<hir::Freevar>>>, maybe_unused_trait_imports: FxHashSet<DefId>, - maybe_unused_extern_crates: Vec<(DefId, Span)>, + pub extern_prelude: FxHashSet<ast::Name>, // Internal cache for metadata decoding. No need to track deps on this. pub rcache: Lock<FxHashMap<ty::CReaderCacheKey, Ty<'tcx>>>, @@ -1223,6 +1223,7 @@ impl<'a, 'gcx, 'tcx> TyCtxt<'a, 'gcx, 'tcx> { .into_iter() .map(|(id, sp)| (hir.local_def_id(id), sp)) .collect(), + extern_prelude: resolutions.extern_prelude, hir, def_path_hash_to_def_id, queries: query::Queries::new( diff --git a/src/librustc/ty/item_path.rs b/src/librustc/ty/item_path.rs index ab081324036..ca4cafd0a73 100644 --- a/src/librustc/ty/item_path.rs +++ b/src/librustc/ty/item_path.rs @@ -289,7 +289,7 @@ impl<'a, 'gcx, 'tcx> TyCtxt<'a, 'gcx, 'tcx> { // printing the `CrateRoot` so we don't prepend a `crate::` to paths. let mut is_prelude_crate = false; if let DefPathData::CrateRoot = self.def_key(parent_did).disambiguated_data.data { - if self.sess.extern_prelude.contains(&data.as_interned_str().as_symbol()) { + if self.extern_prelude.contains(&data.as_interned_str().as_symbol()) { is_prelude_crate = true; } } diff --git a/src/librustc/ty/mod.rs b/src/librustc/ty/mod.rs index 2e8734a6aa8..ee6d2dfb065 100644 --- a/src/librustc/ty/mod.rs +++ b/src/librustc/ty/mod.rs @@ -36,7 +36,7 @@ use ty::subst::{Subst, Substs}; use ty::util::{IntTypeExt, Discr}; use ty::walk::TypeWalker; use util::captures::Captures; -use util::nodemap::{NodeSet, DefIdMap, FxHashMap}; +use util::nodemap::{NodeSet, DefIdMap, FxHashMap, FxHashSet}; use arena::SyncDroplessArena; use session::DataTypeKind; @@ -140,6 +140,7 @@ pub struct Resolutions { pub maybe_unused_trait_imports: NodeSet, pub maybe_unused_extern_crates: Vec<(NodeId, Span)>, pub export_map: ExportMap, + pub extern_prelude: FxHashSet<Name>, } #[derive(Clone, Copy, PartialEq, Eq, Debug)] |
