//@ edition:2018 //@ check-pass trait Trait { type Output; } async fn walk(filter: F) where for<'a> F: Trait<&'a u32> + 'a, for<'a> >::Output: 'a, { } async fn walk2(filter: F) where for<'a> F: Trait<&'a u32> + 'a, for<'a> >::Output: 'a, { } fn main() {}