rustc_middle: Remove Option
from module_reexports
query
This commit is contained in:
parent
612ddd2196
commit
9da9373bf0
@ -1327,8 +1327,8 @@ fn encode_info_for_mod(&mut self, local_def_id: LocalDefId, md: &hir::Mod<'_>) {
|
||||
}
|
||||
}));
|
||||
|
||||
if let Some(reexports) = tcx.module_reexports(local_def_id) {
|
||||
assert!(!reexports.is_empty());
|
||||
let reexports = tcx.module_reexports(local_def_id);
|
||||
if !reexports.is_empty() {
|
||||
record_array!(self.tables.module_reexports[def_id] <- reexports);
|
||||
}
|
||||
}
|
||||
|
@ -1510,7 +1510,7 @@
|
||||
desc { "getting traits in scope at a block" }
|
||||
}
|
||||
|
||||
query module_reexports(def_id: LocalDefId) -> Option<&'tcx [ModChild]> {
|
||||
query module_reexports(def_id: LocalDefId) -> &'tcx [ModChild] {
|
||||
desc { |tcx| "looking up reexports of module `{}`", tcx.def_path_str(def_id.to_def_id()) }
|
||||
}
|
||||
|
||||
|
@ -2502,7 +2502,7 @@ pub struct DeducedParamAttrs {
|
||||
|
||||
pub fn provide(providers: &mut ty::query::Providers) {
|
||||
providers.module_reexports =
|
||||
|tcx, id| tcx.resolutions(()).reexport_map.get(&id).map(|v| &v[..]);
|
||||
|tcx, id| tcx.resolutions(()).reexport_map.get(&id).map_or(&[], |v| &v[..]);
|
||||
providers.maybe_unused_trait_imports =
|
||||
|tcx, ()| &tcx.resolutions(()).maybe_unused_trait_imports;
|
||||
providers.names_imported_by_glob_use = |tcx, id| {
|
||||
|
@ -515,16 +515,12 @@ fn update_macro_reachable_mod(&mut self, module_def_id: LocalDefId, defining_mod
|
||||
let vis = self.tcx.local_visibility(item_id.owner_id.def_id);
|
||||
self.update_macro_reachable_def(item_id.owner_id.def_id, def_kind, vis, defining_mod);
|
||||
}
|
||||
if let Some(exports) = self.tcx.module_reexports(module_def_id) {
|
||||
for export in exports {
|
||||
if export.vis.is_accessible_from(defining_mod, self.tcx) {
|
||||
if let Res::Def(def_kind, def_id) = export.res {
|
||||
if let Some(def_id) = def_id.as_local() {
|
||||
let vis = self.tcx.local_visibility(def_id);
|
||||
self.update_macro_reachable_def(def_id, def_kind, vis, defining_mod);
|
||||
}
|
||||
}
|
||||
}
|
||||
for export in self.tcx.module_reexports(module_def_id) {
|
||||
if export.vis.is_accessible_from(defining_mod, self.tcx)
|
||||
&& let Res::Def(def_kind, def_id) = export.res
|
||||
&& let Some(def_id) = def_id.as_local() {
|
||||
let vis = self.tcx.local_visibility(def_id);
|
||||
self.update_macro_reachable_def(def_id, def_kind, vis, defining_mod);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -153,7 +153,6 @@ pub(crate) fn try_inline_glob(
|
||||
let reexports = cx
|
||||
.tcx
|
||||
.module_reexports(current_mod)
|
||||
.unwrap_or_default()
|
||||
.iter()
|
||||
.filter_map(|child| child.res.opt_def_id())
|
||||
.collect();
|
||||
|
@ -2062,7 +2062,7 @@ pub(crate) fn reexport_chain<'tcx>(
|
||||
import_def_id: LocalDefId,
|
||||
target_def_id: LocalDefId,
|
||||
) -> &'tcx [Reexport] {
|
||||
for child in tcx.module_reexports(tcx.local_parent(import_def_id)).unwrap_or_default() {
|
||||
for child in tcx.module_reexports(tcx.local_parent(import_def_id)) {
|
||||
if child.res.opt_def_id() == Some(target_def_id.to_def_id())
|
||||
&& child.reexport_chain[0].id() == Some(import_def_id.to_def_id())
|
||||
{
|
||||
|
@ -133,7 +133,7 @@ pub(crate) fn visit(mut self) -> Module<'tcx> {
|
||||
// is declared but also a reexport of itself producing two exports of the same
|
||||
// macro in the same module.
|
||||
let mut inserted = FxHashSet::default();
|
||||
for export in self.cx.tcx.module_reexports(CRATE_DEF_ID).unwrap_or(&[]) {
|
||||
for export in self.cx.tcx.module_reexports(CRATE_DEF_ID) {
|
||||
if let Res::Def(DefKind::Macro(_), def_id) = export.res &&
|
||||
let Some(local_def_id) = def_id.as_local() &&
|
||||
self.cx.tcx.has_attr(def_id, sym::macro_export) &&
|
||||
|
Loading…
Reference in New Issue
Block a user