| #### 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: | |
| ``` | |
| struct Foo { x: Box<Foo> } // error | |
| ``` | |
| One fix is to use `Option`, like so: | |
| ``` | |
| struct Foo { x: Option<Box<Foo>> } | |
| ``` | |
| Now it's possible to create at least one instance of `Foo`: `Foo { x: None }`. |