diff options
author | Yuki Okushi <huyuumi.dev@gmail.com> | 2020-08-20 16:03:03 +0900 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-08-20 16:03:03 +0900 |
commit | 17a0b8b0042958467afae3ce29fce257c28e6093 (patch) | |
tree | 6c98b8b3521a2c2f275d253af2fd78e8a58f15af | |
parent | 6bd95e4f0e0d7afa0c05d506b9ac5d5e36d4c1ed (diff) | |
parent | 6b52ae1544808ea55895456e644e30293295a17f (diff) | |
download | rust-libc-17a0b8b0042958467afae3ce29fce257c28e6093.tar.gz |
Merge pull request #1869 from joshtriplett/fix-copy-clone-no-derive
-rw-r--r-- | ci/style.rs | 3 | ||||
-rw-r--r-- | src/unix/linux_like/linux/gnu/mod.rs | 7 |
2 files changed, 9 insertions, 1 deletions
diff --git a/ci/style.rs b/ci/style.rs index dcb3536ec3..79574eb44e 100644 --- a/ci/style.rs +++ b/ci/style.rs @@ -134,6 +134,9 @@ fn check_style(file: &str, path: &Path, err: &mut Errors) { instead of #[cfg]"); } } + if line.contains("#[derive(") && (line.contains("Copy") || line.contains("Clone")) { + err.error(path, i, "impl ::Copy and ::Clone manually"); + } let line = line.trim_start(); let is_pub = line.starts_with("pub "); diff --git a/src/unix/linux_like/linux/gnu/mod.rs b/src/unix/linux_like/linux/gnu/mod.rs index 166134ec0b..44232e98cb 100644 --- a/src/unix/linux_like/linux/gnu/mod.rs +++ b/src/unix/linux_like/linux/gnu/mod.rs @@ -317,7 +317,6 @@ cfg_if! { if #[cfg(libc_union)] { // Internal, for casts to access union fields #[repr(C)] - #[derive(Copy,Clone)] struct sifields_sigchld { si_pid: ::pid_t, si_uid: ::uid_t, @@ -325,6 +324,12 @@ cfg_if! { si_utime: ::c_long, si_stime: ::c_long, } + impl ::Copy for sifields_sigchld {} + impl ::Clone for sifields_sigchld { + fn clone(&self) -> sifields_sigchld { + *self + } + } // Internal, for casts to access union fields #[repr(C)] |