2018-12-17 03:21:47 +00:00
|
|
|
struct Node_ {
|
|
|
|
a: Box<Cycle>
|
2013-02-21 23:19:40 +00:00
|
|
|
}
|
|
|
|
|
2018-12-17 03:21:47 +00:00
|
|
|
enum Cycle {
|
|
|
|
Node(Node_),
|
|
|
|
Empty,
|
2012-06-08 14:46:14 +00:00
|
|
|
}
|
2021-08-25 00:39:40 +00:00
|
|
|
|
2012-06-08 14:46:14 +00:00
|
|
|
fn main() {
|
2021-08-25 00:39:40 +00:00
|
|
|
let mut x: Box<_> = Box::new(Cycle::Node(Node_ {a: Box::new(Cycle::Empty)}));
|
|
|
|
|
2012-06-08 14:46:14 +00:00
|
|
|
// Create a cycle!
|
2013-03-15 19:24:24 +00:00
|
|
|
match *x {
|
2018-12-17 03:21:47 +00:00
|
|
|
Cycle::Node(ref mut y) => {
|
2013-03-15 19:24:24 +00:00
|
|
|
y.a = x; //~ ERROR cannot move out of
|
2012-06-08 14:46:14 +00:00
|
|
|
}
|
2018-12-17 03:21:47 +00:00
|
|
|
Cycle::Empty => {}
|
2012-06-08 14:46:14 +00:00
|
|
|
};
|
2012-08-07 13:04:36 +00:00
|
|
|
}
|