rust/tests/ui/privacy/issue-113860.rs
David Wood e051a32311
privacy: no nominal visibility for assoc fns
When `staged_api` is enabled, effective visibilities are computed earlier
and this can trigger an ICE in some cases.

In particular, if a impl of a trait method has a visibility then an error
will be reported for that, but when privacy invariants are being checked,
the effective visibility will still be greater than the nominal visbility
and that will trigger a `span_bug!`.

However, this invariant - that effective visibilites are limited to
nominal visibility - doesn't make sense for associated functions.

Signed-off-by: David Wood <david@davidtw.co>
2023-07-28 14:28:02 +01:00

17 lines
432 B
Rust

#![feature(staged_api)]
//~^ ERROR module has missing stability attribute
pub trait Trait {
//~^ ERROR trait has missing stability attribute
const X: u32;
//~^ ERROR associated constant has missing stability attribute
}
impl Trait for u8 {
//~^ ERROR implementation has missing stability attribute
pub(self) const X: u32 = 3;
//~^ ERROR visibility qualifiers are not permitted here [E0449]
}
fn main() {}