rust/tests/crashes/139659.rs

30 lines
504 B
Rust

//@ known-bug: #139659
//@compile-flags: -Cdebuginfo=2 -Copt-level=0 --crate-type lib
trait Trait {
type Output;
}
impl<O, F: Fn() -> O> Trait for F {
type Output = O;
}
struct Wrap<P>(P);
struct WrapOutput<O>(O);
impl<P: Trait> Trait for Wrap<P> {
type Output = WrapOutput<P::Output>;
}
fn wrap<P: Trait>(x: P) -> impl Trait {
Wrap(x)
}
fn consume<P: Trait>(_: P) -> P::Output {
unimplemented!()
}
pub fn recurse() -> impl Sized {
consume(wrap(recurse))
}
pub fn main() {}