//@ compile-flags: --crate-type=lib //@ check-pass #![deny(refining_impl_trait)] pub trait Tr { fn foo() -> impl for<'a> Tr<&'a Self>; } impl Tr for () { fn foo() -> impl for<'a> Tr<&'a Self> {} }