Skip to main content

INTERNAL_EQ_TRAIT_METHOD_IMPLS

Static INTERNAL_EQ_TRAIT_METHOD_IMPLS 

Source
pub static INTERNAL_EQ_TRAIT_METHOD_IMPLS: &Lint
Expand description

The internal_eq_trait_method_impls lint detects manual implementations of Eq::assert_receiver_is_total_eq.

§Example

#[derive(PartialEq)]
pub struct Foo;

impl Eq for Foo {
    fn assert_receiver_is_total_eq(&self) {}
}

{{produces}}

§Explanation

This method existed so that #[derive(Eq)] could check that all fields of a type implement Eq. Other users were never supposed to implement it and it was hidden from documentation.

Unfortunately, it was not explicitly marked as unstable and some people have now mistakenly assumed they had to implement this method.

As the method is never called by the standard library, you can safely remove any implementations of the method and just write impl Eq for Foo {}.

This is a [future-incompatible] lint to transition this to a hard error in the future. See issue #152336 for more details.