# `infer_static_outlives_requirements`

The tracking issue for this feature is: #44493

The `infer_static_outlives_requirements` feature indicates that certain `'static` outlives requirements can be inferred by the compiler rather than stating them explicitly.

Note: It is an accompanying feature to `infer_outlives_requirements`, which must be enabled to infer outlives requirements.

For example, currently generic struct definitions that contain references, require where-clauses of the form T: 'static. By using this feature the outlives predicates will be inferred, although they may still be written explicitly.

    struct Foo<U> where U: 'static { // <-- currently required
        bar: Bar<U>
    }
    struct Bar<T: 'static> {
        x: T,
    }

## Examples:

    #![feature(infer_outlives_requirements)]
    #![feature(infer_static_outlives_requirements)]

    #[rustc_outlives]
    // Implicitly infer U: 'static
    struct Foo<U> {
        bar: Bar<U>
    }
    struct Bar<T: 'static> {
        x: T,
    }