Add tests.

This commit is contained in:
Luqman Aden 2021-05-08 01:07:27 -07:00
parent 57fda67291
commit 89300cdebc
4 changed files with 41 additions and 4 deletions

View file

@ -3,3 +3,15 @@ pub struct Bar(pub u8, u8, u8);
pub fn make_bar() -> Bar {
Bar(1, 12, 10)
}
mod inner {
pub struct Foo(u8, pub u8, u8);
impl Foo {
pub fn new() -> Foo {
Foo(1, 12, 10)
}
}
}
pub use inner::Foo;

View file

@ -3,9 +3,12 @@
extern crate issue_75907 as a;
use a::{make_bar, Bar};
use a::{make_bar, Bar, Foo};
fn main() {
let Bar(x, y, z) = make_bar();
//~^ ERROR cannot match against a tuple struct which contains private fields
let Foo(x, y, z) = Foo::new();
//~^ ERROR cannot match against a tuple struct which contains private fields
}

View file

@ -2,8 +2,30 @@ error[E0532]: cannot match against a tuple struct which contains private fields
--> $DIR/issue-75907_b.rs:9:9
|
LL | let Bar(x, y, z) = make_bar();
| ^^^ constructor is not visible here due to private fields
| ^^^
|
note: constructor is not visible here due to private fields
--> $DIR/issue-75907_b.rs:9:16
|
LL | let Bar(x, y, z) = make_bar();
| ^ ^ private field
| |
| private field
error: aborting due to previous error
error[E0532]: cannot match against a tuple struct which contains private fields
--> $DIR/issue-75907_b.rs:12:9
|
LL | let Foo(x, y, z) = Foo::new();
| ^^^
|
note: constructor is not visible here due to private fields
--> $DIR/issue-75907_b.rs:12:13
|
LL | let Foo(x, y, z) = Foo::new();
| ^ ^ private field
| |
| private field
error: aborting due to 2 previous errors
For more information about this error, try `rustc --explain E0532`.

View file

@ -2,7 +2,7 @@ error[E0423]: cannot initialize a tuple struct which contains private fields
--> $DIR/struct.rs:20:14
|
LL | let ts = TupleStruct(640, 480);
| ^^^^^^^^^^^ constructor is not visible here due to private fields
| ^^^^^^^^^^^
error[E0423]: expected value, found struct `UnitStruct`
--> $DIR/struct.rs:29:14