Auto merge of #4744 - phansch:split_up_some_derive_test, r=flip1995

UI test cleanup: Extract derive_hash_xor_eq tests

changelog: none

cc #2038
This commit is contained in:
bors 2019-10-28 20:26:41 +00:00
commit add2c6cff1
4 changed files with 95 additions and 92 deletions

View file

@ -2,42 +2,6 @@
#![allow(dead_code)] #![allow(dead_code)]
#![warn(clippy::expl_impl_clone_on_copy)] #![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)] #[derive(Copy)]
struct Qux; struct Qux;

View file

@ -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 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 | / impl Clone for Qux {
LL | | fn clone(&self) -> Self { LL | | fn clone(&self) -> Self {
@ -57,7 +10,7 @@ LL | | }
| |
= note: `-D clippy::expl-impl-clone-on-copy` implied by `-D warnings` = note: `-D clippy::expl-impl-clone-on-copy` implied by `-D warnings`
note: consider deriving `Clone` or removing `Copy` note: consider deriving `Clone` or removing `Copy`
--> $DIR/derive.rs:44:1 --> $DIR/derive.rs:8:1
| |
LL | / impl Clone for Qux { LL | / impl Clone for Qux {
LL | | fn clone(&self) -> Self { LL | | fn clone(&self) -> Self {
@ -67,7 +20,7 @@ LL | | }
| |_^ | |_^
error: you are implementing `Clone` explicitly on a `Copy` type 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 | / impl<'a> Clone for Lt<'a> {
LL | | fn clone(&self) -> Self { LL | | fn clone(&self) -> Self {
@ -77,7 +30,7 @@ LL | | }
| |_^ | |_^
| |
note: consider deriving `Clone` or removing `Copy` 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 | / impl<'a> Clone for Lt<'a> {
LL | | fn clone(&self) -> Self { LL | | fn clone(&self) -> Self {
@ -87,7 +40,7 @@ LL | | }
| |_^ | |_^
error: you are implementing `Clone` explicitly on a `Copy` type 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 | / impl Clone for BigArray {
LL | | fn clone(&self) -> Self { LL | | fn clone(&self) -> Self {
@ -97,7 +50,7 @@ LL | | }
| |_^ | |_^
| |
note: consider deriving `Clone` or removing `Copy` note: consider deriving `Clone` or removing `Copy`
--> $DIR/derive.rs:80:1 --> $DIR/derive.rs:44:1
| |
LL | / impl Clone for BigArray { LL | / impl Clone for BigArray {
LL | | fn clone(&self) -> Self { LL | | fn clone(&self) -> Self {
@ -107,7 +60,7 @@ LL | | }
| |_^ | |_^
error: you are implementing `Clone` explicitly on a `Copy` type 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 | / impl Clone for FnPtr {
LL | | fn clone(&self) -> Self { LL | | fn clone(&self) -> Self {
@ -117,7 +70,7 @@ LL | | }
| |_^ | |_^
| |
note: consider deriving `Clone` or removing `Copy` note: consider deriving `Clone` or removing `Copy`
--> $DIR/derive.rs:92:1 --> $DIR/derive.rs:56:1
| |
LL | / impl Clone for FnPtr { LL | / impl Clone for FnPtr {
LL | | fn clone(&self) -> Self { LL | | fn clone(&self) -> Self {
@ -126,5 +79,5 @@ LL | | }
LL | | } LL | | }
| |_^ | |_^
error: aborting due to 7 previous errors error: aborting due to 4 previous errors

View file

@ -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() {}

View file

@ -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