about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorBrian Koropoff <bkoropoff@gmail.com>2014-09-13 15:36:58 -0700
committerBrian Koropoff <bkoropoff@gmail.com>2014-09-13 18:26:51 -0700
commitf1c4e476e9ecfcbcce167ce2c34840ccee71a1d4 (patch)
tree7ba4f4acad2c0e33dee4cd3154e61dc7b9fe2b9b /src
parent5857ec6d78fec2cf457a5557d89677354eb7d0d1 (diff)
downloadrust-f1c4e476e9ecfcbcce167ce2c34840ccee71a1d4.tar.gz
rust-f1c4e476e9ecfcbcce167ce2c34840ccee71a1d4.zip
Add regression test for issue #17216
Diffstat (limited to 'src')
-rw-r--r--src/test/run-pass/issue-17216.rs32
1 files changed, 32 insertions, 0 deletions
diff --git a/src/test/run-pass/issue-17216.rs b/src/test/run-pass/issue-17216.rs
new file mode 100644
index 00000000000..538b837d117
--- /dev/null
+++ b/src/test/run-pass/issue-17216.rs
@@ -0,0 +1,32 @@
+// Copyright 2014 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.
+
+#![feature(unsafe_destructor)]
+
+struct Leak<'a> {
+    dropped: &'a mut bool
+}
+
+#[unsafe_destructor]
+impl<'a> Drop for Leak<'a> {
+    fn drop(&mut self) {
+        *self.dropped = true;
+    }
+}
+
+fn main() {
+    let mut dropped = false;
+    {
+        let leak = Leak { dropped: &mut dropped };
+        for ((), leaked) in Some(((),leak)).move_iter() {}
+    }
+
+    assert!(dropped);
+}