Error code E0073
Note: this error code is no longer emitted by the compiler.
You cannot define a struct (or enum) Foo
that requires an instance of Foo
in order to make a new Foo
value. This is because there would be no way a
first instance of Foo
could be made to initialize another instance!
Here's an example of a struct that has this problem:
#![allow(unused)] fn main() { struct Foo { x: Box<Foo> } // error }
One fix is to use Option
, like so:
#![allow(unused)] fn main() { struct Foo { x: Option<Box<Foo>> } }
Now it's possible to create at least one instance of Foo
: Foo { x: None }
.