diff options
| author | Masaki Hara <ackie.h.gmai@gmail.com> | 2017-07-02 08:41:39 +0900 |
|---|---|---|
| committer | Masaki Hara <ackie.h.gmai@gmail.com> | 2017-07-02 08:41:39 +0900 |
| commit | 01b6c9459ca3f7857f211aa47f8fbf3b52ed1c47 (patch) | |
| tree | dbd55660eaf71e3df291dbe597677966ca0bc9f0 /src/libcore/fmt/mod.rs | |
| parent | 7a2c09b6f5282335fc0000f5504fbed2f70e89c8 (diff) | |
| download | rust-01b6c9459ca3f7857f211aa47f8fbf3b52ed1c47.tar.gz rust-01b6c9459ca3f7857f211aa47f8fbf3b52ed1c47.zip | |
Implement Eq/Hash/Debug etc. for unsized tuples.
Diffstat (limited to 'src/libcore/fmt/mod.rs')
| -rw-r--r-- | src/libcore/fmt/mod.rs | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/libcore/fmt/mod.rs b/src/libcore/fmt/mod.rs index bcc6d53c81d..750e86114c4 100644 --- a/src/libcore/fmt/mod.rs +++ b/src/libcore/fmt/mod.rs @@ -1627,13 +1627,13 @@ macro_rules! tuple { () => (); ( $($name:ident,)+ ) => ( #[stable(feature = "rust1", since = "1.0.0")] - impl<$($name:Debug),*> Debug for ($($name,)*) { + impl<$($name:Debug),*> Debug for ($($name,)*) where last_type!($($name,)+): ?Sized { #[allow(non_snake_case, unused_assignments, deprecated)] fn fmt(&self, f: &mut Formatter) -> Result { let mut builder = f.debug_tuple(""); let ($(ref $name,)*) = *self; $( - builder.field($name); + builder.field(&$name); )* builder.finish() @@ -1643,6 +1643,11 @@ macro_rules! tuple { ) } +macro_rules! last_type { + ($a:ident,) => { $a }; + ($a:ident, $($rest_a:ident,)+) => { last_type!($($rest_a,)+) }; +} + tuple! { T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, } #[stable(feature = "rust1", since = "1.0.0")] |
