// Regression test for #135668 //@ edition: 2021 use std::future::Future; pub async fn foo() { let _ = create_task().await; } async fn create_task() -> impl Sized { bind(documentation) } async fn documentation() { compile_error!("bonjour"); //~^ ERROR bonjour } fn bind(_filter: F) -> impl Sized where F: FilterBase, { || -> ::Assoc { panic!() } } trait FilterBase { type Assoc; } impl FilterBase for F where F: Fn() -> R, // Removing the below line makes it correctly error on both stable and beta R: Future, // Removing the below line makes it ICE on both stable and beta R: Send, // Removing the above two bounds makes it ICE on stable but correctly error on beta { type Assoc = F; } fn main() {}