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:
1. fn main() {
2. let mut _mutable_integer = 7i32;
4. {
5. // Borrow `_mutable_integer`
6. let _large_integer = &_mutable_integer;
8. // Error! `_mutable_integer` is frozen in this scope
9. _mutable_integer = 50;
10. // FIXME ^ Comment out this line
12. // `_large_integer` goes out of scope
13. }
15. // Ok! `_mutable_integer` is not frozen in this scope
16. _mutable_integer = 3;
17. }
