diff options
| author | Matthias Krüger <matthias.krueger@famsik.de> | 2024-01-04 15:34:01 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-01-04 15:34:01 +0100 |
| commit | ee882d628f831bce7e534d288fd7cacde281a94d (patch) | |
| tree | d25e79e30b1c1f03714025607ca636817b19e24e /compiler | |
| parent | e306cfb115b2e4351757b8282b402b0c736ef529 (diff) | |
| parent | 862368db9ff0db55940ef6543f246fd5d542a580 (diff) | |
| download | rust-ee882d628f831bce7e534d288fd7cacde281a94d.tar.gz rust-ee882d628f831bce7e534d288fd7cacde281a94d.zip | |
Rollup merge of #119553 - bvanjoi:fix-119463, r=petrochenkov
stop feed vis when cant access for trait item Fixes #119463 It's not necessary to feed visibility when use a private trait. r? ``@petrochenkov``
Diffstat (limited to 'compiler')
| -rw-r--r-- | compiler/rustc_resolve/src/late.rs | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/compiler/rustc_resolve/src/late.rs b/compiler/rustc_resolve/src/late.rs index c3026e52430..a82f7bdfbf3 100644 --- a/compiler/rustc_resolve/src/late.rs +++ b/compiler/rustc_resolve/src/late.rs @@ -3076,7 +3076,16 @@ impl<'a: 'ast, 'b, 'ast, 'tcx> LateResolutionVisitor<'a, 'b, 'ast, 'tcx> { } let feed_visibility = |this: &mut Self, def_id| { - let vis = this.r.tcx.visibility(def_id).expect_local(); + let vis = this.r.tcx.visibility(def_id); + let vis = if vis.is_visible_locally() { + vis.expect_local() + } else { + this.r.dcx().span_delayed_bug( + span, + "error should be emitted when an unexpected trait item is used", + ); + rustc_middle::ty::Visibility::Public + }; this.r.feed_visibility(this.r.local_def_id(id), vis); }; |
