ELIDED_LIFETIMES_IN_ASSOCIATED_CONSTANT in rustc_lint_defs::builtin - Rust
Description: The `elided_lifetimes_in_associated_constant` lint detects elided lifetimes in associated constants when there are other lifetimes in scope. This was accidentally supported, and this lint was later relaxed to allow eliding lifetimes to `'static` when there are no lifetimes in scope.

Skip to main content

## ELIDED_LIFETIMES_IN_ASSOCIATED_CONSTANT

# Static ELIDED_LIFETIMES_IN_ASSOCIATED_CONSTANT

Source

    pub static ELIDED_LIFETIMES_IN_ASSOCIATED_CONSTANT: &Lint

Expand description

The `elided_lifetimes_in_associated_constant` lint detects elided lifetimes in associated constants when there are other lifetimes in scope. This was accidentally supported, and this lint was later relaxed to allow eliding lifetimes to `'static` when there are no lifetimes in scope.

#### §Example

ⓘ

    #![deny(elided_lifetimes_in_associated_constant)]

    struct Foo<'a>(&'a ());

    impl<'a> Foo<'a> {
        const STR: &str = "hello, world";
    }

{{produces}}

#### §Explanation

Previous version of Rust

Implicit static-in-const behavior was decided against for associated constants because of ambiguity. This, however, regressed and the compiler erroneously treats elided lifetimes in associated constants as lifetime parameters on the impl.

This is a future-incompatible lint to transition this to a hard error in the future.