From 35e3a810a32847febb5267efe79aec8817cd5542 Mon Sep 17 00:00:00 2001 From: David Leung Date: Tue, 23 Jul 2019 16:14:03 +0800 Subject: [PATCH 1/2] freeze.md: Incorrect example The freeze example is meant to show that a value cannot be immutably borrowed while the original value is modified within the same scope. However, as the immutably borrowed value is not used after the mutation, the borrow checker allows the example to be compiled successfully, contrary to what we intend to demonstrate. Solution: Use the immutably borrowed value after original value is modified. --- src/scope/borrow/freeze.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/scope/borrow/freeze.md b/src/scope/borrow/freeze.md index 29f2d71fb1..b91a1bf01b 100644 --- a/src/scope/borrow/freeze.md +++ b/src/scope/borrow/freeze.md @@ -9,12 +9,14 @@ fn main() { { // Borrow `_mutable_integer` - let _large_integer = &_mutable_integer; + let large_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 } From ba73a17199873aadd9b1a68463ea9cd669508dc9 Mon Sep 17 00:00:00 2001 From: David Leung Date: Fri, 2 Aug 2019 15:29:46 +0800 Subject: [PATCH 2/2] freeze.md: Fix variable inconsistency in comment --- src/scope/borrow/freeze.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/scope/borrow/freeze.md b/src/scope/borrow/freeze.md index b91a1bf01b..f6dd431b26 100644 --- a/src/scope/borrow/freeze.md +++ b/src/scope/borrow/freeze.md @@ -17,7 +17,7 @@ fn main() { println!("Immutably borrowed {}", large_integer); - // `_large_integer` goes out of scope + // `large_integer` goes out of scope } // Ok! `_mutable_integer` is not frozen in this scope