> How do self references work when the struct is moved, given that they're pointers?
Are all references necessarily (global) pointers? Couldn't self references be offsets?
Are all references necessarily (global) pointers? Couldn't self references be offsets?
Now every "reference to a reference" (and similar things) can dynamically be a global pointer or a relative one, with no way to tell how to use it.
It might have been nicer in some ways if the language had restricted that a bit more up front, but it would probably have taken some design work to do that while still supporting a lot of the low-level stuff people need to do.