error[E0720]: cannot resolve opaque type
  --> $DIR/recursive-impl-trait-type-through-non-recursive.rs:7:22
   |
LL | fn id<T>(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: 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: 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: 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`.
