summary refs log tree commit diff
path: root/tests/ui/closures/fnonce-moved-twice-12127.rs
diff options
context:
space:
mode:
Diffstat (limited to 'tests/ui/closures/fnonce-moved-twice-12127.rs')
-rw-r--r--tests/ui/closures/fnonce-moved-twice-12127.rs16
1 files changed, 16 insertions, 0 deletions
diff --git a/tests/ui/closures/fnonce-moved-twice-12127.rs b/tests/ui/closures/fnonce-moved-twice-12127.rs
new file mode 100644
index 00000000000..369ddcafaab
--- /dev/null
+++ b/tests/ui/closures/fnonce-moved-twice-12127.rs
@@ -0,0 +1,16 @@
+//! Regression test for https://github.com/rust-lang/rust/issues/12127
+
+#![feature(unboxed_closures, tuple_trait)]
+
+fn to_fn_once<A:std::marker::Tuple,F:FnOnce<A>>(f: F) -> F { f }
+fn do_it(x: &isize) { }
+
+fn main() {
+    let x: Box<_> = Box::new(22);
+    let f = to_fn_once(move|| do_it(&*x));
+    to_fn_once(move|| {
+        f();
+        f();
+        //~^ ERROR: use of moved value: `f`
+    })()
+}