Relax slice safety requirements

Per https://github.com/rust-lang/rust/pull/116677#issuecomment-1945495786, the language as written promises too much. This PR relaxes the language to be consistent with current semantics. If and when #117945 is implemented, we can revert to the old language.
This commit is contained in:
Joshua Liebow-Feeser 2024-05-11 11:50:20 -07:00 committed by GitHub
parent 100b123a0d
commit 1cefaa7432
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -1468,7 +1468,7 @@ mod prim_usize {}
/// boundary, the following invariants must generally be upheld:
///
/// * `t` is aligned to `align_of_val(t)`
/// * `t` is dereferenceable for `size_of_val(t)` many bytes
/// * if `size_of_val(t) > 0`, then `t` is dereferenceable for `size_of_val(t)` many bytes
///
/// If `t` points at address `a`, being "dereferenceable" for N bytes means that the memory range
/// `[a, a + N)` is all contained within a single [allocated object].