Error code E0796
Reference of mutable static.
Erroneous code example:
#![allow(unused)] fn main() { static mut X: i32 = 23; static mut Y: i32 = 24; unsafe { let y = &X; let ref x = X; let (x, y) = (&X, &Y); foo(&X); } fn foo<'a>(_x: &'a i32) {} }
Mutable statics can be written to by multiple threads: aliasing violations or data races will cause undefined behavior.
Reference of mutable static is a hard error from 2024 edition.