about summary refs log tree commit diff
path: root/tests/ui/structs/default-field-values/visibility.rs
blob: ff1245551b0ade2dad3bbed6c5222ce9eab5b31f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#![feature(default_field_values)]
pub mod foo {
    #[derive(Default)]
    pub struct Alpha {
        beta: u8 = 42,
        gamma: bool = true,
    }
}

mod bar {
    use crate::foo::Alpha;
    fn baz() {
        let _x = Alpha { .. };
        //~^ ERROR fields `beta` and `gamma` of struct `Alpha` are private
        let _x = Alpha {
            beta: 0, //~ ERROR fields `beta` and `gamma` of struct `Alpha` are private
            gamma: false,
        };
        let _x = Alpha {
            beta: 0, //~ ERROR fields `beta` and `gamma` of struct `Alpha` are private
            ..
        };
        let _x = Alpha { beta: 0, .. };
        //~^ ERROR fields `beta` and `gamma` of struct `Alpha` are private
        let _x = Alpha { beta: 0, ..Default::default() };
        //~^ ERROR fields `beta` and `gamma` of struct `Alpha` are private
    }
}

pub mod baz {
    pub struct S {
        x: i32 = 1,
    }
}
fn main() {
    let _a = baz::S {
        .. //~ ERROR field `x` of struct `S` is private
    };
    let _b = baz::S {
        x: 0, //~ ERROR field `x` of struct `S` is private
    };
}