struct Node_ { a: Box } enum Cycle { Node(Node_), Empty, } fn main() { let mut x: Box<_> = Box::new(Cycle::Node(Node_ {a: Box::new(Cycle::Empty)})); // Create a cycle! match *x { Cycle::Node(ref mut y) => { y.a = x; //~ ERROR cannot move out of } Cycle::Empty => {} }; }