An impl Trait type expands to a recursive type.
Erroneous code example:
fn make_recursive_type() -> impl Sized {
[make_recursive_type(), make_recursive_type()]
}RunAn impl Trait type must be expandable to a concrete type that contains no
impl Trait types. For example the previous example tries to create an
impl Trait type T that is equal to [T, T].