about summary refs log tree commit diff
path: root/tests/ui/structs/default-field-values/empty-struct.rs
blob: c9cb861ae27cbb886c90e94b17e2d30ed9b7b293 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#![feature(default_field_values)]

// If an API wants users to always use `..` even if they specify all the fields, they should use a
// sentinel field. As of now, that field can't be made private so it is only constructable with this
// syntax, but this might change in the future.

struct A {}
struct B();
struct C;
struct D {
    x: i32,
}
struct E(i32);

fn main() {
    let _ = A { .. }; //~ ERROR has no fields
    let _ = B { .. }; //~ ERROR has no fields
    let _ = C { .. }; //~ ERROR has no fields
    let _ = D { x: 0, .. };
    let _ = E { 0: 0, .. };
}