about summary refs log tree commit diff
path: root/src/libcore
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2014-10-31 06:01:41 +0000
committerbors <bors@rust-lang.org>2014-10-31 06:01:41 +0000
commit065caf34f5ff29e04605f95d9c5d511af219439a (patch)
tree6a97aad0062961e3d134c9a616c06eb85721d9e7 /src/libcore
parent221fc1e3cdcc208e1bb7debcc2de27d47c847747 (diff)
parenteef7e970172df38358cf25c386a4ec79a7b61b0b (diff)
downloadrust-065caf34f5ff29e04605f95d9c5d511af219439a.tar.gz
rust-065caf34f5ff29e04605f95d9c5d511af219439a.zip
auto merge of #18431 : japaric/rust/show, r=alexcrichton
r? @aturon 
cc #16918
Diffstat (limited to 'src/libcore')
-rw-r--r--src/libcore/fmt/mod.rs56
1 files changed, 28 insertions, 28 deletions
diff --git a/src/libcore/fmt/mod.rs b/src/libcore/fmt/mod.rs
index 65107d6ab7d..5000b020985 100644
--- a/src/libcore/fmt/mod.rs
+++ b/src/libcore/fmt/mod.rs
@@ -16,7 +16,7 @@ use any;
 use cell::{Cell, Ref, RefMut};
 use collections::Collection;
 use iter::{Iterator, range};
-use kinds::Copy;
+use kinds::{Copy, Sized};
 use mem;
 use option::{Option, Some, None};
 use ops::Deref;
@@ -168,85 +168,85 @@ impl<'a> Show for Arguments<'a> {
 /// When a format is not otherwise specified, types are formatted by ascribing
 /// to this trait. There is not an explicit way of selecting this trait to be
 /// used for formatting, it is only if no other format is specified.
-pub trait Show {
+pub trait Show for Sized? {
     /// Formats the value using the given formatter.
     fn fmt(&self, &mut Formatter) -> Result;
 }
 
 /// Format trait for the `b` character
-pub trait Bool {
+pub trait Bool for Sized? {
     /// Formats the value using the given formatter.
     fn fmt(&self, &mut Formatter) -> Result;
 }
 
 /// Format trait for the `c` character
-pub trait Char {
+pub trait Char for Sized? {
     /// Formats the value using the given formatter.
     fn fmt(&self, &mut Formatter) -> Result;
 }
 
 /// Format trait for the `i` and `d` characters
-pub trait Signed {
+pub trait Signed for Sized? {
     /// Formats the value using the given formatter.
     fn fmt(&self, &mut Formatter) -> Result;
 }
 
 /// Format trait for the `u` character
-pub trait Unsigned {
+pub trait Unsigned for Sized? {
     /// Formats the value using the given formatter.
     fn fmt(&self, &mut Formatter) -> Result;
 }
 
 /// Format trait for the `o` character
-pub trait Octal {
+pub trait Octal for Sized? {
     /// Formats the value using the given formatter.
     fn fmt(&self, &mut Formatter) -> Result;
 }
 
 /// Format trait for the `t` character
-pub trait Binary {
+pub trait Binary for Sized? {
     /// Formats the value using the given formatter.
     fn fmt(&self, &mut Formatter) -> Result;
 }
 
 /// Format trait for the `x` character
-pub trait LowerHex {
+pub trait LowerHex for Sized? {
     /// Formats the value using the given formatter.
     fn fmt(&self, &mut Formatter) -> Result;
 }
 
 /// Format trait for the `X` character
-pub trait UpperHex {
+pub trait UpperHex for Sized? {
     /// Formats the value using the given formatter.
     fn fmt(&self, &mut Formatter) -> Result;
 }
 
 /// Format trait for the `s` character
-pub trait String {
+pub trait String for Sized? {
     /// Formats the value using the given formatter.
     fn fmt(&self, &mut Formatter) -> Result;
 }
 
 /// Format trait for the `p` character
-pub trait Pointer {
+pub trait Pointer for Sized? {
     /// Formats the value using the given formatter.
     fn fmt(&self, &mut Formatter) -> Result;
 }
 
 /// Format trait for the `f` character
-pub trait Float {
+pub trait Float for Sized? {
     /// Formats the value using the given formatter.
     fn fmt(&self, &mut Formatter) -> Result;
 }
 
 /// Format trait for the `e` character
-pub trait LowerExp {
+pub trait LowerExp for Sized? {
     /// Formats the value using the given formatter.
     fn fmt(&self, &mut Formatter) -> Result;
 }
 
 /// Format trait for the `E` character
-pub trait UpperExp {
+pub trait UpperExp for Sized? {
     /// Formats the value using the given formatter.
     fn fmt(&self, &mut Formatter) -> Result;
 }
@@ -257,7 +257,7 @@ macro_rules! uniform_fn_call_workaround {
     ($( $name: ident, $trait_: ident; )*) => {
         $(
             #[doc(hidden)]
-            pub fn $name<T: $trait_>(x: &T, fmt: &mut Formatter) -> Result {
+            pub fn $name<Sized? T: $trait_>(x: &T, fmt: &mut Formatter) -> Result {
                 x.fmt(fmt)
             }
             )*
@@ -583,10 +583,10 @@ pub fn argumentuint<'a>(s: &'a uint) -> Argument<'a> {
 
 // Implementations of the core formatting traits
 
-impl<'a, T: Show> Show for &'a T {
+impl<'a, Sized? T: Show> Show for &'a T {
     fn fmt(&self, f: &mut Formatter) -> Result { secret_show(*self, f) }
 }
-impl<'a, T: Show> Show for &'a mut T {
+impl<'a, Sized? T: Show> Show for &'a mut T {
     fn fmt(&self, f: &mut Formatter) -> Result { secret_show(&**self, f) }
 }
 impl<'a> Show for &'a Show+'a {
@@ -599,12 +599,18 @@ impl Bool for bool {
     }
 }
 
-impl<'a, T: str::Str> String for T {
+impl<T: str::Str> String for T {
     fn fmt(&self, f: &mut Formatter) -> Result {
         f.pad(self.as_slice())
     }
 }
 
+impl String for str {
+    fn fmt(&self, f: &mut Formatter) -> Result {
+        f.pad(self)
+    }
+}
+
 impl Char for char {
     fn fmt(&self, f: &mut Formatter) -> Result {
         use char::Char;
@@ -708,13 +714,13 @@ floating!(f64)
 // Implementation of Show for various core types
 
 macro_rules! delegate(($ty:ty to $other:ident) => {
-    impl<'a> Show for $ty {
+    impl Show for $ty {
         fn fmt(&self, f: &mut Formatter) -> Result {
             (concat_idents!(secret_, $other)(self, f))
         }
     }
 })
-delegate!(&'a str to string)
+delegate!(str to string)
 delegate!(bool to bool)
 delegate!(char to char)
 delegate!(f32 to float)
@@ -761,7 +767,7 @@ impl<'a> Show for &'a any::Any+'a {
     fn fmt(&self, f: &mut Formatter) -> Result { f.pad("&Any") }
 }
 
-impl<'a, T: Show> Show for &'a [T] {
+impl<T: Show> Show for [T] {
     fn fmt(&self, f: &mut Formatter) -> Result {
         if f.flags & (1 << (rt::FlagAlternate as uint)) == 0 {
             try!(write!(f, "["));
@@ -782,12 +788,6 @@ impl<'a, T: Show> Show for &'a [T] {
     }
 }
 
-impl<'a, T: Show> Show for &'a mut [T] {
-    fn fmt(&self, f: &mut Formatter) -> Result {
-        secret_show(&self.as_slice(), f)
-    }
-}
-
 impl Show for () {
     fn fmt(&self, f: &mut Formatter) -> Result {
         f.pad("()")