error[E0720]: cannot resolve opaque type
  --> $DIR/issue-103599.rs:3:23
   |
LL | fn wrap(x: impl T) -> impl T {
   |                       ^^^^^^

warning: function cannot return without recursing
  --> $DIR/issue-103599.rs:3:1
   |
LL | fn wrap(x: impl T) -> impl T {
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot return without recursing
...
LL |     wrap(wrap(x))
   |          ------- recursive call site
   |
   = help: a `loop` may express intention better if this is on purpose
   = note: `#[warn(unconditional_recursion)]` on by default

error: aborting due to 1 previous error; 1 warning emitted

For more information about this error, try `rustc --explain E0720`.
