about summary refs log tree commit diff
path: root/src/test
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2015-04-09 04:56:23 +0000
committerbors <bors@rust-lang.org>2015-04-09 04:56:23 +0000
commit0e5e669272253fa1dcbe08a23977d1f9fb0a392a (patch)
tree886d0125a7b3e008ae3c9d0e90557247d49be0e4 /src/test
parent287a544a309b840fd715fe1d5b651b5116bf08fa (diff)
parentdf95719391b2ee94c09162060052755e75f431dc (diff)
downloadrust-0e5e669272253fa1dcbe08a23977d1f9fb0a392a.tar.gz
rust-0e5e669272253fa1dcbe08a23977d1f9fb0a392a.zip
Auto merge of #24168 - kballard:clone-for-extern-c-unsafe-fns, r=alexcrichton
We only implemented Clone on `extern "Rust" fn`s (for up to 8
parameters). This didn't cover `extern "C"` or `unsafe` (or
`unsafe extern "C"`) `fn`s, but there's no reason why they shouldn't be
cloneable as well.

The new impls are marked unstable because the existing impl for `extern
"Rust" fn`s is.

Fixes #24161.
Diffstat (limited to 'src/test')
-rw-r--r--src/test/run-pass/issue-24161.rs19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/test/run-pass/issue-24161.rs b/src/test/run-pass/issue-24161.rs
new file mode 100644
index 00000000000..2445ef17ecf
--- /dev/null
+++ b/src/test/run-pass/issue-24161.rs
@@ -0,0 +1,19 @@
+// Copyright 2015 The Rust Project Developers. See the COPYRIGHT
+// file at the top-level directory of this distribution and at
+// http://rust-lang.org/COPYRIGHT.
+//
+// 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.
+
+#[derive(Copy,Clone)]
+struct Functions {
+    a: fn(u32) -> u32,
+    b: extern "C" fn(u32) -> u32,
+    c: unsafe fn(u32) -> u32,
+    d: unsafe extern "C" fn(u32) -> u32
+}
+
+pub fn main() {}