]> git.proxmox.com Git - rustc.git/blob - src/doc/rust-by-example/src/scope/borrow/freeze.md
New upstream version 1.43.0+dfsg1
[rustc.git] / src / doc / rust-by-example / src / scope / borrow / freeze.md
1 # Freezing
2
3 When data is immutably borrowed, it also *freezes*. *Frozen* data can't be
4 modified via the original object until all references to it go out of scope:
5
6 ```rust,editable,ignore,mdbook-runnable
7 fn main() {
8 let mut _mutable_integer = 7i32;
9
10 {
11 // Borrow `_mutable_integer`
12 let large_integer = &_mutable_integer;
13
14 // Error! `_mutable_integer` is frozen in this scope
15 _mutable_integer = 50;
16 // FIXME ^ Comment out this line
17
18 println!("Immutably borrowed {}", large_integer);
19
20 // `large_integer` goes out of scope
21 }
22
23 // Ok! `_mutable_integer` is not frozen in this scope
24 _mutable_integer = 3;
25 }
26 ```