Aliasing occurs when multiple references or access paths designate the same memory location at the same time. In Rust, read-only borrows may alias the same data, while mutable borrows are guaranteed not to alias. section 3.4.1
Read-only versus mutable access
Several read-only references can inspect one variable together. A mutable reference requires exclusive access, preventing another reference from changing or simultaneously accessing that location. This rule lets `let` data appear immutable while types such as `Rc` and `Arc` update internal reference counts. section 3.4.1
Keep these distinctions in mind:
- `let` concerns aliasing and can contain data that changes internally; `const` represents a different form of fixed data. section 3.4.1
- Read-write references cannot alias the same data, whereas read-only borrows can. section 3.4.1
