2025-01-18 00:30:50 +00:00
|
|
|
#![feature(default_field_values)]
|
|
|
|
pub mod foo {
|
2025-01-18 20:07:05 +00:00
|
|
|
#[derive(Default)]
|
2025-01-18 00:30:50 +00:00
|
|
|
pub struct Alpha {
|
|
|
|
beta: u8 = 42,
|
|
|
|
gamma: bool = true,
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
mod bar {
|
2025-01-18 20:07:05 +00:00
|
|
|
use crate::foo::Alpha;
|
2025-01-18 00:30:50 +00:00
|
|
|
fn baz() {
|
2025-01-18 20:07:05 +00:00
|
|
|
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
|
2025-01-18 00:30:50 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
pub mod baz {
|
|
|
|
pub struct S {
|
|
|
|
x: i32 = 1,
|
|
|
|
}
|
|
|
|
}
|
|
|
|
fn main() {
|
2025-01-18 20:07:05 +00:00
|
|
|
let _a = baz::S {
|
2025-01-18 00:30:50 +00:00
|
|
|
.. //~ ERROR field `x` of struct `S` is private
|
|
|
|
};
|
2025-01-18 20:07:05 +00:00
|
|
|
let _b = baz::S {
|
2025-01-18 00:30:50 +00:00
|
|
|
x: 0, //~ ERROR field `x` of struct `S` is private
|
|
|
|
};
|
|
|
|
}
|