@@ -29,17 +29,19 @@ improvement.
29
29
What is perhaps less well understood is that the new borrow checker
30
30
implementation * also* fixed a lot of bugs. In other words, the new
31
31
borrow checker did not just accept more programs -- ** it also rejected
32
- some programs that never should have been accepted in the first
33
- place !**
32
+ some programs that were only accepted in the first place due to memory
33
+ unsafety bugs in the old borrow checker !**
34
34
35
35
[ 2018 ] : https://blog.rust-lang.org/2018/12/06/Rust-1.31-and-rust-2018.html
36
36
[ nll ] : https://blog.rust-lang.org/2018/12/06/Rust-1.31-and-rust-2018.html#non-lexical-lifetimes
37
37
[ MIR ] : https://blog.rust-lang.org/2016/04/19/MIR.html
38
38
39
39
### Until recently, those fixed bugs produced warnings, not errors
40
40
41
- As part of our commitment to stability, whenever we find bugs that
42
- impact existing code in a major way, we try to "phase in" those
41
+ Obviously, we don't want to accept programs that could undermine
42
+ Rust's safety guarantees. At the same time, as part of our commitment
43
+ to stability, we try to avoid making sudden bug fixes that will affect
44
+ a lot of code. Whenever possible, we prefer to "phase in" those
43
45
changes gradually. We usually begin with "Future Compatibility
44
46
Warnings", for example, before moving those warnings to hard errors
45
47
(sometimes a small bit at a time). Since the bug fixes to the borrow
0 commit comments