use std::marker; enum E1 { V1(E2), } enum E2 { V2(E2, marker::PhantomData), } //~^ ERROR recursive type `E2` has infinite size impl E1 { fn foo(&self) {} } fn main() { }