summaryrefslogtreecommitdiffstats
path: root/src/test/ui/drop/nondrop-cycle.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/ui/drop/nondrop-cycle.rs')
-rw-r--r--src/test/ui/drop/nondrop-cycle.rs31
1 files changed, 31 insertions, 0 deletions
diff --git a/src/test/ui/drop/nondrop-cycle.rs b/src/test/ui/drop/nondrop-cycle.rs
new file mode 100644
index 000000000..29070f917
--- /dev/null
+++ b/src/test/ui/drop/nondrop-cycle.rs
@@ -0,0 +1,31 @@
+// run-pass
+// pretty-expanded FIXME #23616
+
+use std::cell::Cell;
+
+struct C<'a> {
+ p: Cell<Option<&'a C<'a>>>,
+}
+
+impl<'a> C<'a> {
+ fn new() -> C<'a> { C { p: Cell::new(None) } }
+}
+
+fn f1() {
+ let (c1, c2) = (C::new(), C::new());
+ c1.p.set(Some(&c2));
+ c2.p.set(Some(&c1));
+}
+
+fn f2() {
+ let (c1, c2);
+ c1 = C::new();
+ c2 = C::new();
+ c1.p.set(Some(&c2));
+ c2.p.set(Some(&c1));
+}
+
+fn main() {
+ f1();
+ f2();
+}