create a new section on pointer to reference conversion · patricklam/verify-rust-std@571348b (original) (raw)
`@@ -247,24 +247,7 @@ impl<T: ?Sized> *mut T {
`
247
247
`/// # Safety
`
248
248
`///
`
249
249
`/// When calling this method, you have to ensure that either the pointer is null or
`
250
``
`-
/// all of the following is true:
`
251
``
`-
///
`
252
``
`-
/// * The pointer must be properly aligned.
`
253
``
`-
///
`
254
``
`-
/// * It must be "dereferenceable" in the sense defined in [the module documentation].
`
255
``
`-
///
`
256
``
`` -
/// * The pointer must point to an initialized instance of T
.
``
257
``
`-
///
`
258
``
`` -
/// * You must enforce Rust's aliasing rules, since the returned lifetime 'a
is
``
259
``
`-
/// arbitrarily chosen and does not necessarily reflect the actual lifetime of the data.
`
260
``
`-
/// In particular, while this reference exists, the memory the pointer points to must
`
261
``
`` -
/// not get mutated (except inside UnsafeCell
).
``
262
``
`-
///
`
263
``
`-
/// This applies even if the result of this method is unused!
`
264
``
`-
/// (The part about being initialized is not yet fully decided, but until
`
265
``
`-
/// it is, the only safe approach is to ensure that they are indeed initialized.)
`
266
``
`-
///
`
267
``
`-
/// [the module documentation]: crate::ptr#safety
`
``
250
`+
/// the pointer is convirtible to a reference
`
268
251
`///
`
269
252
`/// # Examples
`
270
253
`///
`
`@@ -609,25 +592,10 @@ impl<T: ?Sized> *mut T {
`
609
592
`///
`
610
593
`/// # Safety
`
611
594
`///
`
612
``
`-
/// When calling this method, you have to ensure that either the pointer is null or
`
613
``
`-
/// all of the following is true:
`
614
``
`-
///
`
615
``
`-
/// * The pointer must be properly aligned.
`
616
``
`-
///
`
617
``
`-
/// * It must be "dereferenceable" in the sense defined in [the module documentation].
`
618
``
`-
///
`
619
``
`` -
/// * The pointer must point to an initialized instance of T
.
``
620
``
`-
///
`
621
``
`` -
/// * You must enforce Rust's aliasing rules, since the returned lifetime 'a
is
``
622
``
`-
/// arbitrarily chosen and does not necessarily reflect the actual lifetime of the data.
`
623
``
`-
/// In particular, while this reference exists, the memory the pointer points to must
`
624
``
`-
/// not get accessed (read or written) through any other pointer.
`
``
595
`+
/// When calling this method, you have to ensure that either
`
``
596
`+
/// the pointer is null or
`
``
597
`+
/// the pointer is convirtible to a reference
`
625
598
`///
`
626
``
`-
/// This applies even if the result of this method is unused!
`
627
``
`-
/// (The part about being initialized is not yet fully decided, but until
`
628
``
`-
/// it is, the only safe approach is to ensure that they are indeed initialized.)
`
629
``
`-
///
`
630
``
`-
/// [the module documentation]: crate::ptr#safety
`
631
599
`///
`
632
600
`/// # Examples
`
633
601
`///
`