Freezing
When data is immutably borrowed, it also freezes. Frozen data can't be modified via the original object until all references to it go out of scope:
fn main() { let mut _mutable_integer = 7i32; { // Borrow `_mutable_integer` let _large_integer = &_mutable_integer; // Error! `_mutable_integer` is frozen in this scope _mutable_integer = 50; // FIXME ^ Comment out this line // `_large_integer` goes out of scope } // Ok! `_mutable_integer` is not frozen in this scope _mutable_integer = 3; }