blob: a12378a206de2252b21c51a56e240691b8687c09 [file] [log] [blame] [view]
A struct constructor with private fields was invoked.
Erroneous code example:
```compile_fail,E0451
mod bar {
pub struct Foo {
pub a: isize,
b: isize,
}
}
let f = bar::Foo{ a: 0, b: 0 }; // error: field `b` of struct `bar::Foo`
// is private
```
To fix this error, please ensure that all the fields of the struct are public,
or implement a function for easy instantiation. Examples:
```
mod bar {
pub struct Foo {
pub a: isize,
pub b: isize, // we set `b` field public
}
}
let f = bar::Foo{ a: 0, b: 0 }; // ok!
```
Or:
```
mod bar {
pub struct Foo {
pub a: isize,
b: isize, // still private
}
impl Foo {
pub fn new() -> Foo { // we create a method to instantiate `Foo`
Foo { a: 0, b: 0 }
}
}
}
let f = bar::Foo::new(); // ok!
```