be44860ab9
This fixes #111220 by checking the privacy of tuple constructors using `Self`, so the following code now errors ```rust mod my { pub struct Foo(&'static str); } impl AsRef<str> for my::Foo { fn as_ref(&self) -> &str { let Self(s) = self; // previously compiled, now errors correctly s } } ```
22 lines
622 B
Plaintext
22 lines
622 B
Plaintext
error[E0603]: tuple struct constructor `A` is private
|
|
--> $DIR/issue-111220-tuple-struct-fields.rs:8:13
|
|
|
|
|
LL | let Self(x) = self;
|
|
| ^^^^^^^
|
|
|
|
error[E0603]: tuple struct constructor `A` is private
|
|
--> $DIR/issue-111220-tuple-struct-fields.rs:20:13
|
|
|
|
|
LL | let Self(a) = self;
|
|
| ^^^^^^^
|
|
|
|
error[E0603]: tuple struct constructor `A` is private
|
|
--> $DIR/issue-111220-tuple-struct-fields.rs:40:13
|
|
|
|
|
LL | let Self(a) = self;
|
|
| ^^^^^^^
|
|
|
|
error: aborting due to 3 previous errors
|
|
|
|
For more information about this error, try `rustc --explain E0603`.
|