mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-22 23:04:33 +00:00
Auto merge of #63233 - RalfJung:get_unchecked, r=Centril
clarify that unchecked indexing is UB even if the reference is never used
This commit is contained in:
commit
5170a3f45a
@ -292,10 +292,13 @@ impl<T> [T] {
|
||||
/// Returns a reference to an element or subslice, without doing bounds
|
||||
/// checking.
|
||||
///
|
||||
/// This is generally not recommended, use with caution! For a safe
|
||||
/// alternative see [`get`].
|
||||
/// This is generally not recommended, use with caution!
|
||||
/// Calling this method with an out-of-bounds index is *[undefined behavior]*
|
||||
/// even if the resulting reference is not used.
|
||||
/// For a safe alternative see [`get`].
|
||||
///
|
||||
/// [`get`]: #method.get
|
||||
/// [undefined behavior]: https://doc.rust-lang.org/reference/behavior-considered-undefined.html
|
||||
///
|
||||
/// # Examples
|
||||
///
|
||||
@ -317,10 +320,13 @@ impl<T> [T] {
|
||||
/// Returns a mutable reference to an element or subslice, without doing
|
||||
/// bounds checking.
|
||||
///
|
||||
/// This is generally not recommended, use with caution! For a safe
|
||||
/// alternative see [`get_mut`].
|
||||
/// This is generally not recommended, use with caution!
|
||||
/// Calling this method with an out-of-bounds index is *[undefined behavior]*
|
||||
/// even if the resulting reference is not used.
|
||||
/// For a safe alternative see [`get_mut`].
|
||||
///
|
||||
/// [`get_mut`]: #method.get_mut
|
||||
/// [undefined behavior]: https://doc.rust-lang.org/reference/behavior-considered-undefined.html
|
||||
///
|
||||
/// # Examples
|
||||
///
|
||||
@ -2629,11 +2635,17 @@ pub trait SliceIndex<T: ?Sized>: private_slice_index::Sealed {
|
||||
|
||||
/// Returns a shared reference to the output at this location, without
|
||||
/// performing any bounds checking.
|
||||
/// Calling this method with an out-of-bounds index is *[undefined behavior]*
|
||||
/// even if the resulting reference is not used.
|
||||
/// [undefined behavior]: ../../reference/behavior-considered-undefined.html
|
||||
#[unstable(feature = "slice_index_methods", issue = "0")]
|
||||
unsafe fn get_unchecked(self, slice: &T) -> &Self::Output;
|
||||
|
||||
/// Returns a mutable reference to the output at this location, without
|
||||
/// performing any bounds checking.
|
||||
/// Calling this method with an out-of-bounds index is *[undefined behavior]*
|
||||
/// even if the resulting reference is not used.
|
||||
/// [undefined behavior]: ../../reference/behavior-considered-undefined.html
|
||||
#[unstable(feature = "slice_index_methods", issue = "0")]
|
||||
unsafe fn get_unchecked_mut(self, slice: &mut T) -> &mut Self::Output;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user