Understanding Rust Error E0262

Invalid Lifetime Parameter Name

Rust Error E0262 occurs when an invalid name is used for a lifetime parameter. Lifetime parameters are used in Rust to define how long a reference to a value should be valid for. This error typically occurs when a user tries to use a reserved lifetime name, such as 'static.

Erroneous Code Example

fn main() {
    // error, invalid lifetime parameter name `'static`
    fn foo<'static>(x: &'static str) { }

In the above code example, an attempt was made to use 'static as a lifetime parameter name in the foo function. However, 'static has a special meaning in Rust and cannot be used as a custom lifetime parameter.

Understanding 'static Lifetime

The 'static lifetime is a special built-in lifetime in Rust. It denotes the lifetime of the entire program. In other words, 'static references are valid for the entire duration of the program's execution. As a result, it is not a valid name for a custom lifetime parameter.


To fix Rust Error E0262, you should replace the invalid lifetime parameter name with a valid one. Lifetime parameter names follow the same rules as generic type names. They should start with an apostrophe (`'`) followed by an identifier.

Corrected Code Example

fn main() {
    fn foo<'a>(x: &'a str) { }

In this corrected example, the invalid lifetime parameter name 'static has been replaced with the valid lifetime parameter name 'a.