Can a RC move location behind my back?

In practice, Rc::make_mut and Rc::get_mut (EDIT: and try_unwrap) are the main reason why Rc<Pointee> and Pin<Rc<Pointee>> are not equivalent (those methods may "move location"). Otherwise, they are equivalent API-wise, since they both Deref<Target = Pointee>.

Also, see this thread

2 Likes