From 698f8c2f01ea549d77d7dc3338a12e04c11057b9 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Wed, 17 Apr 2024 14:02:58 +0200 Subject: Adding upstream version 1.64.0+dfsg1. Signed-off-by: Daniel Baumann --- .../tests/ui/derive_partial_eq_without_eq.fixed | 126 +++++++++++++++++++++ 1 file changed, 126 insertions(+) create mode 100644 src/tools/clippy/tests/ui/derive_partial_eq_without_eq.fixed (limited to 'src/tools/clippy/tests/ui/derive_partial_eq_without_eq.fixed') diff --git a/src/tools/clippy/tests/ui/derive_partial_eq_without_eq.fixed b/src/tools/clippy/tests/ui/derive_partial_eq_without_eq.fixed new file mode 100644 index 000000000..bbbe46759 --- /dev/null +++ b/src/tools/clippy/tests/ui/derive_partial_eq_without_eq.fixed @@ -0,0 +1,126 @@ +// run-rustfix + +#![allow(unused)] +#![warn(clippy::derive_partial_eq_without_eq)] + +// Don't warn on structs that aren't PartialEq +pub struct NotPartialEq { + foo: u32, + bar: String, +} + +// Eq can be derived but is missing +#[derive(Debug, PartialEq, Eq)] +pub struct MissingEq { + foo: u32, + bar: String, +} + +// Eq is derived +#[derive(PartialEq, Eq)] +pub struct NotMissingEq { + foo: u32, + bar: String, +} + +// Eq is manually implemented +#[derive(PartialEq)] +pub struct ManualEqImpl { + foo: u32, + bar: String, +} + +impl Eq for ManualEqImpl {} + +// Cannot be Eq because f32 isn't Eq +#[derive(PartialEq)] +pub struct CannotBeEq { + foo: u32, + bar: f32, +} + +// Don't warn if PartialEq is manually implemented +pub struct ManualPartialEqImpl { + foo: u32, + bar: String, +} + +impl PartialEq for ManualPartialEqImpl { + fn eq(&self, other: &Self) -> bool { + self.foo == other.foo && self.bar == other.bar + } +} + +// Generic fields should be properly checked for Eq-ness +#[derive(PartialEq, Eq)] +pub struct GenericNotEq { + foo: T, + bar: U, +} + +#[derive(PartialEq, Eq)] +pub struct GenericEq { + foo: T, + bar: U, +} + +#[derive(PartialEq, Eq)] +pub struct TupleStruct(u32); + +#[derive(PartialEq, Eq)] +pub struct GenericTupleStruct(T); + +#[derive(PartialEq)] +pub struct TupleStructNotEq(f32); + +#[derive(PartialEq, Eq)] +pub enum Enum { + Foo(u32), + Bar { a: String, b: () }, +} + +#[derive(PartialEq, Eq)] +pub enum GenericEnum { + Foo(T), + Bar { a: U, b: V }, +} + +#[derive(PartialEq)] +pub enum EnumNotEq { + Foo(u32), + Bar { a: String, b: f32 }, +} + +// Ensure that rustfix works properly when `PartialEq` has other derives on either side +#[derive(Debug, PartialEq, Eq, Clone)] +pub struct RustFixWithOtherDerives; + +#[derive(PartialEq, Eq)] +pub struct Generic(T); + +#[derive(PartialEq, Eq)] +pub struct GenericPhantom(core::marker::PhantomData); + +mod _hidden { + #[derive(PartialEq, Eq)] + pub struct Reexported; + + #[derive(PartialEq, Eq)] + pub struct InPubFn; + + #[derive(PartialEq)] + pub(crate) struct PubCrate; + + #[derive(PartialEq)] + pub(super) struct PubSuper; +} + +pub use _hidden::Reexported; +pub fn _from_mod() -> _hidden::InPubFn { + _hidden::InPubFn +} + +#[derive(PartialEq)] +struct InternalTy; + +fn main() {} -- cgit v1.2.3