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;
  3. {
  4. // Borrow `_mutable_integer`
  5. let _large_integer = &_mutable_integer;
  6. // Error! `_mutable_integer` is frozen in this scope
  7. _mutable_integer = 50;
  8. // FIXME ^ Comment out this line
  9. // `_large_integer` goes out of scope
  10. }
  11. // Ok! `_mutable_integer` is not frozen in this scope
  12. _mutable_integer = 3;
  13. }