Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

UI test cleanup: Extract derive_hash_xor_eq tests #4744

Merged
merged 1 commit into from
Oct 28, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 0 additions & 36 deletions tests/ui/derive.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,42 +2,6 @@
#![allow(dead_code)]
#![warn(clippy::expl_impl_clone_on_copy)]

use std::hash::{Hash, Hasher};

#[derive(PartialEq, Hash)]
struct Foo;

impl PartialEq<u64> for Foo {
fn eq(&self, _: &u64) -> bool {
true
}
}

#[derive(Hash)]
struct Bar;

impl PartialEq for Bar {
fn eq(&self, _: &Bar) -> bool {
true
}
}

#[derive(Hash)]
struct Baz;

impl PartialEq<Baz> for Baz {
fn eq(&self, _: &Baz) -> bool {
true
}
}

#[derive(PartialEq)]
struct Bah;

impl Hash for Bah {
fn hash<H: Hasher>(&self, _: &mut H) {}
}

#[derive(Copy)]
struct Qux;

Expand Down
65 changes: 9 additions & 56 deletions tests/ui/derive.stderr
Original file line number Diff line number Diff line change
@@ -1,52 +1,5 @@
error: you are deriving `Hash` but have implemented `PartialEq` explicitly
--> $DIR/derive.rs:16:10
|
LL | #[derive(Hash)]
| ^^^^
|
= note: `#[deny(clippy::derive_hash_xor_eq)]` on by default
note: `PartialEq` implemented here
--> $DIR/derive.rs:19:1
|
LL | / impl PartialEq for Bar {
LL | | fn eq(&self, _: &Bar) -> bool {
LL | | true
LL | | }
LL | | }
| |_^

error: you are deriving `Hash` but have implemented `PartialEq` explicitly
--> $DIR/derive.rs:25:10
|
LL | #[derive(Hash)]
| ^^^^
|
note: `PartialEq` implemented here
--> $DIR/derive.rs:28:1
|
LL | / impl PartialEq<Baz> for Baz {
LL | | fn eq(&self, _: &Baz) -> bool {
LL | | true
LL | | }
LL | | }
| |_^

error: you are implementing `Hash` explicitly but have derived `PartialEq`
--> $DIR/derive.rs:37:1
|
LL | / impl Hash for Bah {
LL | | fn hash<H: Hasher>(&self, _: &mut H) {}
LL | | }
| |_^
|
note: `PartialEq` implemented here
--> $DIR/derive.rs:34:10
|
LL | #[derive(PartialEq)]
| ^^^^^^^^^

error: you are implementing `Clone` explicitly on a `Copy` type
--> $DIR/derive.rs:44:1
--> $DIR/derive.rs:8:1
|
LL | / impl Clone for Qux {
LL | | fn clone(&self) -> Self {
Expand All @@ -57,7 +10,7 @@ LL | | }
|
= note: `-D clippy::expl-impl-clone-on-copy` implied by `-D warnings`
note: consider deriving `Clone` or removing `Copy`
--> $DIR/derive.rs:44:1
--> $DIR/derive.rs:8:1
|
LL | / impl Clone for Qux {
LL | | fn clone(&self) -> Self {
Expand All @@ -67,7 +20,7 @@ LL | | }
| |_^

error: you are implementing `Clone` explicitly on a `Copy` type
--> $DIR/derive.rs:68:1
--> $DIR/derive.rs:32:1
|
LL | / impl<'a> Clone for Lt<'a> {
LL | | fn clone(&self) -> Self {
Expand All @@ -77,7 +30,7 @@ LL | | }
| |_^
|
note: consider deriving `Clone` or removing `Copy`
--> $DIR/derive.rs:68:1
--> $DIR/derive.rs:32:1
|
LL | / impl<'a> Clone for Lt<'a> {
LL | | fn clone(&self) -> Self {
Expand All @@ -87,7 +40,7 @@ LL | | }
| |_^

error: you are implementing `Clone` explicitly on a `Copy` type
--> $DIR/derive.rs:80:1
--> $DIR/derive.rs:44:1
|
LL | / impl Clone for BigArray {
LL | | fn clone(&self) -> Self {
Expand All @@ -97,7 +50,7 @@ LL | | }
| |_^
|
note: consider deriving `Clone` or removing `Copy`
--> $DIR/derive.rs:80:1
--> $DIR/derive.rs:44:1
|
LL | / impl Clone for BigArray {
LL | | fn clone(&self) -> Self {
Expand All @@ -107,7 +60,7 @@ LL | | }
| |_^

error: you are implementing `Clone` explicitly on a `Copy` type
--> $DIR/derive.rs:92:1
--> $DIR/derive.rs:56:1
|
LL | / impl Clone for FnPtr {
LL | | fn clone(&self) -> Self {
Expand All @@ -117,7 +70,7 @@ LL | | }
| |_^
|
note: consider deriving `Clone` or removing `Copy`
--> $DIR/derive.rs:92:1
--> $DIR/derive.rs:56:1
|
LL | / impl Clone for FnPtr {
LL | | fn clone(&self) -> Self {
Expand All @@ -126,5 +79,5 @@ LL | | }
LL | | }
| |_^

error: aborting due to 7 previous errors
error: aborting due to 4 previous errors

37 changes: 37 additions & 0 deletions tests/ui/derive_hash_xor_eq.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
use std::hash::{Hash, Hasher};

#[derive(PartialEq, Hash)]
struct Foo;

impl PartialEq<u64> for Foo {
fn eq(&self, _: &u64) -> bool {
true
}
}

#[derive(Hash)]
struct Bar;

impl PartialEq for Bar {
fn eq(&self, _: &Bar) -> bool {
true
}
}

#[derive(Hash)]
struct Baz;

impl PartialEq<Baz> for Baz {
fn eq(&self, _: &Baz) -> bool {
true
}
}

#[derive(PartialEq)]
struct Bah;

impl Hash for Bah {
fn hash<H: Hasher>(&self, _: &mut H) {}
}

fn main() {}
49 changes: 49 additions & 0 deletions tests/ui/derive_hash_xor_eq.stderr
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
error: you are deriving `Hash` but have implemented `PartialEq` explicitly
--> $DIR/derive_hash_xor_eq.rs:12:10
|
LL | #[derive(Hash)]
| ^^^^
|
= note: `#[deny(clippy::derive_hash_xor_eq)]` on by default
note: `PartialEq` implemented here
--> $DIR/derive_hash_xor_eq.rs:15:1
|
LL | / impl PartialEq for Bar {
LL | | fn eq(&self, _: &Bar) -> bool {
LL | | true
LL | | }
LL | | }
| |_^

error: you are deriving `Hash` but have implemented `PartialEq` explicitly
--> $DIR/derive_hash_xor_eq.rs:21:10
|
LL | #[derive(Hash)]
| ^^^^
|
note: `PartialEq` implemented here
--> $DIR/derive_hash_xor_eq.rs:24:1
|
LL | / impl PartialEq<Baz> for Baz {
LL | | fn eq(&self, _: &Baz) -> bool {
LL | | true
LL | | }
LL | | }
| |_^

error: you are implementing `Hash` explicitly but have derived `PartialEq`
--> $DIR/derive_hash_xor_eq.rs:33:1
|
LL | / impl Hash for Bah {
LL | | fn hash<H: Hasher>(&self, _: &mut H) {}
LL | | }
| |_^
|
note: `PartialEq` implemented here
--> $DIR/derive_hash_xor_eq.rs:30:10
|
LL | #[derive(PartialEq)]
| ^^^^^^^^^

error: aborting due to 3 previous errors