-
-
#![feature(untagged_unions)]
-
#![allow(dead_code)]
-#![warn(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) {}
-}
+#![warn(clippy::expl_impl_clone_on_copy)]
#[derive(Copy)]
struct Qux;
impl Clone for Qux {
- fn clone(&self) -> Self { Qux }
+ fn clone(&self) -> Self {
+ Qux
+ }
}
// looks like unions don't support deriving Clone for now
impl Clone for Union {
fn clone(&self) -> Self {
- Union {
- a: 42,
- }
+ Union { a: 42 }
}
}
}
impl<'a> Clone for Lt<'a> {
- fn clone(&self) -> Self { unimplemented!() }
+ fn clone(&self) -> Self {
+ unimplemented!()
+ }
}
// Ok, `Clone` cannot be derived because of the big array
}
impl Clone for BigArray {
- fn clone(&self) -> Self { unimplemented!() }
+ fn clone(&self) -> Self {
+ unimplemented!()
+ }
}
// Ok, function pointers are not always Clone
}
impl Clone for FnPtr {
- fn clone(&self) -> Self { unimplemented!() }
+ fn clone(&self) -> Self {
+ unimplemented!()
+ }
}
// Ok, generics
}
impl<T> Clone for Generic<T> {
- fn clone(&self) -> Self { unimplemented!() }
+ fn clone(&self) -> Self {
+ unimplemented!()
+ }
}
fn main() {}