// Repro for . //@ edition: 2021 //@ revisions: assumptions no_assumptions //@[assumptions] compile-flags: -Zhigher-ranked-assumptions //@[assumptions] check-pass //@[no_assumptions] known-bug: #110338 use std::future::Future; use std::marker::PhantomData; trait Stream { type Item; } struct Filter { pending_item: St::Item, } fn filter(_: St) -> Filter { unimplemented!(); } struct FilterMap { f: F, pending: PhantomData, } impl Stream for FilterMap where F: FnMut() -> Fut, Fut: Future, { type Item = (); } pub fn get_foo() -> impl Future + Send { async { let _y = &(); let _x = filter(FilterMap { f: || async move { *_y }, pending: PhantomData, }); async {}.await; drop(_x); } } fn main() {}