Warn against relying on ?Sized being last
This commit is contained in:
parent
5535c25314
commit
a34c2677af
@ -2106,6 +2106,8 @@ impl<T: ?Sized> Unpin for Rc<T> { }
|
||||
unsafe fn data_offset<T: ?Sized>(ptr: *const T) -> isize {
|
||||
// Align the unsized value to the end of the `RcBox`.
|
||||
// Because it is ?Sized, it will always be the last field in memory.
|
||||
// Note: This is a detail of the current implementation of the compiler,
|
||||
// and is not a guaranteed language detail. Do not rely on it outside of std.
|
||||
data_offset_align(align_of_val(&*ptr))
|
||||
}
|
||||
|
||||
|
@ -2161,6 +2161,8 @@ impl<T: ?Sized> Unpin for Arc<T> { }
|
||||
unsafe fn data_offset<T: ?Sized>(ptr: *const T) -> isize {
|
||||
// Align the unsized value to the end of the `ArcInner`.
|
||||
// Because it is `?Sized`, it will always be the last field in memory.
|
||||
// Note: This is a detail of the current implementation of the compiler,
|
||||
// and is not a guaranteed language detail. Do not rely on it outside of std.
|
||||
data_offset_align(align_of_val(&*ptr))
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user