File: visibility.rs

package info (click to toggle)
rustc 1.87.0%2Bdfsg1-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 925,564 kB
  • sloc: xml: 158,127; python: 36,039; javascript: 19,761; sh: 19,737; cpp: 18,981; ansic: 13,133; asm: 4,376; makefile: 710; perl: 29; lisp: 28; ruby: 19; sql: 11
file content (42 lines) | stat: -rw-r--r-- 1,104 bytes parent folder | download | duplicates (11)
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
    };
}