rust/tests/ui/privacy/issue-113860.stderr
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

50 lines
1.0 KiB
Plaintext

error[E0449]: visibility qualifiers are not permitted here
--> $DIR/issue-113860.rs:12:5
|
LL | pub(self) const X: u32 = 3;
| ^^^^^^^^^
|
= note: trait items always share the visibility of their trait
error: module has missing stability attribute
--> $DIR/issue-113860.rs:1:1
|
LL | / #![feature(staged_api)]
LL | |
LL | |
LL | | pub trait Trait {
... |
LL | |
LL | | fn main() {}
| |____________^
error: trait has missing stability attribute
--> $DIR/issue-113860.rs:4:1
|
LL | / pub trait Trait {
LL | |
LL | | const X: u32;
LL | |
LL | | }
| |_^
error: implementation has missing stability attribute
--> $DIR/issue-113860.rs:10:1
|
LL | / impl Trait for u8 {
LL | |
LL | | pub(self) const X: u32 = 3;
LL | |
LL | | }
| |_^
error: associated constant has missing stability attribute
--> $DIR/issue-113860.rs:6:5
|
LL | const X: u32;
| ^^^^^^^^^^^^^
error: aborting due to 5 previous errors
For more information about this error, try `rustc --explain E0449`.