Skip to content

Commit dbf9844

Browse files
petrochenkovLorrensP-2158466
authored andcommitted
resolve: Import ty::Visibility everywhere
1 parent 5d3fe89 commit dbf9844

File tree

4 files changed

+39
-42
lines changed

4 files changed

+39
-42
lines changed

compiler/rustc_resolve/src/build_reduced_graph.rs

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,9 @@ use rustc_hir::def::{self, *};
2020
use rustc_hir::def_id::{CRATE_DEF_ID, DefId, LocalDefId};
2121
use rustc_index::bit_set::DenseBitSet;
2222
use rustc_metadata::creader::LoadedMacro;
23+
use rustc_middle::bug;
2324
use rustc_middle::metadata::ModChild;
24-
use rustc_middle::ty::Feed;
25-
use rustc_middle::{bug, ty};
25+
use rustc_middle::ty::{Feed, Visibility};
2626
use rustc_span::hygiene::{ExpnId, LocalExpnId, MacroKind};
2727
use rustc_span::{Ident, Span, Symbol, kw, sym};
2828
use tracing::debug;
@@ -61,7 +61,7 @@ impl<'ra, 'tcx> Resolver<'ra, 'tcx> {
6161
ident: Ident,
6262
ns: Namespace,
6363
res: Res,
64-
vis: ty::Visibility<impl Into<DefId>>,
64+
vis: Visibility<impl Into<DefId>>,
6565
span: Span,
6666
expn_id: LocalExpnId,
6767
) {
@@ -281,21 +281,21 @@ impl<'a, 'ra, 'tcx> BuildReducedGraphVisitor<'a, 'ra, 'tcx> {
281281
Res::Def(self.r.tcx.def_kind(def_id), def_id)
282282
}
283283

284-
fn resolve_visibility(&mut self, vis: &ast::Visibility) -> ty::Visibility {
284+
fn resolve_visibility(&mut self, vis: &ast::Visibility) -> Visibility {
285285
self.try_resolve_visibility(vis, true).unwrap_or_else(|err| {
286286
self.r.report_vis_error(err);
287-
ty::Visibility::Public
287+
Visibility::Public
288288
})
289289
}
290290

291291
fn try_resolve_visibility<'ast>(
292292
&mut self,
293293
vis: &'ast ast::Visibility,
294294
finalize: bool,
295-
) -> Result<ty::Visibility, VisResolutionError<'ast>> {
295+
) -> Result<Visibility, VisResolutionError<'ast>> {
296296
let parent_scope = &self.parent_scope;
297297
match vis.kind {
298-
ast::VisibilityKind::Public => Ok(ty::Visibility::Public),
298+
ast::VisibilityKind::Public => Ok(Visibility::Public),
299299
ast::VisibilityKind::Inherited => {
300300
Ok(match self.parent_scope.module.kind {
301301
// Any inherited visibility resolved directly inside an enum or trait
@@ -305,7 +305,7 @@ impl<'a, 'ra, 'tcx> BuildReducedGraphVisitor<'a, 'ra, 'tcx> {
305305
self.r.tcx.visibility(def_id).expect_local()
306306
}
307307
// Otherwise, the visibility is restricted to the nearest parent `mod` item.
308-
_ => ty::Visibility::Restricted(
308+
_ => Visibility::Restricted(
309309
self.parent_scope.module.nearest_parent_mod().expect_local(),
310310
),
311311
})
@@ -353,9 +353,9 @@ impl<'a, 'ra, 'tcx> BuildReducedGraphVisitor<'a, 'ra, 'tcx> {
353353
}
354354
if module.is_normal() {
355355
match res {
356-
Res::Err => Ok(ty::Visibility::Public),
356+
Res::Err => Ok(Visibility::Public),
357357
_ => {
358-
let vis = ty::Visibility::Restricted(res.def_id());
358+
let vis = Visibility::Restricted(res.def_id());
359359
if self.r.is_accessible_from(vis, parent_scope.module) {
360360
Ok(vis.expect_local())
361361
} else {
@@ -420,7 +420,7 @@ impl<'a, 'ra, 'tcx> BuildReducedGraphVisitor<'a, 'ra, 'tcx> {
420420
item: &ast::Item,
421421
root_span: Span,
422422
root_id: NodeId,
423-
vis: ty::Visibility,
423+
vis: Visibility,
424424
) {
425425
let current_module = self.parent_scope.module;
426426
let import = self.r.arenas.alloc_import(ImportData {
@@ -468,7 +468,7 @@ impl<'a, 'ra, 'tcx> BuildReducedGraphVisitor<'a, 'ra, 'tcx> {
468468
list_stem: bool,
469469
// The whole `use` item
470470
item: &Item,
471-
vis: ty::Visibility,
471+
vis: Visibility,
472472
root_span: Span,
473473
) {
474474
debug!(
@@ -686,7 +686,7 @@ impl<'a, 'ra, 'tcx> BuildReducedGraphVisitor<'a, 'ra, 'tcx> {
686686
true,
687687
// The whole `use` item
688688
item,
689-
ty::Visibility::Restricted(
689+
Visibility::Restricted(
690690
self.parent_scope.module.nearest_parent_mod().expect_local(),
691691
),
692692
root_span,
@@ -702,7 +702,7 @@ impl<'a, 'ra, 'tcx> BuildReducedGraphVisitor<'a, 'ra, 'tcx> {
702702
ident: Ident,
703703
feed: Feed<'tcx, LocalDefId>,
704704
adt_res: Res,
705-
adt_vis: ty::Visibility,
705+
adt_vis: Visibility,
706706
adt_span: Span,
707707
) {
708708
let parent_scope = &self.parent_scope;
@@ -827,7 +827,7 @@ impl<'a, 'ra, 'tcx> BuildReducedGraphVisitor<'a, 'ra, 'tcx> {
827827
let mut ctor_vis = if vis.is_public()
828828
&& ast::attr::contains_name(&item.attrs, sym::non_exhaustive)
829829
{
830-
ty::Visibility::Restricted(CRATE_DEF_ID)
830+
Visibility::Restricted(CRATE_DEF_ID)
831831
} else {
832832
vis
833833
};
@@ -840,7 +840,7 @@ impl<'a, 'ra, 'tcx> BuildReducedGraphVisitor<'a, 'ra, 'tcx> {
840840
// constructor visibility should still be determined correctly.
841841
let field_vis = self
842842
.try_resolve_visibility(&field.vis, false)
843-
.unwrap_or(ty::Visibility::Public);
843+
.unwrap_or(Visibility::Public);
844844
if ctor_vis.is_at_least(field_vis, self.r.tcx) {
845845
ctor_vis = field_vis;
846846
}
@@ -889,7 +889,7 @@ impl<'a, 'ra, 'tcx> BuildReducedGraphVisitor<'a, 'ra, 'tcx> {
889889
item: &Item,
890890
ident: Ident,
891891
local_def_id: LocalDefId,
892-
vis: ty::Visibility,
892+
vis: Visibility,
893893
parent: Module<'ra>,
894894
) {
895895
let sp = item.span;
@@ -1073,7 +1073,7 @@ impl<'a, 'ra, 'tcx> BuildReducedGraphVisitor<'a, 'ra, 'tcx> {
10731073
root_span: span,
10741074
span,
10751075
module_path: Vec::new(),
1076-
vis: ty::Visibility::Restricted(CRATE_DEF_ID),
1076+
vis: Visibility::Restricted(CRATE_DEF_ID),
10771077
})
10781078
};
10791079

@@ -1223,9 +1223,9 @@ impl<'a, 'ra, 'tcx> BuildReducedGraphVisitor<'a, 'ra, 'tcx> {
12231223
self.r.macro_names.insert(ident);
12241224
let is_macro_export = ast::attr::contains_name(&item.attrs, sym::macro_export);
12251225
let vis = if is_macro_export {
1226-
ty::Visibility::Public
1226+
Visibility::Public
12271227
} else {
1228-
ty::Visibility::Restricted(CRATE_DEF_ID)
1228+
Visibility::Restricted(CRATE_DEF_ID)
12291229
};
12301230
let binding = self.r.arenas.new_res_binding(res, vis.to_def_id(), span, expansion);
12311231
self.r.set_binding_parent_module(binding, parent_scope.module);
@@ -1267,7 +1267,7 @@ impl<'a, 'ra, 'tcx> BuildReducedGraphVisitor<'a, 'ra, 'tcx> {
12671267
// Visibilities must not be resolved non-speculatively twice
12681268
// and we already resolved this one as a `fn` item visibility.
12691269
ItemKind::Fn(..) => {
1270-
self.try_resolve_visibility(&item.vis, false).unwrap_or(ty::Visibility::Public)
1270+
self.try_resolve_visibility(&item.vis, false).unwrap_or(Visibility::Public)
12711271
}
12721272
_ => self.resolve_visibility(&item.vis),
12731273
};
@@ -1501,7 +1501,7 @@ impl<'a, 'ra, 'tcx> Visitor<'a> for BuildReducedGraphVisitor<'a, 'ra, 'tcx> {
15011501
// If the variant is marked as non_exhaustive then lower the visibility to within the crate.
15021502
let ctor_vis =
15031503
if vis.is_public() && ast::attr::contains_name(&variant.attrs, sym::non_exhaustive) {
1504-
ty::Visibility::Restricted(CRATE_DEF_ID)
1504+
Visibility::Restricted(CRATE_DEF_ID)
15051505
} else {
15061506
vis
15071507
};

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<'_> {
@@ -3461,7 +3461,7 @@ impl<'a, 'ast, 'ra, 'tcx> LateResolutionVisitor<'a, 'ast, 'ra, 'tcx> {
34613461
span,
34623462
"error should be emitted when an unexpected trait item is used",
34633463
);
3464-
rustc_middle::ty::Visibility::Public
3464+
Visibility::Public
34653465
};
34663466
this.r.feed_visibility(this.r.feed(id), vis);
34673467
};

compiler/rustc_resolve/src/lib.rs

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ use rustc_middle::query::Providers;
6565
use rustc_middle::span_bug;
6666
use rustc_middle::ty::{
6767
self, DelegationFnSig, Feed, MainDefinition, RegisteredTools, ResolverGlobalCtxt,
68-
ResolverOutputs, TyCtxt, TyCtxtFeed,
68+
ResolverOutputs, TyCtxt, TyCtxtFeed, Visibility,
6969
};
7070
use rustc_query_system::ich::StableHashingContext;
7171
use rustc_session::lint::builtin::PRIVATE_MACRO_USE;
@@ -748,7 +748,7 @@ struct NameBindingData<'ra> {
748748
warn_ambiguity: bool,
749749
expansion: LocalExpnId,
750750
span: Span,
751-
vis: ty::Visibility<DefId>,
751+
vis: Visibility<DefId>,
752752
}
753753

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

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

11541154
lint_buffer: LintBuffer,
11551155

@@ -1226,7 +1226,7 @@ impl<'ra> ResolverArenas<'ra> {
12261226
fn new_res_binding(
12271227
&'ra self,
12281228
res: Res,
1229-
vis: ty::Visibility<DefId>,
1229+
vis: Visibility<DefId>,
12301230
span: Span,
12311231
expansion: LocalExpnId,
12321232
) -> NameBinding<'ra> {
@@ -1596,7 +1596,7 @@ impl<'ra, 'tcx> Resolver<'ra, 'tcx> {
15961596

15971597
let root_parent_scope = ParentScope::module(graph_root, &resolver);
15981598
resolver.invocation_parent_scopes.insert(LocalExpnId::ROOT, root_parent_scope);
1599-
resolver.feed_visibility(crate_feed, ty::Visibility::Public);
1599+
resolver.feed_visibility(crate_feed, Visibility::Public);
16001600

16011601
resolver
16021602
}
@@ -1650,7 +1650,7 @@ impl<'ra, 'tcx> Resolver<'ra, 'tcx> {
16501650
Default::default()
16511651
}
16521652

1653-
fn feed_visibility(&mut self, feed: Feed<'tcx, LocalDefId>, vis: ty::Visibility) {
1653+
fn feed_visibility(&mut self, feed: Feed<'tcx, LocalDefId>, vis: Visibility) {
16541654
let feed = feed.upgrade(self.tcx);
16551655
feed.visibility(vis.to_def_id());
16561656
self.visibilities_for_hashing.push((feed.def_id(), vis));
@@ -2102,11 +2102,7 @@ impl<'ra, 'tcx> Resolver<'ra, 'tcx> {
21022102
self.pat_span_map.insert(node, span);
21032103
}
21042104

2105-
fn is_accessible_from(
2106-
&self,
2107-
vis: ty::Visibility<impl Into<DefId>>,
2108-
module: Module<'ra>,
2109-
) -> bool {
2105+
fn is_accessible_from(&self, vis: Visibility<impl Into<DefId>>, module: Module<'ra>) -> bool {
21102106
vis.is_accessible_from(module.nearest_parent_mod(), self.tcx)
21112107
}
21122108

0 commit comments

Comments
 (0)