//@ revisions: stock hr //@[hr] compile-flags: -Zhigher-ranked-assumptions //@ edition: 2024 //@ check-pass // Test that we don't normalize the higher-ranked assumptions of an auto trait goal // unless we have `-Zhigher-ranked-assumptions`, since obligations that result from // this normalization may lead to higher-ranked lifetime errors when the flag is not // enabled. // Regression test for . pub trait Service { type Response; } impl Service for T where T: FnMut() -> R, R: 'static, { type Response = R; } async fn serve(_: C) where C: Service, C::Response: 'static, { connect::().await; } async fn connect() where C: Service, C::Response: 'static, { } fn repro() -> impl Send { async { let server = || do_something(); serve(server).await; } } fn do_something() -> Box { unimplemented!() } fn main() {}