diff --git a/src/libcore/fmt/mod.rs b/src/libcore/fmt/mod.rs index 67781b73ae23c..1c70f9941f7a0 100644 --- a/src/libcore/fmt/mod.rs +++ b/src/libcore/fmt/mod.rs @@ -38,7 +38,8 @@ mod num; mod float; mod builders; -#[stable(feature = "rust1", since = "1.0.0")] +#[cfg_attr(stage0, stable(feature = "rust1", since = "1.0.0"))] +#[cfg_attr(not(stage0), unstable(feature = "core", reason = "internal to format_args!"))] #[doc(hidden)] pub mod rt { pub mod v1; @@ -134,7 +135,8 @@ enum Void {} /// compile time it is ensured that the function and the value have the correct /// types, and then this struct is used to canonicalize arguments to one type. #[derive(Copy)] -#[stable(feature = "rust1", since = "1.0.0")] +#[cfg_attr(stage0, stable(feature = "rust1", since = "1.0.0"))] +#[cfg_attr(not(stage0), unstable(feature = "core", reason = "internal to format_args!"))] #[doc(hidden)] pub struct ArgumentV1<'a> { value: &'a Void, @@ -154,7 +156,8 @@ impl<'a> ArgumentV1<'a> { } #[doc(hidden)] - #[stable(feature = "rust1", since = "1.0.0")] + #[cfg_attr(stage0, stable(feature = "rust1", since = "1.0.0"))] + #[cfg_attr(not(stage0), unstable(feature = "core", reason = "internal to format_args!"))] pub fn new<'b, T>(x: &'b T, f: fn(&T, &mut Formatter) -> Result) -> ArgumentV1<'b> { unsafe { @@ -166,7 +169,8 @@ impl<'a> ArgumentV1<'a> { } #[doc(hidden)] - #[stable(feature = "rust1", since = "1.0.0")] + #[cfg_attr(stage0, stable(feature = "rust1", since = "1.0.0"))] + #[cfg_attr(not(stage0), unstable(feature = "core", reason = "internal to format_args!"))] pub fn from_usize(x: &usize) -> ArgumentV1 { ArgumentV1::new(x, ArgumentV1::show_usize) } @@ -189,7 +193,8 @@ impl<'a> Arguments<'a> { /// When using the format_args!() macro, this function is used to generate the /// Arguments structure. #[doc(hidden)] #[inline] - #[stable(feature = "rust1", since = "1.0.0")] + #[cfg_attr(stage0, stable(feature = "rust1", since = "1.0.0"))] + #[cfg_attr(not(stage0), unstable(feature = "core", reason = "internal to format_args!"))] pub fn new_v1(pieces: &'a [&'a str], args: &'a [ArgumentV1<'a>]) -> Arguments<'a> { Arguments { @@ -206,7 +211,8 @@ impl<'a> Arguments<'a> { /// created with `argumentusize`. However, failing to do so doesn't cause /// unsafety, but will ignore invalid . #[doc(hidden)] #[inline] - #[stable(feature = "rust1", since = "1.0.0")] + #[cfg_attr(stage0, stable(feature = "rust1", since = "1.0.0"))] + #[cfg_attr(not(stage0), unstable(feature = "core", reason = "internal to format_args!"))] pub fn new_v1_formatted(pieces: &'a [&'a str], args: &'a [ArgumentV1<'a>], fmt: &'a [rt::v1::Argument]) -> Arguments<'a> { diff --git a/src/libcore/fmt/rt/v1.rs b/src/libcore/fmt/rt/v1.rs index d56ec6a74d449..0d851c1e897a9 100644 --- a/src/libcore/fmt/rt/v1.rs +++ b/src/libcore/fmt/rt/v1.rs @@ -14,68 +14,69 @@ //! These definitions are similar to their `ct` equivalents, but differ in that //! these can be statically allocated and are slightly optimized for the runtime -#![stable(feature = "rust1", since = "1.0.0")] +#![cfg_attr(stage0, stable(feature = "rust1", since = "1.0.0"))] +#![cfg_attr(not(stage0), unstable(feature = "core", reason = "internal to format_args!"))] #[derive(Copy, Clone)] -#[stable(feature = "rust1", since = "1.0.0")] +#[cfg_attr(stage0, stable(feature = "rust1", since = "1.0.0"))] pub struct Argument { - #[stable(feature = "rust1", since = "1.0.0")] + #[cfg_attr(stage0, stable(feature = "rust1", since = "1.0.0"))] pub position: Position, - #[stable(feature = "rust1", since = "1.0.0")] + #[cfg_attr(stage0, stable(feature = "rust1", since = "1.0.0"))] pub format: FormatSpec, } #[derive(Copy, Clone)] -#[stable(feature = "rust1", since = "1.0.0")] +#[cfg_attr(stage0, stable(feature = "rust1", since = "1.0.0"))] pub struct FormatSpec { - #[stable(feature = "rust1", since = "1.0.0")] + #[cfg_attr(stage0, stable(feature = "rust1", since = "1.0.0"))] pub fill: char, - #[stable(feature = "rust1", since = "1.0.0")] + #[cfg_attr(stage0, stable(feature = "rust1", since = "1.0.0"))] pub align: Alignment, - #[stable(feature = "rust1", since = "1.0.0")] + #[cfg_attr(stage0, stable(feature = "rust1", since = "1.0.0"))] pub flags: u32, - #[stable(feature = "rust1", since = "1.0.0")] + #[cfg_attr(stage0, stable(feature = "rust1", since = "1.0.0"))] pub precision: Count, - #[stable(feature = "rust1", since = "1.0.0")] + #[cfg_attr(stage0, stable(feature = "rust1", since = "1.0.0"))] pub width: Count, } /// Possible alignments that can be requested as part of a formatting directive. #[derive(Copy, Clone, PartialEq)] -#[stable(feature = "rust1", since = "1.0.0")] +#[cfg_attr(stage0, stable(feature = "rust1", since = "1.0.0"))] pub enum Alignment { /// Indication that contents should be left-aligned. - #[stable(feature = "rust1", since = "1.0.0")] + #[cfg_attr(stage0, stable(feature = "rust1", since = "1.0.0"))] Left, /// Indication that contents should be right-aligned. - #[stable(feature = "rust1", since = "1.0.0")] + #[cfg_attr(stage0, stable(feature = "rust1", since = "1.0.0"))] Right, /// Indication that contents should be center-aligned. - #[stable(feature = "rust1", since = "1.0.0")] + #[cfg_attr(stage0, stable(feature = "rust1", since = "1.0.0"))] Center, /// No alignment was requested. - #[stable(feature = "rust1", since = "1.0.0")] + #[cfg_attr(stage0, stable(feature = "rust1", since = "1.0.0"))] Unknown, } #[derive(Copy, Clone)] -#[stable(feature = "rust1", since = "1.0.0")] +#[cfg_attr(stage0, stable(feature = "rust1", since = "1.0.0"))] pub enum Count { - #[stable(feature = "rust1", since = "1.0.0")] + #[cfg_attr(stage0, stable(feature = "rust1", since = "1.0.0"))] Is(usize), - #[stable(feature = "rust1", since = "1.0.0")] + #[cfg_attr(stage0, stable(feature = "rust1", since = "1.0.0"))] Param(usize), - #[stable(feature = "rust1", since = "1.0.0")] + #[cfg_attr(stage0, stable(feature = "rust1", since = "1.0.0"))] NextParam, - #[stable(feature = "rust1", since = "1.0.0")] + #[cfg_attr(stage0, stable(feature = "rust1", since = "1.0.0"))] Implied, } #[derive(Copy, Clone)] -#[stable(feature = "rust1", since = "1.0.0")] +#[cfg_attr(stage0, stable(feature = "rust1", since = "1.0.0"))] pub enum Position { - #[stable(feature = "rust1", since = "1.0.0")] + #[cfg_attr(stage0, stable(feature = "rust1", since = "1.0.0"))] Next, - #[stable(feature = "rust1", since = "1.0.0")] + #[cfg_attr(stage0, stable(feature = "rust1", since = "1.0.0"))] At(usize) }