Skip to content

Commit 72a1ac4

Browse files
committed
resolve: Import ty::Visibility everywhere
1 parent f78426b commit 72a1ac4

File tree

4 files changed

+40
-43
lines changed

4 files changed

+40
-43
lines changed

compiler/rustc_resolve/src/build_reduced_graph.rs

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,9 @@ use rustc_expand::expand::AstFragment;
1919
use rustc_hir::def::{self, *};
2020
use rustc_hir::def_id::{CRATE_DEF_ID, DefId, LocalDefId};
2121
use rustc_metadata::creader::LoadedMacro;
22+
use rustc_middle::bug;
2223
use rustc_middle::metadata::ModChild;
23-
use rustc_middle::ty::Feed;
24-
use rustc_middle::{bug, ty};
24+
use rustc_middle::ty::{Feed, Visibility};
2525
use rustc_span::hygiene::{ExpnId, LocalExpnId, MacroKind};
2626
use rustc_span::{Ident, Span, Symbol, kw, sym};
2727
use tracing::debug;
@@ -60,7 +60,7 @@ impl<'ra, 'tcx> Resolver<'ra, 'tcx> {
6060
ident: Ident,
6161
ns: Namespace,
6262
res: Res,
63-
vis: ty::Visibility<impl Into<DefId>>,
63+
vis: Visibility<impl Into<DefId>>,
6464
span: Span,
6565
expn_id: LocalExpnId,
6666
) {
@@ -278,21 +278,21 @@ impl<'a, 'ra, 'tcx> BuildReducedGraphVisitor<'a, 'ra, 'tcx> {
278278
Res::Def(self.r.tcx.def_kind(def_id), def_id)
279279
}
280280

281-
fn resolve_visibility(&mut self, vis: &ast::Visibility) -> ty::Visibility {
281+
fn resolve_visibility(&mut self, vis: &ast::Visibility) -> Visibility {
282282
self.try_resolve_visibility(vis, true).unwrap_or_else(|err| {
283283
self.r.report_vis_error(err);
284-
ty::Visibility::Public
284+
Visibility::Public
285285
})
286286
}
287287

288288
fn try_resolve_visibility<'ast>(
289289
&mut self,
290290
vis: &'ast ast::Visibility,
291291
finalize: bool,
292-
) -> Result<ty::Visibility, VisResolutionError<'ast>> {
292+
) -> Result<Visibility, VisResolutionError<'ast>> {
293293
let parent_scope = &self.parent_scope;
294294
match vis.kind {
295-
ast::VisibilityKind::Public => Ok(ty::Visibility::Public),
295+
ast::VisibilityKind::Public => Ok(Visibility::Public),
296296
ast::VisibilityKind::Inherited => {
297297
Ok(match self.parent_scope.module.kind {
298298
// Any inherited visibility resolved directly inside an enum or trait
@@ -302,7 +302,7 @@ impl<'a, 'ra, 'tcx> BuildReducedGraphVisitor<'a, 'ra, 'tcx> {
302302
self.r.tcx.visibility(def_id).expect_local()
303303
}
304304
// Otherwise, the visibility is restricted to the nearest parent `mod` item.
305-
_ => ty::Visibility::Restricted(
305+
_ => Visibility::Restricted(
306306
self.parent_scope.module.nearest_parent_mod().expect_local(),
307307
),
308308
})
@@ -350,9 +350,9 @@ impl<'a, 'ra, 'tcx> BuildReducedGraphVisitor<'a, 'ra, 'tcx> {
350350
}
351351
if module.is_normal() {
352352
match res {
353-
Res::Err => Ok(ty::Visibility::Public),
353+
Res::Err => Ok(Visibility::Public),
354354
_ => {
355-
let vis = ty::Visibility::Restricted(res.def_id());
355+
let vis = Visibility::Restricted(res.def_id());
356356
if self.r.is_accessible_from(vis, parent_scope.module) {
357357
Ok(vis.expect_local())
358358
} else {
@@ -417,7 +417,7 @@ impl<'a, 'ra, 'tcx> BuildReducedGraphVisitor<'a, 'ra, 'tcx> {
417417
item: &ast::Item,
418418
root_span: Span,
419419
root_id: NodeId,
420-
vis: ty::Visibility,
420+
vis: Visibility,
421421
) {
422422
let current_module = self.parent_scope.module;
423423
let import = self.r.arenas.alloc_import(ImportData {
@@ -465,7 +465,7 @@ impl<'a, 'ra, 'tcx> BuildReducedGraphVisitor<'a, 'ra, 'tcx> {
465465
list_stem: bool,
466466
// The whole `use` item
467467
item: &Item,
468-
vis: ty::Visibility,
468+
vis: Visibility,
469469
root_span: Span,
470470
) {
471471
debug!(
@@ -683,7 +683,7 @@ impl<'a, 'ra, 'tcx> BuildReducedGraphVisitor<'a, 'ra, 'tcx> {
683683
true,
684684
// The whole `use` item
685685
item,
686-
ty::Visibility::Restricted(
686+
Visibility::Restricted(
687687
self.parent_scope.module.nearest_parent_mod().expect_local(),
688688
),
689689
root_span,
@@ -699,7 +699,7 @@ impl<'a, 'ra, 'tcx> BuildReducedGraphVisitor<'a, 'ra, 'tcx> {
699699
ident: Ident,
700700
feed: Feed<'tcx, LocalDefId>,
701701
adt_res: Res,
702-
adt_vis: ty::Visibility,
702+
adt_vis: Visibility,
703703
adt_span: Span,
704704
) {
705705
let parent_scope = &self.parent_scope;
@@ -824,7 +824,7 @@ impl<'a, 'ra, 'tcx> BuildReducedGraphVisitor<'a, 'ra, 'tcx> {
824824
let mut ctor_vis = if vis.is_public()
825825
&& ast::attr::contains_name(&item.attrs, sym::non_exhaustive)
826826
{
827-
ty::Visibility::Restricted(CRATE_DEF_ID)
827+
Visibility::Restricted(CRATE_DEF_ID)
828828
} else {
829829
vis
830830
};
@@ -837,7 +837,7 @@ impl<'a, 'ra, 'tcx> BuildReducedGraphVisitor<'a, 'ra, 'tcx> {
837837
// constructor visibility should still be determined correctly.
838838
let field_vis = self
839839
.try_resolve_visibility(&field.vis, false)
840-
.unwrap_or(ty::Visibility::Public);
840+
.unwrap_or(Visibility::Public);
841841
if ctor_vis.is_at_least(field_vis, self.r.tcx) {
842842
ctor_vis = field_vis;
843843
}
@@ -886,7 +886,7 @@ impl<'a, 'ra, 'tcx> BuildReducedGraphVisitor<'a, 'ra, 'tcx> {
886886
item: &Item,
887887
ident: Ident,
888888
local_def_id: LocalDefId,
889-
vis: ty::Visibility,
889+
vis: Visibility,
890890
parent: Module<'ra>,
891891
) {
892892
let sp = item.span;
@@ -1070,7 +1070,7 @@ impl<'a, 'ra, 'tcx> BuildReducedGraphVisitor<'a, 'ra, 'tcx> {
10701070
root_span: span,
10711071
span,
10721072
module_path: Vec::new(),
1073-
vis: ty::Visibility::Restricted(CRATE_DEF_ID),
1073+
vis: Visibility::Restricted(CRATE_DEF_ID),
10741074
})
10751075
};
10761076

@@ -1225,9 +1225,9 @@ impl<'a, 'ra, 'tcx> BuildReducedGraphVisitor<'a, 'ra, 'tcx> {
12251225
self.r.macro_names.insert(ident);
12261226
let is_macro_export = ast::attr::contains_name(&item.attrs, sym::macro_export);
12271227
let vis = if is_macro_export {
1228-
ty::Visibility::Public
1228+
Visibility::Public
12291229
} else {
1230-
ty::Visibility::Restricted(CRATE_DEF_ID)
1230+
Visibility::Restricted(CRATE_DEF_ID)
12311231
};
12321232
let binding = self.r.arenas.new_res_binding(res, vis.to_def_id(), span, expansion);
12331233
self.r.set_binding_parent_module(binding, parent_scope.module);
@@ -1269,7 +1269,7 @@ impl<'a, 'ra, 'tcx> BuildReducedGraphVisitor<'a, 'ra, 'tcx> {
12691269
// Visibilities must not be resolved non-speculatively twice
12701270
// and we already resolved this one as a `fn` item visibility.
12711271
ItemKind::Fn(..) => {
1272-
self.try_resolve_visibility(&item.vis, false).unwrap_or(ty::Visibility::Public)
1272+
self.try_resolve_visibility(&item.vis, false).unwrap_or(Visibility::Public)
12731273
}
12741274
_ => self.resolve_visibility(&item.vis),
12751275
};
@@ -1503,7 +1503,7 @@ impl<'a, 'ra, 'tcx> Visitor<'a> for BuildReducedGraphVisitor<'a, 'ra, 'tcx> {
15031503
// If the variant is marked as non_exhaustive then lower the visibility to within the crate.
15041504
let ctor_vis =
15051505
if vis.is_public() && ast::attr::contains_name(&variant.attrs, sym::non_exhaustive) {
1506-
ty::Visibility::Restricted(CRATE_DEF_ID)
1506+
Visibility::Restricted(CRATE_DEF_ID)
15071507
} else {
15081508
vis
15091509
};

compiler/rustc_resolve/src/imports.rs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@ use rustc_errors::{Applicability, MultiSpan, pluralize, struct_span_code_err};
1111
use rustc_hir::def::{self, DefKind, PartialRes};
1212
use rustc_hir::def_id::DefId;
1313
use rustc_middle::metadata::{ModChild, Reexport};
14-
use rustc_middle::{span_bug, ty};
14+
use rustc_middle::span_bug;
15+
use rustc_middle::ty::Visibility;
1516
use rustc_session::lint::BuiltinLintDiag;
1617
use rustc_session::lint::builtin::{
1718
AMBIGUOUS_GLOB_REEXPORTS, HIDDEN_GLOB_REEXPORTS, PUB_USE_OF_PRIVATE_EXTERN_CRATE,
@@ -74,7 +75,7 @@ pub(crate) enum ImportKind<'ra> {
7475
is_prelude: bool,
7576
// The visibility of the greatest re-export.
7677
// n.b. `max_vis` is only used in `finalize_import` to check for re-export errors.
77-
max_vis: Cell<Option<ty::Visibility>>,
78+
max_vis: Cell<Option<Visibility>>,
7879
id: NodeId,
7980
},
8081
ExternCrate {
@@ -183,7 +184,7 @@ pub(crate) struct ImportData<'ra> {
183184
/// |`use ::foo` | `ModuleOrUniformRoot::CrateRootAndExternPrelude` | a special case in 2015 edition |
184185
/// |`use foo` | `ModuleOrUniformRoot::CurrentScope` | - |
185186
pub imported_module: Cell<Option<ModuleOrUniformRoot<'ra>>>,
186-
pub vis: ty::Visibility,
187+
pub vis: Visibility,
187188
}
188189

189190
/// All imports are unique and allocated on a same arena,
@@ -1272,7 +1273,7 @@ impl<'ra, 'tcx> Resolver<'ra, 'tcx> {
12721273

12731274
if !binding.vis.is_at_least(import.vis, this.tcx) {
12741275
reexport_error = Some((ns, binding));
1275-
if let ty::Visibility::Restricted(binding_def_id) = binding.vis
1276+
if let Visibility::Restricted(binding_def_id) = binding.vis
12761277
&& binding_def_id.is_top_level_module()
12771278
{
12781279
crate_private_reexport = true;

compiler/rustc_resolve/src/late.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ use rustc_hir::def::{self, CtorKind, DefKind, LifetimeRes, NonMacroAttrKind, Par
2828
use rustc_hir::def_id::{CRATE_DEF_ID, DefId, LOCAL_CRATE, LocalDefId};
2929
use rustc_hir::{MissingLifetimeKind, PrimTy, TraitCandidate};
3030
use rustc_middle::middle::resolve_bound_vars::Set1;
31-
use rustc_middle::ty::DelegationFnSig;
31+
use rustc_middle::ty::{DelegationFnSig, Visibility};
3232
use rustc_middle::{bug, span_bug};
3333
use rustc_session::config::{CrateType, ResolveDocLinks};
3434
use rustc_session::lint::{self, BuiltinLintDiag};
@@ -638,8 +638,8 @@ impl PathSource<'_, '_, '_> {
638638
enum MaybeExported<'a> {
639639
Ok(NodeId),
640640
Impl(Option<DefId>),
641-
ImplItem(Result<DefId, &'a Visibility>),
642-
NestedUse(&'a Visibility),
641+
ImplItem(Result<DefId, &'a ast::Visibility>),
642+
NestedUse(&'a ast::Visibility),
643643
}
644644

645645
impl MaybeExported<'_> {
@@ -3465,7 +3465,7 @@ impl<'a, 'ast, 'ra, 'tcx> LateResolutionVisitor<'a, 'ast, 'ra, 'tcx> {
34653465
span,
34663466
"error should be emitted when an unexpected trait item is used",
34673467
);
3468-
rustc_middle::ty::Visibility::Public
3468+
Visibility::Public
34693469
};
34703470
this.r.feed_visibility(this.r.feed(id), vis);
34713471
};

compiler/rustc_resolve/src/lib.rs

Lines changed: 9 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ use rustc_middle::query::Providers;
6464
use rustc_middle::span_bug;
6565
use rustc_middle::ty::{
6666
self, DelegationFnSig, Feed, MainDefinition, RegisteredTools, ResolverGlobalCtxt,
67-
ResolverOutputs, TyCtxt, TyCtxtFeed,
67+
ResolverOutputs, TyCtxt, TyCtxtFeed, Visibility,
6868
};
6969
use rustc_query_system::ich::StableHashingContext;
7070
use rustc_session::lint::builtin::PRIVATE_MACRO_USE;
@@ -747,7 +747,7 @@ struct NameBindingData<'ra> {
747747
warn_ambiguity: bool,
748748
expansion: LocalExpnId,
749749
span: Span,
750-
vis: ty::Visibility<DefId>,
750+
vis: Visibility<DefId>,
751751
}
752752

753753
/// All name bindings are unique and allocated on a same arena,
@@ -1075,7 +1075,7 @@ pub struct Resolver<'ra, 'tcx> {
10751075
/// Maps glob imports to the names of items actually imported.
10761076
glob_map: FxIndexMap<LocalDefId, FxIndexSet<Symbol>>,
10771077
glob_error: Option<ErrorGuaranteed>,
1078-
visibilities_for_hashing: Vec<(LocalDefId, ty::Visibility)>,
1078+
visibilities_for_hashing: Vec<(LocalDefId, Visibility)>,
10791079
used_imports: FxHashSet<NodeId>,
10801080
maybe_unused_trait_imports: FxIndexSet<LocalDefId>,
10811081

@@ -1146,7 +1146,7 @@ pub struct Resolver<'ra, 'tcx> {
11461146
/// Table for mapping struct IDs into struct constructor IDs,
11471147
/// it's not used during normal resolution, only for better error reporting.
11481148
/// Also includes of list of each fields visibility
1149-
struct_constructors: LocalDefIdMap<(Res, ty::Visibility<DefId>, Vec<ty::Visibility<DefId>>)>,
1149+
struct_constructors: LocalDefIdMap<(Res, Visibility<DefId>, Vec<Visibility<DefId>>)>,
11501150

11511151
lint_buffer: LintBuffer,
11521152

@@ -1222,7 +1222,7 @@ impl<'ra> ResolverArenas<'ra> {
12221222
fn new_res_binding(
12231223
&'ra self,
12241224
res: Res,
1225-
vis: ty::Visibility<DefId>,
1225+
vis: Visibility<DefId>,
12261226
span: Span,
12271227
expansion: LocalExpnId,
12281228
) -> NameBinding<'ra> {
@@ -1242,7 +1242,7 @@ impl<'ra> ResolverArenas<'ra> {
12421242
span: Span,
12431243
expansion: LocalExpnId,
12441244
) -> NameBinding<'ra> {
1245-
self.new_res_binding(res, ty::Visibility::Public, span, expansion)
1245+
self.new_res_binding(res, Visibility::Public, span, expansion)
12461246
}
12471247

12481248
fn new_module(
@@ -1587,7 +1587,7 @@ impl<'ra, 'tcx> Resolver<'ra, 'tcx> {
15871587

15881588
let root_parent_scope = ParentScope::module(graph_root, &resolver);
15891589
resolver.invocation_parent_scopes.insert(LocalExpnId::ROOT, root_parent_scope);
1590-
resolver.feed_visibility(crate_feed, ty::Visibility::Public);
1590+
resolver.feed_visibility(crate_feed, Visibility::Public);
15911591

15921592
resolver
15931593
}
@@ -1635,7 +1635,7 @@ impl<'ra, 'tcx> Resolver<'ra, 'tcx> {
16351635
Default::default()
16361636
}
16371637

1638-
fn feed_visibility(&mut self, feed: Feed<'tcx, LocalDefId>, vis: ty::Visibility) {
1638+
fn feed_visibility(&mut self, feed: Feed<'tcx, LocalDefId>, vis: Visibility) {
16391639
let feed = feed.upgrade(self.tcx);
16401640
feed.visibility(vis.to_def_id());
16411641
self.visibilities_for_hashing.push((feed.def_id(), vis));
@@ -2087,11 +2087,7 @@ impl<'ra, 'tcx> Resolver<'ra, 'tcx> {
20872087
self.pat_span_map.insert(node, span);
20882088
}
20892089

2090-
fn is_accessible_from(
2091-
&self,
2092-
vis: ty::Visibility<impl Into<DefId>>,
2093-
module: Module<'ra>,
2094-
) -> bool {
2090+
fn is_accessible_from(&self, vis: Visibility<impl Into<DefId>>, module: Module<'ra>) -> bool {
20952091
vis.is_accessible_from(module.nearest_parent_mod(), self.tcx)
20962092
}
20972093

0 commit comments

Comments
 (0)