Published: 10 September 2021
Rust has a borrow checker. What does it do? Basically enforces certain rules, like that all variables are initialized before they are used, that you can't move the same value twice, that you can't move a value while it is borrowed, that you can't access a place while it is mutably borrowed (except through the reference), that you can't mutate a place while it is immutably borrowed, and more. The authors of this article (emails listed at top of article) detail an implementation of a borrow checker system at compile time in C++.