//@ known-bug: #139659 //@compile-flags: -Cdebuginfo=2 -Copt-level=0 --crate-type lib trait Trait { type Output; } impl O> Trait for F { type Output = O; } struct Wrap

(P); struct WrapOutput(O); impl Trait for Wrap

{ type Output = WrapOutput; } fn wrap(x: P) -> impl Trait { Wrap(x) } fn consume(_: P) -> P::Output { unimplemented!() } pub fn recurse() -> impl Sized { consume(wrap(recurse)) } pub fn main() {}