TRIVIAL_BOUNDS in rustc_lint::builtin - Rust
Description: The `trivial_bounds` lint detects trait bounds that don’t depend on any type parameters.

Skip to main content

## TRIVIAL_BOUNDS

# Static TRIVIAL_BOUNDS

Source

    static TRIVIAL_BOUNDS: &Lint

Expand description

The `trivial_bounds` lint detects trait bounds that don’t depend on any type parameters.

#### §Example

    #![feature(trivial_bounds)]
    pub struct A where i32: Copy;

{{produces}}

#### §Explanation

Usually you would not write a trait bound that you know is always true, or never true. However, when using macros, the macro may not know whether or not the constraint would hold or not at the time when generating the code. Currently, the compiler does not alert you if the constraint is always true, and generates an error if it is never true. The `trivial_bounds` feature changes this to be a warning in both cases, giving macros more freedom and flexibility to generate code, while still providing a signal when writing non-macro code that something is amiss.

See RFC 2056 for more details. This feature is currently only available on the nightly channel, see tracking issue #48214.