// check-pass #![feature(return_position_impl_trait_in_trait)] #![allow(incomplete_features)] trait Foo { fn foo>(self) -> impl Foo; } struct Bar; impl Foo for Bar { fn foo>(self) -> impl Foo { self } } fn main() {}