]> git.lizzy.rs Git - rust.git/blobdiff - src/librustc_passes/reachable.rs
Rollup merge of #68265 - JohnTitor:fix-issue-number, r=Dylan-DPC
[rust.git] / src / librustc_passes / reachable.rs
index c6598f2d328bf47f5b9819bf17afa4d3af8008d3..5ce677f52cea670a016596344af2f270a0aad1ce 100644 (file)
@@ -5,23 +5,22 @@
 // makes all other generics or inline functions that it references
 // reachable as well.
 
-use crate::hir::def::{DefKind, Res};
-use crate::hir::def_id::{CrateNum, DefId};
-use crate::hir::Node;
-use crate::hir::{CodegenFnAttrFlags, CodegenFnAttrs};
-use crate::middle::privacy;
-use crate::session::config;
-use crate::ty::query::Providers;
-use crate::ty::{self, TyCtxt};
-use crate::util::nodemap::{FxHashSet, HirIdSet};
+use rustc::hir::map::Map;
+use rustc::middle::codegen_fn_attrs::{CodegenFnAttrFlags, CodegenFnAttrs};
+use rustc::middle::privacy;
+use rustc::session::config;
+use rustc::ty::query::Providers;
+use rustc::ty::{self, TyCtxt};
+use rustc_data_structures::fx::FxHashSet;
 use rustc_data_structures::sync::Lrc;
-
-use crate::hir;
-use crate::hir::def_id::LOCAL_CRATE;
-use crate::hir::intravisit;
-use crate::hir::intravisit::{NestedVisitorMap, Visitor};
-use crate::hir::itemlikevisit::ItemLikeVisitor;
-use rustc_macros::HashStable;
+use rustc_hir as hir;
+use rustc_hir::def::{DefKind, Res};
+use rustc_hir::def_id::LOCAL_CRATE;
+use rustc_hir::def_id::{CrateNum, DefId};
+use rustc_hir::intravisit;
+use rustc_hir::intravisit::{NestedVisitorMap, Visitor};
+use rustc_hir::itemlikevisit::ItemLikeVisitor;
+use rustc_hir::{HirIdSet, Node};
 use rustc_target::spec::abi::Abi;
 
 // Returns true if the given item must be inlined because it may be
@@ -84,7 +83,9 @@ struct ReachableContext<'a, 'tcx> {
 }
 
 impl<'a, 'tcx> Visitor<'tcx> for ReachableContext<'a, 'tcx> {
-    fn nested_visit_map<'this>(&'this mut self) -> NestedVisitorMap<'this, 'tcx> {
+    type Map = Map<'tcx>;
+
+    fn nested_visit_map(&mut self) -> NestedVisitorMap<'_, Self::Map> {
         NestedVisitorMap::None
     }
 
@@ -378,12 +379,7 @@ fn visit_impl_item(&mut self, _impl_item: &hir::ImplItem<'_>) {
     }
 }
 
-// We introduce a new-type here, so we can have a specialized HashStable
-// implementation for it.
-#[derive(Clone, HashStable)]
-pub struct ReachableSet(pub Lrc<HirIdSet>);
-
-fn reachable_set(tcx: TyCtxt<'_>, crate_num: CrateNum) -> ReachableSet {
+fn reachable_set(tcx: TyCtxt<'_>, crate_num: CrateNum) -> Lrc<HirIdSet> {
     debug_assert!(crate_num == LOCAL_CRATE);
 
     let access_levels = &tcx.privacy_access_levels(LOCAL_CRATE);
@@ -429,7 +425,7 @@ fn reachable_set(tcx: TyCtxt<'_>, crate_num: CrateNum) -> ReachableSet {
     debug!("Inline reachability shows: {:?}", reachable_context.reachable_symbols);
 
     // Return the set of reachable symbols.
-    ReachableSet(Lrc::new(reachable_context.reachable_symbols))
+    Lrc::new(reachable_context.reachable_symbols)
 }
 
 pub fn provide(providers: &mut Providers<'_>) {