e051a32311
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>
50 lines
1019 B
Plaintext
50 lines
1019 B
Plaintext
error[E0449]: visibility qualifiers are not permitted here
|
|
--> $DIR/issue-113860-2.rs:12:5
|
|
|
|
|
LL | pub(self) type X = Self;
|
|
| ^^^^^^^^^
|
|
|
|
|
= note: trait items always share the visibility of their trait
|
|
|
|
error: module has missing stability attribute
|
|
--> $DIR/issue-113860-2.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-2.rs:4:1
|
|
|
|
|
LL | / pub trait Trait {
|
|
LL | |
|
|
LL | | type X;
|
|
LL | |
|
|
LL | | }
|
|
| |_^
|
|
|
|
error: implementation has missing stability attribute
|
|
--> $DIR/issue-113860-2.rs:10:1
|
|
|
|
|
LL | / impl Trait for u8 {
|
|
LL | |
|
|
LL | | pub(self) type X = Self;
|
|
LL | |
|
|
LL | | }
|
|
| |_^
|
|
|
|
error: associated type has missing stability attribute
|
|
--> $DIR/issue-113860-2.rs:6:5
|
|
|
|
|
LL | type X;
|
|
| ^^^^^^^
|
|
|
|
error: aborting due to 5 previous errors
|
|
|
|
For more information about this error, try `rustc --explain E0449`.
|