Skip to content

Commit

Permalink
Add tests.
Browse files Browse the repository at this point in the history
  • Loading branch information
luqmana committed May 8, 2021
1 parent 57fda67 commit 89300cd
Show file tree
Hide file tree
Showing 4 changed files with 41 additions and 4 deletions.
12 changes: 12 additions & 0 deletions src/test/ui/issues/auxiliary/issue-75907.rs
Expand Up @@ -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;
5 changes: 4 additions & 1 deletion src/test/ui/issues/issue-75907_b.rs
Expand Up @@ -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
}
26 changes: 24 additions & 2 deletions src/test/ui/issues/issue-75907_b.stderr
Expand Up @@ -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[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 previous error
error: aborting due to 2 previous errors

For more information about this error, try `rustc --explain E0532`.
2 changes: 1 addition & 1 deletion src/test/ui/rfc-2008-non-exhaustive/struct.stderr
Expand Up @@ -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
Expand Down

0 comments on commit 89300cd

Please sign in to comment.