error: unexpected keyword `Self` in generic parameters --> $DIR/keyword-self-as-type-param.rs:3:12 | LL | struct Foo(Self); | ^^^^ | = note: you cannot use `Self` as a generic parameter because it is reserved for associated items error: unexpected keyword `Self` in generic parameters --> $DIR/keyword-self-as-type-param.rs:7:11 | LL | trait Bar {} | ^^^^ | = note: you cannot use `Self` as a generic parameter because it is reserved for associated items error[E0072]: recursive type `Foo` has infinite size --> $DIR/keyword-self-as-type-param.rs:3:1 | LL | struct Foo(Self); | ^^^^^^^^^^^^^^^^^----^^ | | | | | recursive without indirection | recursive type has infinite size | help: insert some indirection (e.g., a `Box`, `Rc`, or `&`) to make `Foo` representable | LL | struct Foo(Box); | ++++ + error: aborting due to 3 previous errors For more information about this error, try `rustc --explain E0072`.