# Static rustc_lint_defs::builtin::WHERE_CLAUSES_OBJECT_SAFETY

source ·

    pub static WHERE_CLAUSES_OBJECT_SAFETY: &Lint

Expand description

The `where_clauses_object_safety` lint detects for object safety of where clauses.

#### §Example

    trait Trait {}

    trait X { fn foo(&self) where Self: Trait; }

    impl X for () { fn foo(&self) {} }

    impl Trait for dyn X {}

    // Segfault at opt-level 0, SIGILL otherwise.
    pub fn main() { <dyn X as X>::foo(&()); }

{{produces}}

#### §Explanation

The compiler previously allowed these object-unsafe bounds, which was incorrect. This is a future-incompatible lint to transition this to a hard error in the future. See issue #51443 for more details.