]> git.proxmox.com Git - rustc.git/blob - src/test/ui/array-slice-vec/vec_cycle.rs
New upstream version 1.47.0+dfsg1
[rustc.git] / src / test / ui / array-slice-vec / vec_cycle.rs
1 // run-pass
2
3 use std::cell::Cell;
4
5 #[derive(Debug)]
6 struct C<'a> {
7 v: Vec<Cell<Option<&'a C<'a>>>>,
8 }
9
10 impl<'a> C<'a> {
11 fn new() -> C<'a> {
12 C { v: Vec::new() }
13 }
14 }
15
16 fn f() {
17 let (mut c1, mut c2, mut c3);
18 c1 = C::new();
19 c2 = C::new();
20 c3 = C::new();
21
22 c1.v.push(Cell::new(None));
23 c1.v.push(Cell::new(None));
24 c2.v.push(Cell::new(None));
25 c2.v.push(Cell::new(None));
26 c3.v.push(Cell::new(None));
27 c3.v.push(Cell::new(None));
28
29 c1.v[0].set(Some(&c2));
30 c1.v[1].set(Some(&c3));
31 c2.v[0].set(Some(&c2));
32 c2.v[1].set(Some(&c3));
33 c3.v[0].set(Some(&c1));
34 c3.v[1].set(Some(&c2));
35 }
36
37 fn main() {
38 f();
39 }