error[E0072]: recursive type `E2` has infinite size --> $DIR/issue-3008-3.rs:4:1 | LL | enum E2 { V2(E2, marker::PhantomData), } | ^^^^^^^^^^ ------ recursive without indirection | | | recursive type has infinite size | help: insert some indirection to make `E2` representable | LL | enum E2 { V2(Box>, marker::PhantomData), } | ^^^^ ^ LL | enum E2 { V2(Rc>, marker::PhantomData), } | ^^^ ^ LL | enum E2 { V2(&E2, marker::PhantomData), } | ^ error: aborting due to previous error For more information about this error, try `rustc --explain E0072`.