mirror of https://github.com/rust-lang/rust.git
30 lines
504 B
Rust
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() {}
|