@@ -245,8 +245,8 @@ impl<T: ?Sized> *const T {
245245 ///
246246 /// This operation itself is always safe, but using the resulting pointer is not.
247247 ///
248- /// The resulting pointer remains attached to the same [allocated object] that `self` points to.
249- /// It may *not* be used to access a different allocated object .
248+ /// The resulting pointer "remembers" the [allocated object] that `self` points to; it may not
249+ /// be used to read or write other allocated objects .
250250 ///
251251 /// In other words, `let z = x.wrapping_offset((y as isize) - (x as isize))` does *not* make `z`
252252 /// the same as `y` even if we assume `T` has size `1` and there is no overflow: `z` is still
@@ -264,9 +264,6 @@ impl<T: ?Sized> *const T {
264264 /// `x.wrapping_offset(o).wrapping_offset(o.wrapping_neg())` is always the same as `x`. In other
265265 /// words, leaving the allocated object and then re-entering it later is permitted.
266266 ///
267- /// If you need to cross object boundaries, cast the pointer to an integer and
268- /// do the arithmetic there.
269- ///
270267 /// [`offset`]: #method.offset
271268 /// [allocated object]: crate::ptr#allocated-object
272269 ///
@@ -594,8 +591,8 @@ impl<T: ?Sized> *const T {
594591 ///
595592 /// This operation itself is always safe, but using the resulting pointer is not.
596593 ///
597- /// The resulting pointer remains attached to the same [allocated object] that `self` points to.
598- /// It may *not* be used to access a different allocated object .
594+ /// The resulting pointer "remembers" the [allocated object] that `self` points to; it may not
595+ /// be used to read or write other allocated objects .
599596 ///
600597 /// In other words, `let z = x.wrapping_add((y as usize) - (x as usize))` does *not* make `z`
601598 /// the same as `y` even if we assume `T` has size `1` and there is no overflow: `z` is still
@@ -613,9 +610,6 @@ impl<T: ?Sized> *const T {
613610 /// `x.wrapping_add(o).wrapping_sub(o)` is always the same as `x`. In other words, leaving the
614611 /// allocated object and then re-entering it later is permitted.
615612 ///
616- /// If you need to cross object boundaries, cast the pointer to an integer and
617- /// do the arithmetic there.
618- ///
619613 /// [`add`]: #method.add
620614 /// [allocated object]: crate::ptr#allocated-object
621615 ///
@@ -659,8 +653,8 @@ impl<T: ?Sized> *const T {
659653 ///
660654 /// This operation itself is always safe, but using the resulting pointer is not.
661655 ///
662- /// The resulting pointer remains attached to the same [allocated object] that `self` points to.
663- /// It may *not* be used to access a different allocated object .
656+ /// The resulting pointer "remembers" the [allocated object] that `self` points to; it may not
657+ /// be used to read or write other allocated objects .
664658 ///
665659 /// In other words, `let z = x.wrapping_sub((x as usize) - (y as usize))` does *not* make `z`
666660 /// the same as `y` even if we assume `T` has size `1` and there is no overflow: `z` is still
@@ -678,9 +672,6 @@ impl<T: ?Sized> *const T {
678672 /// `x.wrapping_add(o).wrapping_sub(o)` is always the same as `x`. In other words, leaving the
679673 /// allocated object and then re-entering it later is permitted.
680674 ///
681- /// If you need to cross object boundaries, cast the pointer to an integer and
682- /// do the arithmetic there.
683- ///
684675 /// [`sub`]: #method.sub
685676 /// [allocated object]: crate::ptr#allocated-object
686677 ///
0 commit comments