diff options
| author | bors <bors@rust-lang.org> | 2015-01-10 10:05:05 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2015-01-10 10:05:05 +0000 |
| commit | 3975af567a73966fce7967c19b428086234241b4 (patch) | |
| tree | b375b7fed35a18c7acf8c3195e2d344078cefcbb /src | |
| parent | d36dc159522ea5e587c5c7f6e4df080f063e9b48 (diff) | |
| parent | 719c5d7bdeef7a33640e91af2305b2c913b83627 (diff) | |
| download | rust-3975af567a73966fce7967c19b428086234241b4.tar.gz rust-3975af567a73966fce7967c19b428086234241b4.zip | |
auto merge of #20837 : huonw/rust/remove-unused-lifetime, r=nikomatsakis
Diffstat (limited to 'src')
| -rw-r--r-- | src/libcore/fmt/mod.rs | 23 | ||||
| -rw-r--r-- | src/libcore/fmt/rt.rs | 9 | ||||
| -rw-r--r-- | src/libsyntax/ext/format.rs | 8 |
3 files changed, 34 insertions, 6 deletions
diff --git a/src/libcore/fmt/mod.rs b/src/libcore/fmt/mod.rs index 67d5482898e..a0ec9e5f151 100644 --- a/src/libcore/fmt/mod.rs +++ b/src/libcore/fmt/mod.rs @@ -180,6 +180,7 @@ impl<'a> Arguments<'a> { /// unsafety, but will ignore invalid . #[doc(hidden)] #[inline] #[unstable = "implementation detail of the `format_args!` macro"] + #[cfg(stage0)] // SNAP 9e4e524 pub fn with_placeholders(pieces: &'a [&'a str], fmt: &'a [rt::Argument<'a>], args: &'a [Argument<'a>]) -> Arguments<'a> { @@ -189,6 +190,24 @@ impl<'a> Arguments<'a> { args: args } } + /// This function is used to specify nonstandard formatting parameters. + /// The `pieces` array must be at least as long as `fmt` to construct + /// a valid Arguments structure. Also, any `Count` within `fmt` that is + /// `CountIsParam` or `CountIsNextParam` has to point to an argument + /// created with `argumentuint`. However, failing to do so doesn't cause + /// unsafety, but will ignore invalid . + #[doc(hidden)] #[inline] + #[unstable = "implementation detail of the `format_args!` macro"] + #[cfg(not(stage0))] + pub fn with_placeholders(pieces: &'a [&'a str], + fmt: &'a [rt::Argument], + args: &'a [Argument<'a>]) -> Arguments<'a> { + Arguments { + pieces: pieces, + fmt: Some(fmt), + args: args + } + } } /// This structure represents a safely precompiled version of a format string @@ -207,7 +226,11 @@ pub struct Arguments<'a> { pieces: &'a [&'a str], // Placeholder specs, or `None` if all specs are default (as in "{}{}"). + // SNAP 9e4e524 + #[cfg(stage0)] fmt: Option<&'a [rt::Argument<'a>]>, + #[cfg(not(stage0))] + fmt: Option<&'a [rt::Argument]>, // Dynamic arguments for interpolation, to be interleaved with string // pieces. (Every argument is preceded by a string piece.) diff --git a/src/libcore/fmt/rt.rs b/src/libcore/fmt/rt.rs index 8d8e8c4b703..2abf921eaf2 100644 --- a/src/libcore/fmt/rt.rs +++ b/src/libcore/fmt/rt.rs @@ -21,8 +21,17 @@ pub use self::Count::*; pub use self::Position::*; pub use self::Flag::*; +// SNAP 9e4e524 #[doc(hidden)] #[derive(Copy)] +#[cfg(not(stage0))] +pub struct Argument { + pub position: Position, + pub format: FormatSpec, +} +#[doc(hidden)] +#[derive(Copy)] +#[cfg(stage0)] pub struct Argument<'a> { pub position: Position, pub format: FormatSpec, diff --git a/src/libsyntax/ext/format.rs b/src/libsyntax/ext/format.rs index 637b6d4649d..f512b33f024 100644 --- a/src/libsyntax/ext/format.rs +++ b/src/libsyntax/ext/format.rs @@ -579,13 +579,9 @@ impl<'a, 'b> Context<'a, 'b> { } else { // Build up the static array which will store our precompiled // nonstandard placeholders, if there are any. - let piece_ty = self.ecx.ty_path(self.ecx.path_all( + let piece_ty = self.ecx.ty_path(self.ecx.path_global( self.fmtsp, - true, Context::rtpath(self.ecx, "Argument"), - vec![static_lifetime], - vec![], - vec![] - )); + Context::rtpath(self.ecx, "Argument"))); let fmt = Context::static_array(self.ecx, "__STATIC_FMTARGS", piece_ty, |
