From 381d28f68e2a235d901556da5a7b4f3dec640505 Mon Sep 17 00:00:00 2001 From: Michal Budzynski Date: Thu, 14 Sep 2017 16:15:12 +0200 Subject: [PATCH] stabilize collections_range (closes #30877) --- src/liballoc/lib.rs | 2 -- src/liballoc/range.rs | 12 +++++++----- src/libcollections/lib.rs | 1 - src/librustc_data_structures/lib.rs | 1 - src/libstd/lib.rs | 1 - 5 files changed, 7 insertions(+), 10 deletions(-) diff --git a/src/liballoc/lib.rs b/src/liballoc/lib.rs index 2845d349ae165..16232ea62be39 100644 --- a/src/liballoc/lib.rs +++ b/src/liballoc/lib.rs @@ -204,8 +204,6 @@ mod std { /// `Bound`s are range endpoints: /// /// ``` -/// #![feature(collections_range)] -/// /// use std::collections::range::RangeArgument; /// use std::collections::Bound::*; /// diff --git a/src/liballoc/range.rs b/src/liballoc/range.rs index f862da0d61e01..adecc4670dbc3 100644 --- a/src/liballoc/range.rs +++ b/src/liballoc/range.rs @@ -8,9 +8,6 @@ // option. This file may not be copied, modified, or distributed // except according to those terms. -#![unstable(feature = "collections_range", - reason = "waiting for dust to settle on inclusive ranges", - issue = "30877")] //! Range syntax. @@ -19,6 +16,7 @@ use Bound::{self, Excluded, Included, Unbounded}; /// `RangeArgument` is implemented by Rust's built-in range types, produced /// by range syntax like `..`, `a..`, `..b` or `c..d`. +#[stable(feature = "collections_range", since = "1.22.0")] pub trait RangeArgument { /// Start index bound. /// @@ -28,7 +26,6 @@ pub trait RangeArgument { /// /// ``` /// #![feature(alloc)] - /// #![feature(collections_range)] /// /// extern crate alloc; /// @@ -40,6 +37,7 @@ pub trait RangeArgument { /// assert_eq!((3..10).start(), Included(&3)); /// # } /// ``` + #[stable(feature = "collections_range", since = "1.22.0")] fn start(&self) -> Bound<&T>; /// End index bound. @@ -50,7 +48,6 @@ pub trait RangeArgument { /// /// ``` /// #![feature(alloc)] - /// #![feature(collections_range)] /// /// extern crate alloc; /// @@ -62,11 +59,13 @@ pub trait RangeArgument { /// assert_eq!((3..10).end(), Excluded(&10)); /// # } /// ``` + #[stable(feature = "collections_range", since = "1.22.0")] fn end(&self) -> Bound<&T>; } // FIXME add inclusive ranges to RangeArgument +#[stable(feature = "collections_range", since = "1.22.0")] impl RangeArgument for RangeFull { fn start(&self) -> Bound<&T> { Unbounded @@ -76,6 +75,7 @@ impl RangeArgument for RangeFull { } } +#[stable(feature = "collections_range", since = "1.22.0")] impl RangeArgument for RangeFrom { fn start(&self) -> Bound<&T> { Included(&self.start) @@ -85,6 +85,7 @@ impl RangeArgument for RangeFrom { } } +#[stable(feature = "collections_range", since = "1.22.0")] impl RangeArgument for RangeTo { fn start(&self) -> Bound<&T> { Unbounded @@ -94,6 +95,7 @@ impl RangeArgument for RangeTo { } } +#[stable(feature = "collections_range", since = "1.22.0")] impl RangeArgument for Range { fn start(&self) -> Bound<&T> { Included(&self.start) diff --git a/src/libcollections/lib.rs b/src/libcollections/lib.rs index 55316db3d5a43..63cb28da61dad 100644 --- a/src/libcollections/lib.rs +++ b/src/libcollections/lib.rs @@ -24,7 +24,6 @@ #![deny(warnings)] #![feature(alloc)] -#![feature(collections_range)] #![feature(macro_reexport)] #![feature(staged_api)] diff --git a/src/librustc_data_structures/lib.rs b/src/librustc_data_structures/lib.rs index 47061883425e2..61da6d5dd2223 100644 --- a/src/librustc_data_structures/lib.rs +++ b/src/librustc_data_structures/lib.rs @@ -22,7 +22,6 @@ #![deny(warnings)] #![feature(shared)] -#![feature(collections_range)] #![feature(nonzero)] #![feature(unboxed_closures)] #![feature(fn_traits)] diff --git a/src/libstd/lib.rs b/src/libstd/lib.rs index 33bf0d68126d4..8dfdd00bdac9b 100644 --- a/src/libstd/lib.rs +++ b/src/libstd/lib.rs @@ -249,7 +249,6 @@ #![feature(cfg_target_vendor)] #![feature(char_error_internals)] #![feature(char_internals)] -#![feature(collections_range)] #![feature(compiler_builtins_lib)] #![feature(const_fn)] #![feature(core_float)]