Skip to content

Commit 8b2e8dc

Browse files
petrochenkovpietroalbini
authored andcommitted
Copy extern prelude from resolver to global context
1 parent da60a9c commit 8b2e8dc

File tree

6 files changed

+8
-4
lines changed

6 files changed

+8
-4
lines changed

src/librustc/ty/context.rs

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

929929
maybe_unused_trait_imports: FxHashSet<DefId>,
930-
931930
maybe_unused_extern_crates: Vec<(DefId, Span)>,
931+
pub extern_prelude: FxHashSet<ast::Name>,
932932

933933
// Internal cache for metadata decoding. No need to track deps on this.
934934
pub rcache: Lock<FxHashMap<ty::CReaderCacheKey, Ty<'tcx>>>,
@@ -1245,6 +1245,7 @@ impl<'a, 'gcx, 'tcx> TyCtxt<'a, 'gcx, 'tcx> {
12451245
.into_iter()
12461246
.map(|(id, sp)| (hir.local_def_id(id), sp))
12471247
.collect(),
1248+
extern_prelude: resolutions.extern_prelude,
12481249
hir,
12491250
def_path_hash_to_def_id,
12501251
queries: query::Queries::new(

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

@@ -139,6 +139,7 @@ pub struct Resolutions {
139139
pub maybe_unused_trait_imports: NodeSet,
140140
pub maybe_unused_extern_crates: Vec<(NodeId, Span)>,
141141
pub export_map: ExportMap,
142+
pub extern_prelude: FxHashSet<Name>,
142143
}
143144

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

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 {

src/librustc_resolve/lib.rs

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

13631363
prelude: Option<Module<'a>>,
1364-
extern_prelude: FxHashSet<Name>,
1364+
pub extern_prelude: FxHashSet<Name>,
13651365

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

src/librustc_typeck/check_unused.rs

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

src/librustdoc/core.rs

+1
Original file line numberDiff line numberDiff line change
@@ -457,6 +457,7 @@ pub fn run_core(search_paths: SearchPaths,
457457
trait_map: resolver.trait_map.clone(),
458458
maybe_unused_trait_imports: resolver.maybe_unused_trait_imports.clone(),
459459
maybe_unused_extern_crates: resolver.maybe_unused_extern_crates.clone(),
460+
extern_prelude: resolver.extern_prelude.clone(),
460461
};
461462
let analysis = ty::CrateAnalysis {
462463
access_levels: Lrc::new(AccessLevels::default()),

0 commit comments

Comments
 (0)