-// Copyright 2014-2018 The Rust Project Developers. See the COPYRIGHT
-// file at the top-level directory of this distribution.
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
-
-
-
#![feature(untagged_unions)]
-
#![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;
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() {}