diff --git a/src/liballoc/boxed.rs b/src/liballoc/boxed.rs index fc6929f896e..8a39be8fae8 100644 --- a/src/liballoc/boxed.rs +++ b/src/liballoc/boxed.rs @@ -445,7 +445,7 @@ impl<'a> From<&'a str> for Box { } } -#[stable(feature = "boxed_str_conv", since = "1.18.0")] +#[stable(feature = "boxed_str_conv", since = "1.19.0")] impl From> for Box<[u8]> { fn from(s: Box) -> Self { unsafe { diff --git a/src/libcollections/string.rs b/src/libcollections/string.rs index 31ab04e9f3b..55f0e01548f 100644 --- a/src/libcollections/string.rs +++ b/src/libcollections/string.rs @@ -1869,28 +1869,28 @@ impl ops::Index> for String { } } -#[stable(feature = "derefmut_for_string", since = "1.2.0")] +#[stable(feature = "derefmut_for_string", since = "1.3.0")] impl ops::IndexMut> for String { #[inline] fn index_mut(&mut self, index: ops::Range) -> &mut str { &mut self[..][index] } } -#[stable(feature = "derefmut_for_string", since = "1.2.0")] +#[stable(feature = "derefmut_for_string", since = "1.3.0")] impl ops::IndexMut> for String { #[inline] fn index_mut(&mut self, index: ops::RangeTo) -> &mut str { &mut self[..][index] } } -#[stable(feature = "derefmut_for_string", since = "1.2.0")] +#[stable(feature = "derefmut_for_string", since = "1.3.0")] impl ops::IndexMut> for String { #[inline] fn index_mut(&mut self, index: ops::RangeFrom) -> &mut str { &mut self[..][index] } } -#[stable(feature = "derefmut_for_string", since = "1.2.0")] +#[stable(feature = "derefmut_for_string", since = "1.3.0")] impl ops::IndexMut for String { #[inline] fn index_mut(&mut self, _index: ops::RangeFull) -> &mut str { @@ -1922,7 +1922,7 @@ impl ops::Deref for String { } } -#[stable(feature = "derefmut_for_string", since = "1.2.0")] +#[stable(feature = "derefmut_for_string", since = "1.3.0")] impl ops::DerefMut for String { #[inline] fn deref_mut(&mut self) -> &mut str { @@ -2080,14 +2080,14 @@ impl<'a> From<&'a str> for String { // note: test pulls in libstd, which causes errors here #[cfg(not(test))] -#[stable(feature = "string_from_box", since = "1.17.0")] +#[stable(feature = "string_from_box", since = "1.18.0")] impl From> for String { fn from(s: Box) -> String { s.into_string() } } -#[stable(feature = "box_from_str", since = "1.17.0")] +#[stable(feature = "box_from_str", since = "1.18.0")] impl Into> for String { fn into(self) -> Box { self.into_boxed_str() diff --git a/src/libcollections/vec.rs b/src/libcollections/vec.rs index 7ec5c29de6b..38bc8104cd7 100644 --- a/src/libcollections/vec.rs +++ b/src/libcollections/vec.rs @@ -2034,7 +2034,7 @@ impl<'a, T: Clone> From<&'a [T]> for Vec { } } -#[stable(feature = "vec_from_mut", since = "1.21.0")] +#[stable(feature = "vec_from_mut", since = "1.19.0")] impl<'a, T: Clone> From<&'a mut [T]> for Vec { #[cfg(not(test))] fn from(s: &'a mut [T]) -> Vec { @@ -2055,14 +2055,14 @@ impl<'a, T> From> for Vec where [T]: ToOwned> { // note: test pulls in libstd, which causes errors here #[cfg(not(test))] -#[stable(feature = "vec_from_box", since = "1.17.0")] +#[stable(feature = "vec_from_box", since = "1.18.0")] impl From> for Vec { fn from(s: Box<[T]>) -> Vec { s.into_vec() } } -#[stable(feature = "box_from_vec", since = "1.17.0")] +#[stable(feature = "box_from_vec", since = "1.18.0")] impl Into> for Vec { fn into(self) -> Box<[T]> { self.into_boxed_slice() @@ -2080,14 +2080,14 @@ impl<'a> From<&'a str> for Vec { // Clone-on-write //////////////////////////////////////////////////////////////////////////////// -#[stable(feature = "cow_from_vec", since = "1.7.0")] +#[stable(feature = "cow_from_vec", since = "1.8.0")] impl<'a, T: Clone> From<&'a [T]> for Cow<'a, [T]> { fn from(s: &'a [T]) -> Cow<'a, [T]> { Cow::Borrowed(s) } } -#[stable(feature = "cow_from_vec", since = "1.7.0")] +#[stable(feature = "cow_from_vec", since = "1.8.0")] impl<'a, T: Clone> From> for Cow<'a, [T]> { fn from(v: Vec) -> Cow<'a, [T]> { Cow::Owned(v) diff --git a/src/libcore/cell.rs b/src/libcore/cell.rs index 7886f90b66e..ea480f38947 100644 --- a/src/libcore/cell.rs +++ b/src/libcore/cell.rs @@ -1145,7 +1145,7 @@ impl UnsafeCell { } } -#[stable(feature = "unsafe_cell_default", since = "1.9.0")] +#[stable(feature = "unsafe_cell_default", since = "1.10.0")] impl Default for UnsafeCell { /// Creates an `UnsafeCell`, with the `Default` value for T. fn default() -> UnsafeCell { diff --git a/src/libcore/iter/mod.rs b/src/libcore/iter/mod.rs index 273f9d0e6f6..b90d08f948e 100644 --- a/src/libcore/iter/mod.rs +++ b/src/libcore/iter/mod.rs @@ -1655,7 +1655,7 @@ impl Iterator for Skip where I: Iterator { #[stable(feature = "rust1", since = "1.0.0")] impl ExactSizeIterator for Skip where I: ExactSizeIterator {} -#[stable(feature = "double_ended_skip_iterator", since = "1.8.0")] +#[stable(feature = "double_ended_skip_iterator", since = "1.9.0")] impl DoubleEndedIterator for Skip where I: DoubleEndedIterator + ExactSizeIterator { fn next_back(&mut self) -> Option { if self.len() > 0 { diff --git a/src/libcore/num/mod.rs b/src/libcore/num/mod.rs index 8b4002fe9af..be093cca6a1 100644 --- a/src/libcore/num/mod.rs +++ b/src/libcore/num/mod.rs @@ -2682,8 +2682,8 @@ pub use num::dec2flt::ParseFloatError; // Conversions T -> T are covered by a blanket impl and therefore excluded // Some conversions from and to usize/isize are not implemented due to portability concerns macro_rules! impl_from { - ($Small: ty, $Large: ty) => { - #[stable(feature = "lossless_prim_conv", since = "1.5.0")] + ($Small: ty, $Large: ty, #[$attr:meta]) => { + #[$attr] impl From<$Small> for $Large { #[inline] fn from(small: $Small) -> $Large { @@ -2694,60 +2694,60 @@ macro_rules! impl_from { } // Unsigned -> Unsigned -impl_from! { u8, u16 } -impl_from! { u8, u32 } -impl_from! { u8, u64 } -impl_from! { u8, u128 } -impl_from! { u8, usize } -impl_from! { u16, u32 } -impl_from! { u16, u64 } -impl_from! { u16, u128 } -impl_from! { u32, u64 } -impl_from! { u32, u128 } -impl_from! { u64, u128 } +impl_from! { u8, u16, #[stable(feature = "lossless_int_conv", since = "1.5.0")] } +impl_from! { u8, u32, #[stable(feature = "lossless_int_conv", since = "1.5.0")] } +impl_from! { u8, u64, #[stable(feature = "lossless_int_conv", since = "1.5.0")] } +impl_from! { u8, u128, #[unstable(feature = "i128", issue = "35118")] } +impl_from! { u8, usize, #[stable(feature = "lossless_int_conv", since = "1.5.0")] } +impl_from! { u16, u32, #[stable(feature = "lossless_int_conv", since = "1.5.0")] } +impl_from! { u16, u64, #[stable(feature = "lossless_int_conv", since = "1.5.0")] } +impl_from! { u16, u128, #[unstable(feature = "i128", issue = "35118")] } +impl_from! { u32, u64, #[stable(feature = "lossless_int_conv", since = "1.5.0")] } +impl_from! { u32, u128, #[unstable(feature = "i128", issue = "35118")] } +impl_from! { u64, u128, #[unstable(feature = "i128", issue = "35118")] } // Signed -> Signed -impl_from! { i8, i16 } -impl_from! { i8, i32 } -impl_from! { i8, i64 } -impl_from! { i8, i128 } -impl_from! { i8, isize } -impl_from! { i16, i32 } -impl_from! { i16, i64 } -impl_from! { i16, i128 } -impl_from! { i32, i64 } -impl_from! { i32, i128 } -impl_from! { i64, i128 } +impl_from! { i8, i16, #[stable(feature = "lossless_int_conv", since = "1.5.0")] } +impl_from! { i8, i32, #[stable(feature = "lossless_int_conv", since = "1.5.0")] } +impl_from! { i8, i64, #[stable(feature = "lossless_int_conv", since = "1.5.0")] } +impl_from! { i8, i128, #[unstable(feature = "i128", issue = "35118")] } +impl_from! { i8, isize, #[stable(feature = "lossless_int_conv", since = "1.5.0")] } +impl_from! { i16, i32, #[stable(feature = "lossless_int_conv", since = "1.5.0")] } +impl_from! { i16, i64, #[stable(feature = "lossless_int_conv", since = "1.5.0")] } +impl_from! { i16, i128, #[unstable(feature = "i128", issue = "35118")] } +impl_from! { i32, i64, #[stable(feature = "lossless_int_conv", since = "1.5.0")] } +impl_from! { i32, i128, #[unstable(feature = "i128", issue = "35118")] } +impl_from! { i64, i128, #[unstable(feature = "i128", issue = "35118")] } // Unsigned -> Signed -impl_from! { u8, i16 } -impl_from! { u8, i32 } -impl_from! { u8, i64 } -impl_from! { u8, i128 } -impl_from! { u16, i32 } -impl_from! { u16, i64 } -impl_from! { u16, i128 } -impl_from! { u32, i64 } -impl_from! { u32, i128 } -impl_from! { u64, i128 } +impl_from! { u8, i16, #[stable(feature = "lossless_int_conv", since = "1.5.0")] } +impl_from! { u8, i32, #[stable(feature = "lossless_int_conv", since = "1.5.0")] } +impl_from! { u8, i64, #[stable(feature = "lossless_int_conv", since = "1.5.0")] } +impl_from! { u8, i128, #[unstable(feature = "i128", issue = "35118")] } +impl_from! { u16, i32, #[stable(feature = "lossless_int_conv", since = "1.5.0")] } +impl_from! { u16, i64, #[stable(feature = "lossless_int_conv", since = "1.5.0")] } +impl_from! { u16, i128, #[unstable(feature = "i128", issue = "35118")] } +impl_from! { u32, i64, #[stable(feature = "lossless_int_conv", since = "1.5.0")] } +impl_from! { u32, i128, #[unstable(feature = "i128", issue = "35118")] } +impl_from! { u64, i128, #[unstable(feature = "i128", issue = "35118")] } // Note: integers can only be represented with full precision in a float if // they fit in the significand, which is 24 bits in f32 and 53 bits in f64. // Lossy float conversions are not implemented at this time. // Signed -> Float -impl_from! { i8, f32 } -impl_from! { i8, f64 } -impl_from! { i16, f32 } -impl_from! { i16, f64 } -impl_from! { i32, f64 } +impl_from! { i8, f32, #[stable(feature = "lossless_float_conv", since = "1.6.0")] } +impl_from! { i8, f64, #[stable(feature = "lossless_float_conv", since = "1.6.0")] } +impl_from! { i16, f32, #[stable(feature = "lossless_float_conv", since = "1.6.0")] } +impl_from! { i16, f64, #[stable(feature = "lossless_float_conv", since = "1.6.0")] } +impl_from! { i32, f64, #[stable(feature = "lossless_float_conv", since = "1.6.0")] } // Unsigned -> Float -impl_from! { u8, f32 } -impl_from! { u8, f64 } -impl_from! { u16, f32 } -impl_from! { u16, f64 } -impl_from! { u32, f64 } +impl_from! { u8, f32, #[stable(feature = "lossless_float_conv", since = "1.6.0")] } +impl_from! { u8, f64, #[stable(feature = "lossless_float_conv", since = "1.6.0")] } +impl_from! { u16, f32, #[stable(feature = "lossless_float_conv", since = "1.6.0")] } +impl_from! { u16, f64, #[stable(feature = "lossless_float_conv", since = "1.6.0")] } +impl_from! { u32, f64, #[stable(feature = "lossless_float_conv", since = "1.6.0")] } // Float -> Float -impl_from! { f32, f64 } +impl_from! { f32, f64, #[stable(feature = "lossless_float_conv", since = "1.6.0")] } diff --git a/src/libcore/slice/mod.rs b/src/libcore/slice/mod.rs index e15eb8f2444..24ebfeb62e2 100644 --- a/src/libcore/slice/mod.rs +++ b/src/libcore/slice/mod.rs @@ -1450,7 +1450,7 @@ impl<'a, T> Clone for Iter<'a, T> { fn clone(&self) -> Iter<'a, T> { Iter { ptr: self.ptr, end: self.end, _marker: self._marker } } } -#[stable(feature = "slice_iter_as_ref", since = "1.12.0")] +#[stable(feature = "slice_iter_as_ref", since = "1.13.0")] impl<'a, T> AsRef<[T]> for Iter<'a, T> { fn as_ref(&self) -> &[T] { self.as_slice() diff --git a/src/libcore/str/mod.rs b/src/libcore/str/mod.rs index 6b627430904..7fb941c091f 100644 --- a/src/libcore/str/mod.rs +++ b/src/libcore/str/mod.rs @@ -1597,7 +1597,7 @@ mod traits { /// byte offset of a character (as defined by `is_char_boundary`). /// Requires that `begin <= end` and `end <= len` where `len` is the /// length of the string. - #[stable(feature = "derefmut_for_string", since = "1.2.0")] + #[stable(feature = "derefmut_for_string", since = "1.3.0")] impl ops::IndexMut> for str { #[inline] fn index_mut(&mut self, index: ops::Range) -> &mut str { @@ -1632,7 +1632,7 @@ mod traits { /// `end`. /// /// Equivalent to `&mut self[0 .. end]`. - #[stable(feature = "derefmut_for_string", since = "1.2.0")] + #[stable(feature = "derefmut_for_string", since = "1.3.0")] impl ops::IndexMut> for str { #[inline] fn index_mut(&mut self, index: ops::RangeTo) -> &mut str { @@ -1672,7 +1672,7 @@ mod traits { /// to the end of the string. /// /// Equivalent to `&mut self[begin .. len]`. - #[stable(feature = "derefmut_for_string", since = "1.2.0")] + #[stable(feature = "derefmut_for_string", since = "1.3.0")] impl ops::IndexMut> for str { #[inline] fn index_mut(&mut self, index: ops::RangeFrom) -> &mut str { @@ -1708,7 +1708,7 @@ mod traits { /// never panic. /// /// Equivalent to `&mut self[0 .. len]`. - #[stable(feature = "derefmut_for_string", since = "1.2.0")] + #[stable(feature = "derefmut_for_string", since = "1.3.0")] impl ops::IndexMut for str { #[inline] fn index_mut(&mut self, _index: ops::RangeFull) -> &mut str { diff --git a/src/libstd/env.rs b/src/libstd/env.rs index 64eb52e28bc..27255bef849 100644 --- a/src/libstd/env.rs +++ b/src/libstd/env.rs @@ -680,7 +680,7 @@ impl ExactSizeIterator for Args { fn is_empty(&self) -> bool { self.inner.is_empty() } } -#[stable(feature = "env_iterators", since = "1.11.0")] +#[stable(feature = "env_iterators", since = "1.12.0")] impl DoubleEndedIterator for Args { fn next_back(&mut self) -> Option { self.inner.next_back().map(|s| s.into_string().unwrap()) @@ -707,7 +707,7 @@ impl ExactSizeIterator for ArgsOs { fn is_empty(&self) -> bool { self.inner.is_empty() } } -#[stable(feature = "env_iterators", since = "1.11.0")] +#[stable(feature = "env_iterators", since = "1.12.0")] impl DoubleEndedIterator for ArgsOs { fn next_back(&mut self) -> Option { self.inner.next_back() } } diff --git a/src/libstd/error.rs b/src/libstd/error.rs index 9ff7d746733..f56e3a5d780 100644 --- a/src/libstd/error.rs +++ b/src/libstd/error.rs @@ -193,7 +193,7 @@ impl From for Box { } } -#[stable(feature = "string_box_error", since = "1.7.0")] +#[stable(feature = "string_box_error", since = "1.6.0")] impl From for Box { fn from(str_err: String) -> Box { let err1: Box = From::from(str_err); @@ -209,7 +209,7 @@ impl<'a, 'b> From<&'b str> for Box { } } -#[stable(feature = "string_box_error", since = "1.7.0")] +#[stable(feature = "string_box_error", since = "1.6.0")] impl<'a> From<&'a str> for Box { fn from(err: &'a str) -> Box { From::from(String::from(err)) @@ -282,7 +282,7 @@ impl Error for char::DecodeUtf16Error { } } -#[stable(feature = "box_error", since = "1.7.0")] +#[stable(feature = "box_error", since = "1.8.0")] impl Error for Box { fn description(&self) -> &str { Error::description(&**self) diff --git a/src/libstd/ffi/c_str.rs b/src/libstd/ffi/c_str.rs index 44b62593fa3..f40475a4142 100644 --- a/src/libstd/ffi/c_str.rs +++ b/src/libstd/ffi/c_str.rs @@ -419,14 +419,14 @@ impl<'a> From<&'a CStr> for Box { } } -#[stable(feature = "c_string_from_box", since = "1.17.0")] +#[stable(feature = "c_string_from_box", since = "1.18.0")] impl From> for CString { fn from(s: Box) -> CString { s.into_c_string() } } -#[stable(feature = "box_from_c_string", since = "1.17.0")] +#[stable(feature = "box_from_c_string", since = "1.18.0")] impl Into> for CString { fn into(self) -> Box { self.into_boxed_c_str() diff --git a/src/libstd/ffi/os_str.rs b/src/libstd/ffi/os_str.rs index b90192dd8af..eaf0502a577 100644 --- a/src/libstd/ffi/os_str.rs +++ b/src/libstd/ffi/os_str.rs @@ -529,14 +529,14 @@ impl<'a> From<&'a OsStr> for Box { } } -#[stable(feature = "os_string_from_box", since = "1.17.0")] +#[stable(feature = "os_string_from_box", since = "1.18.0")] impl<'a> From> for OsString { fn from(boxed: Box) -> OsString { boxed.into_os_string() } } -#[stable(feature = "box_from_c_string", since = "1.17.0")] +#[stable(feature = "box_from_os_string", since = "1.18.0")] impl Into> for OsString { fn into(self) -> Box { self.into_boxed_os_str() diff --git a/src/libstd/macros.rs b/src/libstd/macros.rs index ef78ea6dfe8..df3fce0da76 100644 --- a/src/libstd/macros.rs +++ b/src/libstd/macros.rs @@ -143,7 +143,7 @@ macro_rules! println { /// /// Panics if writing to `io::stderr` fails. #[macro_export] -#[stable(feature = "eprint", since="1.18.0")] +#[stable(feature = "eprint", since = "1.19.0")] #[allow_internal_unstable] macro_rules! eprint { ($($arg:tt)*) => ($crate::io::_eprint(format_args!($($arg)*))); @@ -162,7 +162,7 @@ macro_rules! eprint { /// /// Panics if writing to `io::stderr` fails. #[macro_export] -#[stable(feature = "eprint", since="1.18.0")] +#[stable(feature = "eprint", since = "1.19.0")] macro_rules! eprintln { () => (eprint!("\n")); ($fmt:expr) => (eprint!(concat!($fmt, "\n"))); diff --git a/src/libstd/net/ip.rs b/src/libstd/net/ip.rs index c46fe4a58c7..1e5368896af 100644 --- a/src/libstd/net/ip.rs +++ b/src/libstd/net/ip.rs @@ -657,7 +657,7 @@ impl PartialEq for Ipv4Addr { } } -#[stable(feature = "ip_cmp", since = "1.15.0")] +#[stable(feature = "ip_cmp", since = "1.16.0")] impl PartialEq for IpAddr { fn eq(&self, other: &Ipv4Addr) -> bool { match *self { @@ -667,7 +667,7 @@ impl PartialEq for IpAddr { } } -#[stable(feature = "ip_cmp", since = "1.15.0")] +#[stable(feature = "ip_cmp", since = "1.16.0")] impl PartialEq for Ipv4Addr { fn eq(&self, other: &IpAddr) -> bool { match *other { @@ -694,7 +694,7 @@ impl PartialOrd for Ipv4Addr { } } -#[stable(feature = "ip_cmp", since = "1.15.0")] +#[stable(feature = "ip_cmp", since = "1.16.0")] impl PartialOrd for IpAddr { fn partial_cmp(&self, other: &Ipv4Addr) -> Option { match *self { @@ -704,7 +704,7 @@ impl PartialOrd for IpAddr { } } -#[stable(feature = "ip_cmp", since = "1.15.0")] +#[stable(feature = "ip_cmp", since = "1.16.0")] impl PartialOrd for Ipv4Addr { fn partial_cmp(&self, other: &IpAddr) -> Option { match *other { @@ -1200,7 +1200,7 @@ impl PartialEq for Ipv6Addr { } } -#[stable(feature = "ip_cmp", since = "1.15.0")] +#[stable(feature = "ip_cmp", since = "1.16.0")] impl PartialEq for Ipv6Addr { fn eq(&self, other: &IpAddr) -> bool { match *other { @@ -1210,7 +1210,7 @@ impl PartialEq for Ipv6Addr { } } -#[stable(feature = "ip_cmp", since = "1.15.0")] +#[stable(feature = "ip_cmp", since = "1.16.0")] impl PartialEq for IpAddr { fn eq(&self, other: &Ipv6Addr) -> bool { match *self { @@ -1237,7 +1237,7 @@ impl PartialOrd for Ipv6Addr { } } -#[stable(feature = "ip_cmp", since = "1.15.0")] +#[stable(feature = "ip_cmp", since = "1.16.0")] impl PartialOrd for IpAddr { fn partial_cmp(&self, other: &Ipv6Addr) -> Option { match *self { @@ -1247,7 +1247,7 @@ impl PartialOrd for IpAddr { } } -#[stable(feature = "ip_cmp", since = "1.15.0")] +#[stable(feature = "ip_cmp", since = "1.16.0")] impl PartialOrd for Ipv6Addr { fn partial_cmp(&self, other: &IpAddr) -> Option { match *other { @@ -1302,7 +1302,7 @@ impl From<[u8; 16]> for Ipv6Addr { } } -#[stable(feature = "ipv6_from_segments", since = "1.15.0")] +#[stable(feature = "ipv6_from_segments", since = "1.16.0")] impl From<[u16; 8]> for Ipv6Addr { fn from(segments: [u16; 8]) -> Ipv6Addr { let [a, b, c, d, e, f, g, h] = segments; diff --git a/src/libstd/path.rs b/src/libstd/path.rs index f4b9a8972e3..e7d8c3007f6 100644 --- a/src/libstd/path.rs +++ b/src/libstd/path.rs @@ -1341,14 +1341,14 @@ impl<'a> From<&'a Path> for Box { } } -#[stable(feature = "path_buf_from_box", since = "1.17.0")] +#[stable(feature = "path_buf_from_box", since = "1.18.0")] impl<'a> From> for PathBuf { fn from(boxed: Box) -> PathBuf { boxed.into_path_buf() } } -#[stable(feature = "box_from_path_buf", since = "1.17.0")] +#[stable(feature = "box_from_path_buf", since = "1.18.0")] impl Into> for PathBuf { fn into(self) -> Box { self.into_boxed_path() @@ -1424,7 +1424,7 @@ impl Borrow for PathBuf { } } -#[stable(feature = "default_for_pathbuf", since = "1.16.0")] +#[stable(feature = "default_for_pathbuf", since = "1.17.0")] impl Default for PathBuf { fn default() -> Self { PathBuf::new() diff --git a/src/libstd/sync/condvar.rs b/src/libstd/sync/condvar.rs index 7ad9d9ee37c..c120a3045e4 100644 --- a/src/libstd/sync/condvar.rs +++ b/src/libstd/sync/condvar.rs @@ -461,7 +461,7 @@ impl fmt::Debug for Condvar { } } -#[stable(feature = "condvar_default", since = "1.9.0")] +#[stable(feature = "condvar_default", since = "1.10.0")] impl Default for Condvar { /// Creates a `Condvar` which is ready to be waited on and notified. fn default() -> Condvar { diff --git a/src/libstd/sync/mpsc/mod.rs b/src/libstd/sync/mpsc/mod.rs index 2cb649ce67b..f7fb83aa3b9 100644 --- a/src/libstd/sync/mpsc/mod.rs +++ b/src/libstd/sync/mpsc/mod.rs @@ -921,7 +921,7 @@ impl Drop for Sender { } } -#[stable(feature = "mpsc_debug", since = "1.7.0")] +#[stable(feature = "mpsc_debug", since = "1.8.0")] impl fmt::Debug for Sender { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { write!(f, "Sender {{ .. }}") @@ -1051,7 +1051,7 @@ impl Drop for SyncSender { } } -#[stable(feature = "mpsc_debug", since = "1.7.0")] +#[stable(feature = "mpsc_debug", since = "1.8.0")] impl fmt::Debug for SyncSender { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { write!(f, "SyncSender {{ .. }}") @@ -1517,7 +1517,7 @@ impl Drop for Receiver { } } -#[stable(feature = "mpsc_debug", since = "1.7.0")] +#[stable(feature = "mpsc_debug", since = "1.8.0")] impl fmt::Debug for Receiver { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { write!(f, "Receiver {{ .. }}") @@ -1644,7 +1644,7 @@ impl error::Error for TryRecvError { } } -#[stable(feature = "mpsc_recv_timeout_error", since = "1.14.0")] +#[stable(feature = "mpsc_recv_timeout_error", since = "1.15.0")] impl fmt::Display for RecvTimeoutError { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { match *self { @@ -1658,7 +1658,7 @@ impl fmt::Display for RecvTimeoutError { } } -#[stable(feature = "mpsc_recv_timeout_error", since = "1.14.0")] +#[stable(feature = "mpsc_recv_timeout_error", since = "1.15.0")] impl error::Error for RecvTimeoutError { fn description(&self) -> &str { match *self { diff --git a/src/libstd/sync/mutex.rs b/src/libstd/sync/mutex.rs index 5c3eaa4668d..9a242a96d46 100644 --- a/src/libstd/sync/mutex.rs +++ b/src/libstd/sync/mutex.rs @@ -153,7 +153,7 @@ pub struct MutexGuard<'a, T: ?Sized + 'a> { #[stable(feature = "rust1", since = "1.0.0")] impl<'a, T: ?Sized> !Send for MutexGuard<'a, T> { } -#[stable(feature = "mutexguard", since = "1.18.0")] +#[stable(feature = "mutexguard", since = "1.19.0")] unsafe impl<'a, T: ?Sized + Sync> Sync for MutexGuard<'a, T> { } impl Mutex { @@ -372,7 +372,7 @@ unsafe impl<#[may_dangle] T: ?Sized> Drop for Mutex { } } -#[stable(feature = "mutex_default", since = "1.9.0")] +#[stable(feature = "mutex_default", since = "1.10.0")] impl Default for Mutex { /// Creates a `Mutex`, with the `Default` value for T. fn default() -> Mutex { diff --git a/src/libstd/sync/rwlock.rs b/src/libstd/sync/rwlock.rs index d26f2f7bb7e..95bc8d30932 100644 --- a/src/libstd/sync/rwlock.rs +++ b/src/libstd/sync/rwlock.rs @@ -330,7 +330,7 @@ impl fmt::Debug for RwLock { } } -#[stable(feature = "rw_lock_default", since = "1.9.0")] +#[stable(feature = "rw_lock_default", since = "1.10.0")] impl Default for RwLock { /// Creates a new `RwLock`, with the `Default` value for T. fn default() -> RwLock { diff --git a/src/libsyntax/feature_gate.rs b/src/libsyntax/feature_gate.rs index b6a2c983fd4..d06a4807ac2 100644 --- a/src/libsyntax/feature_gate.rs +++ b/src/libsyntax/feature_gate.rs @@ -410,7 +410,7 @@ declare_features! ( (accepted, question_mark, "1.13.0", Some(31436)), // Allows `..` in tuple (struct) patterns (accepted, dotdot_in_tuple_patterns, "1.14.0", Some(33627)), - (accepted, item_like_imports, "1.14.0", Some(35120)), + (accepted, item_like_imports, "1.15.0", Some(35120)), // Allows using `Self` and associated types in struct expressions and patterns. (accepted, more_struct_aliases, "1.16.0", Some(37544)), // elide `'static` lifetimes in `static`s and `const`s