Skip to content

Commit 5229488

Browse files
committed
Copy extern prelude from resolver to global context
1 parent 83bb430 commit 5229488

File tree

7 files changed

+9
-5
lines changed

7 files changed

+9
-5
lines changed

Diff for: src/librustc/ty/context.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -936,8 +936,8 @@ pub struct GlobalCtxt<'tcx> {
936936
freevars: FxHashMap<DefId, Lrc<Vec<hir::Freevar>>>,
937937

938938
maybe_unused_trait_imports: FxHashSet<DefId>,
939-
940939
maybe_unused_extern_crates: Vec<(DefId, Span)>,
940+
pub extern_prelude: FxHashSet<ast::Name>,
941941

942942
// Internal cache for metadata decoding. No need to track deps on this.
943943
pub rcache: Lock<FxHashMap<ty::CReaderCacheKey, Ty<'tcx>>>,
@@ -1223,6 +1223,7 @@ impl<'a, 'gcx, 'tcx> TyCtxt<'a, 'gcx, 'tcx> {
12231223
.into_iter()
12241224
.map(|(id, sp)| (hir.local_def_id(id), sp))
12251225
.collect(),
1226+
extern_prelude: resolutions.extern_prelude,
12261227
hir,
12271228
def_path_hash_to_def_id,
12281229
queries: query::Queries::new(

Diff for: src/librustc/ty/item_path.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -289,7 +289,7 @@ impl<'a, 'gcx, 'tcx> TyCtxt<'a, 'gcx, 'tcx> {
289289
// printing the `CrateRoot` so we don't prepend a `crate::` to paths.
290290
let mut is_prelude_crate = false;
291291
if let DefPathData::CrateRoot = self.def_key(parent_did).disambiguated_data.data {
292-
if self.sess.extern_prelude.contains(&data.as_interned_str().as_symbol()) {
292+
if self.extern_prelude.contains(&data.as_interned_str().as_symbol()) {
293293
is_prelude_crate = true;
294294
}
295295
}

Diff for: src/librustc/ty/mod.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ use ty::subst::{Subst, Substs};
3636
use ty::util::{IntTypeExt, Discr};
3737
use ty::walk::TypeWalker;
3838
use util::captures::Captures;
39-
use util::nodemap::{NodeSet, DefIdMap, FxHashMap};
39+
use util::nodemap::{NodeSet, DefIdMap, FxHashMap, FxHashSet};
4040
use arena::SyncDroplessArena;
4141
use session::DataTypeKind;
4242

@@ -140,6 +140,7 @@ pub struct Resolutions {
140140
pub maybe_unused_trait_imports: NodeSet,
141141
pub maybe_unused_extern_crates: Vec<(NodeId, Span)>,
142142
pub export_map: ExportMap,
143+
pub extern_prelude: FxHashSet<Name>,
143144
}
144145

145146
#[derive(Clone, Copy, PartialEq, Eq, Debug)]

Diff for: src/librustc_driver/driver.rs

+1
Original file line numberDiff line numberDiff line change
@@ -790,6 +790,7 @@ where
790790
trait_map: resolver.trait_map,
791791
maybe_unused_trait_imports: resolver.maybe_unused_trait_imports,
792792
maybe_unused_extern_crates: resolver.maybe_unused_extern_crates,
793+
extern_prelude: resolver.extern_prelude,
793794
},
794795

795796
analysis: ty::CrateAnalysis {

Diff for: src/librustc_resolve/lib.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1360,7 +1360,7 @@ pub struct Resolver<'a, 'b: 'a> {
13601360
graph_root: Module<'a>,
13611361

13621362
prelude: Option<Module<'a>>,
1363-
extern_prelude: FxHashSet<Name>,
1363+
pub extern_prelude: FxHashSet<Name>,
13641364

13651365
/// n.b. This is used only for better diagnostics, not name resolution itself.
13661366
has_self: FxHashSet<DefId>,

Diff for: src/librustc_typeck/check_unused.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -164,7 +164,7 @@ fn unused_crates_lint<'tcx>(tcx: TyCtxt<'_, 'tcx, 'tcx>) {
164164
// If the extern crate isn't in the extern prelude,
165165
// there is no way it can be written as an `use`.
166166
let orig_name = extern_crate.orig_name.unwrap_or(item.name);
167-
if !tcx.sess.extern_prelude.contains(&orig_name) {
167+
if !tcx.extern_prelude.contains(&orig_name) {
168168
continue;
169169
}
170170

Diff for: src/librustdoc/core.rs

+1
Original file line numberDiff line numberDiff line change
@@ -474,6 +474,7 @@ pub fn run_core(search_paths: SearchPaths,
474474
trait_map: resolver.trait_map.clone(),
475475
maybe_unused_trait_imports: resolver.maybe_unused_trait_imports.clone(),
476476
maybe_unused_extern_crates: resolver.maybe_unused_extern_crates.clone(),
477+
extern_prelude: resolver.extern_prelude.clone(),
477478
};
478479
let analysis = ty::CrateAnalysis {
479480
access_levels: Lrc::new(AccessLevels::default()),

0 commit comments

Comments
 (0)