error[E0720]: cannot resolve opaque type --> $DIR/recursive-impl-trait-type-through-non-recursive.rs:7:22 | LL | fn id(t: T) -> impl Sized { t } | ---------- returning this opaque type `impl Sized` LL | LL | fn recursive_id() -> impl Sized { | ^^^^^^^^^^ recursive opaque type LL | id(recursive_id2()) | ------------------- returning here with type `impl Sized` error[E0720]: cannot resolve opaque type --> $DIR/recursive-impl-trait-type-through-non-recursive.rs:11:23 | LL | fn id(t: T) -> impl Sized { t } | ---------- returning this opaque type `impl Sized` ... LL | fn recursive_id2() -> impl Sized { | ^^^^^^^^^^ recursive opaque type LL | id(recursive_id()) | ------------------ returning here with type `impl Sized` error[E0720]: cannot resolve opaque type --> $DIR/recursive-impl-trait-type-through-non-recursive.rs:17:24 | LL | fn wrap(t: T) -> impl Sized { (t,) } | ---------- returning this opaque type `impl Sized` LL | LL | fn recursive_wrap() -> impl Sized { | ^^^^^^^^^^ recursive opaque type LL | wrap(recursive_wrap2()) | ----------------------- returning here with type `impl Sized` error[E0720]: cannot resolve opaque type --> $DIR/recursive-impl-trait-type-through-non-recursive.rs:21:25 | LL | fn wrap(t: T) -> impl Sized { (t,) } | ---------- returning this opaque type `impl Sized` ... LL | fn recursive_wrap2() -> impl Sized { | ^^^^^^^^^^ recursive opaque type LL | wrap(recursive_wrap()) | ---------------------- returning here with type `impl Sized` error: aborting due to 4 previous errors For more information about this error, try `rustc --explain E0720`.