Added instability markers to POST_DROP_*
consts, and related opt-in's.
(Reviewed rest of code; did not see other `pub` items that needed such treatment.) Driveby: fix typo in comment in ptr.rs.
This commit is contained in:
parent
5733726508
commit
601eca3b53
@ -75,7 +75,7 @@
|
||||
#![feature(box_syntax)]
|
||||
#![feature(optin_builtin_traits)]
|
||||
#![feature(unboxed_closures)]
|
||||
#![feature(unsafe_no_drop_flag)]
|
||||
#![feature(unsafe_no_drop_flag, filling_drop)]
|
||||
#![feature(core)]
|
||||
#![feature(unique)]
|
||||
#![cfg_attr(test, feature(test, alloc, rustc_private))]
|
||||
|
@ -36,7 +36,7 @@
|
||||
#![feature(unicode)]
|
||||
#![feature(unsafe_destructor)]
|
||||
#![feature(unique)]
|
||||
#![feature(unsafe_no_drop_flag)]
|
||||
#![feature(unsafe_no_drop_flag, filling_drop)]
|
||||
#![feature(step_by)]
|
||||
#![feature(str_char)]
|
||||
#![feature(convert)]
|
||||
|
@ -337,19 +337,28 @@ macro_rules! repeat_u8_as_u64 {
|
||||
// But having the sign bit set is a pain, so 0x1d is probably better.
|
||||
//
|
||||
// And of course, 0x00 brings back the old world of zero'ing on drop.
|
||||
#[cfg(not(stage0))] pub const POST_DROP_U8: u8 = 0x1d;
|
||||
#[cfg(not(stage0))] pub const POST_DROP_U32: u32 = repeat_u8_as_u32!(POST_DROP_U8);
|
||||
#[cfg(not(stage0))] pub const POST_DROP_U64: u64 = repeat_u8_as_u64!(POST_DROP_U8);
|
||||
#[cfg(not(stage0))] #[unstable(feature = "filling_drop")]
|
||||
pub const POST_DROP_U8: u8 = 0x1d;
|
||||
#[cfg(not(stage0))] #[unstable(feature = "filling_drop")]
|
||||
pub const POST_DROP_U32: u32 = repeat_u8_as_u32!(POST_DROP_U8);
|
||||
#[cfg(not(stage0))] #[unstable(feature = "filling_drop")]
|
||||
pub const POST_DROP_U64: u64 = repeat_u8_as_u64!(POST_DROP_U8);
|
||||
|
||||
#[cfg(target_pointer_width = "32")]
|
||||
#[cfg(not(stage0))] pub const POST_DROP_USIZE: usize = POST_DROP_U32 as usize;
|
||||
#[cfg(not(stage0))] #[unstable(feature = "filling_drop")]
|
||||
pub const POST_DROP_USIZE: usize = POST_DROP_U32 as usize;
|
||||
#[cfg(target_pointer_width = "64")]
|
||||
#[cfg(not(stage0))] pub const POST_DROP_USIZE: usize = POST_DROP_U64 as usize;
|
||||
#[cfg(not(stage0))] #[unstable(feature = "filling_drop")]
|
||||
pub const POST_DROP_USIZE: usize = POST_DROP_U64 as usize;
|
||||
|
||||
#[cfg(stage0)] pub const POST_DROP_U8: u8 = 0;
|
||||
#[cfg(stage0)] pub const POST_DROP_U32: u32 = 0;
|
||||
#[cfg(stage0)] pub const POST_DROP_U64: u64 = 0;
|
||||
#[cfg(stage0)] pub const POST_DROP_USIZE: usize = 0;
|
||||
#[cfg(stage0)] #[unstable(feature = "filling_drop")]
|
||||
pub const POST_DROP_U8: u8 = 0;
|
||||
#[cfg(stage0)] #[unstable(feature = "filling_drop")]
|
||||
pub const POST_DROP_U32: u32 = 0;
|
||||
#[cfg(stage0)] #[unstable(feature = "filling_drop")]
|
||||
pub const POST_DROP_U64: u64 = 0;
|
||||
#[cfg(stage0)] #[unstable(feature = "filling_drop")]
|
||||
pub const POST_DROP_USIZE: usize = 0;
|
||||
|
||||
/// Interprets `src` as `&U`, and then reads `src` without moving the contained value.
|
||||
///
|
||||
|
@ -231,7 +231,7 @@ pub unsafe fn read_and_zero<T>(dest: *mut T) -> T {
|
||||
}
|
||||
|
||||
/// Variant of read_and_zero that writes the specific drop-flag byte
|
||||
/// (which may be more apropriate than zero).
|
||||
/// (which may be more appropriate than zero).
|
||||
#[inline(always)]
|
||||
#[unstable(feature = "core",
|
||||
reason = "may play a larger role in std::ptr future extensions")]
|
||||
|
@ -121,7 +121,7 @@
|
||||
#![feature(unboxed_closures)]
|
||||
#![feature(unicode)]
|
||||
#![feature(unsafe_destructor)]
|
||||
#![feature(unsafe_no_drop_flag)]
|
||||
#![feature(unsafe_no_drop_flag, filling_drop)]
|
||||
#![feature(macro_reexport)]
|
||||
#![feature(int_uint)]
|
||||
#![feature(unique)]
|
||||
|
Loading…
x
Reference in New Issue
Block a user