#![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 }; }