diff --git a/src/SUMMARY.md b/src/SUMMARY.md index 85711fff22..3e3e0aa319 100644 --- a/src/SUMMARY.md +++ b/src/SUMMARY.md @@ -27,6 +27,7 @@ - [Mutability](variable_bindings/mut.md) - [Scope and Shadowing](variable_bindings/scope.md) - [Declare first](variable_bindings/declare.md) + - [Freezing](variable_bindings/freeze.md) - [Types](types.md) - [Casting](types/cast.md) @@ -117,7 +118,6 @@ - [Mutability](scope/move/mut.md) - [Borrowing](scope/borrow.md) - [Mutability](scope/borrow/mut.md) - - [Freezing](scope/borrow/freeze.md) - [Aliasing](scope/borrow/alias.md) - [The ref pattern](scope/borrow/ref.md) - [Lifetimes](scope/lifetime.md) diff --git a/src/scope/borrow/freeze.md b/src/variable_bindings/freeze.md similarity index 50% rename from src/scope/borrow/freeze.md rename to src/variable_bindings/freeze.md index f6dd431b26..b399570ff8 100644 --- a/src/scope/borrow/freeze.md +++ b/src/variable_bindings/freeze.md @@ -1,23 +1,21 @@ # 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: +When data is bound by the same name immutably, it also *freezes*. *Frozen* data can't be +modified until the immutable binding goes out of scope: ```rust,editable,ignore,mdbook-runnable fn main() { let mut _mutable_integer = 7i32; { - // Borrow `_mutable_integer` - let large_integer = &_mutable_integer; + // Shadowing by immutable `_mutable_integer` + let _mutable_integer = _mutable_integer; // Error! `_mutable_integer` is frozen in this scope _mutable_integer = 50; // FIXME ^ Comment out this line - println!("Immutably borrowed {}", large_integer); - - // `large_integer` goes out of scope + // `_mutable_integer` goes out of scope } // Ok! `_mutable_integer` is not frozen in this scope