//@ known-bug: #135668 //@ compile-flags: --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() { include_str!("nonexistent"); } 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; }