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, }