// Test for diagnostic improvement issue #75907

mod foo {
    pub(crate) struct Foo(u8);
    pub(crate) struct Bar(pub u8, pub(in crate::foo) u8, Foo);

    pub(crate) fn make_bar() -> Bar {
        Bar(1, 12, Foo(10))
    }
}

use foo::{make_bar, Bar, Foo};

fn main() {
    let Bar(x, y, Foo(z)) = make_bar();
    //~^ ERROR cannot match against a tuple struct which contains private fields
    //~| ERROR cannot match against a tuple struct which contains private fields
}