error[E0403]: the name `S` is already used for a generic parameter in this item's generic parameters --> $DIR/issue-103790.rs:4:29 | LL | struct S; | - ^ already used | | | first use of `S` error[E0107]: missing generics for struct `S` --> $DIR/issue-103790.rs:4:32 | LL | struct S; | ^ expected at least 1 generic argument | note: struct defined here, with at least 1 generic parameter: `S` --> $DIR/issue-103790.rs:4:8 | LL | struct S; | ^ ----------- help: add missing generic argument | LL | struct S = { S }>; | +++ error[E0391]: cycle detected when computing type of `S::S` --> $DIR/issue-103790.rs:4:32 | LL | struct S; | ^ | = note: ...which immediately requires computing type of `S::S` again note: cycle used when computing explicit predicates of `S` --> $DIR/issue-103790.rs:4:1 | LL | struct S; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ = note: see https://rustc-dev-guide.rust-lang.org/overview.html#queries and https://rustc-dev-guide.rust-lang.org/query.html for more information error: `()` is forbidden as the type of a const generic parameter --> $DIR/issue-103790.rs:4:19 | LL | struct S; | ^^ | = note: the only supported types are integers, `bool` and `char` help: add `#![feature(adt_const_params)]` to the crate attributes to enable more complex and user defined types | LL + #![feature(adt_const_params)] | error: `S<{const error}, {const error}>` is forbidden as the type of a const generic parameter --> $DIR/issue-103790.rs:4:32 | LL | struct S; | ^ | = note: the only supported types are integers, `bool` and `char` help: add `#![feature(adt_const_params)]` to the crate attributes to enable more complex and user defined types | LL + #![feature(adt_const_params)] | error: aborting due to 5 previous errors Some errors have detailed explanations: E0107, E0391, E0403. For more information about an error, try `rustc --explain E0107`.