To expand on Chris' answer, there are two issues to solve:
- have a syntax that unambiguously allows referring to a sibling
- make it so that borrowing rules can still be verified
It is relatively easy to cover (1), a simple &self.a
could be used for example, anchoring self
in the most outer type possible; however it seems that covering (2) would be much more difficult: nothing in the structure itself points to this relationship, and therefore it is not evident that self.a
is borrowed.
Without self.a
being marked as borrowed, you run into plenty of unsafe behaviors, such as possible destructive behaviors, which Rust is designed to stay clear of.