Borrow checker is unsound in the presence of mutable fields #5397
Labels
A-lifetimes
Area: Lifetimes / regions
A-typesystem
Area: The type system
E-hard
Call for participation: Hard difficulty. Experience needed to fix: A lot.
The current rules are not really sound. It will permit e.g. an
&mut
pointer to be created for amut
field found in an&T
, which is aliasable. This is bad because the&mut
pointer may not be the only pointer to that data.The rewritten version I am trying to land as part of #5074 includes a fix but it's commented out because it causes compile errors in io.rs. Fixing those errors requires cleaning up object types and converting things to
&mut self
and I didn't want to block #5074 on those changes. (Hence this follow-on bug)The text was updated successfully, but these errors were encountered: