member_constraints - The Rust Unstable Book

# `member_constraints`

The tracking issue for this feature is: #61977

The `member_constraints` feature gate lets you use `impl Trait` syntax with multiple unrelated lifetime parameters.

A simple example is:

    #![feature(member_constraints)]

    trait Trait<'a, 'b> { }
    impl<T> Trait<'_, '_> for T {}

    fn foo<'a, 'b>(x: &'a u32, y: &'b u32) -> impl Trait<'a, 'b> {
      (x, y)
    }

    fn main() { }

Without the `member_constraints` feature gate, the above example is an error because both `'a` and `'b` appear in the impl Trait bounds, but neither outlives the other.