Rollup merge of #49647 - kennytm:duplicated-features, r=aturon
Remove `underscore_lifetimes` and `match_default_bindings` from active feature list These are already stabilized in 1.26.
This commit is contained in:
commit
bf16e4bc54
@ -100,17 +100,28 @@ impl<Idx: PartialOrd<Idx>> Range<Idx> {
|
||||
/// ```
|
||||
/// #![feature(range_contains)]
|
||||
///
|
||||
/// assert!(!(3..5).contains(2));
|
||||
/// assert!( (3..5).contains(3));
|
||||
/// assert!( (3..5).contains(4));
|
||||
/// assert!(!(3..5).contains(5));
|
||||
/// use std::f32;
|
||||
///
|
||||
/// assert!(!(3..3).contains(3));
|
||||
/// assert!(!(3..2).contains(3));
|
||||
/// assert!(!(3..5).contains(&2));
|
||||
/// assert!( (3..5).contains(&3));
|
||||
/// assert!( (3..5).contains(&4));
|
||||
/// assert!(!(3..5).contains(&5));
|
||||
///
|
||||
/// assert!(!(3..3).contains(&3));
|
||||
/// assert!(!(3..2).contains(&3));
|
||||
///
|
||||
/// assert!( (0.0..1.0).contains(&0.5));
|
||||
/// assert!(!(0.0..1.0).contains(&f32::NAN));
|
||||
/// assert!(!(0.0..f32::NAN).contains(&0.5));
|
||||
/// assert!(!(f32::NAN..1.0).contains(&0.5));
|
||||
/// ```
|
||||
#[unstable(feature = "range_contains", reason = "recently added as per RFC", issue = "32311")]
|
||||
pub fn contains(&self, item: Idx) -> bool {
|
||||
(self.start <= item) && (item < self.end)
|
||||
pub fn contains<U>(&self, item: &U) -> bool
|
||||
where
|
||||
Idx: PartialOrd<U>,
|
||||
U: ?Sized + PartialOrd<Idx>,
|
||||
{
|
||||
<Self as RangeBounds<Idx>>::contains(self, item)
|
||||
}
|
||||
|
||||
/// Returns `true` if the range contains no items.
|
||||
@ -179,7 +190,6 @@ impl<Idx: fmt::Debug> fmt::Debug for RangeFrom<Idx> {
|
||||
}
|
||||
}
|
||||
|
||||
#[unstable(feature = "range_contains", reason = "recently added as per RFC", issue = "32311")]
|
||||
impl<Idx: PartialOrd<Idx>> RangeFrom<Idx> {
|
||||
/// Returns `true` if `item` is contained in the range.
|
||||
///
|
||||
@ -188,12 +198,23 @@ impl<Idx: PartialOrd<Idx>> RangeFrom<Idx> {
|
||||
/// ```
|
||||
/// #![feature(range_contains)]
|
||||
///
|
||||
/// assert!(!(3..).contains(2));
|
||||
/// assert!( (3..).contains(3));
|
||||
/// assert!( (3..).contains(1_000_000_000));
|
||||
/// use std::f32;
|
||||
///
|
||||
/// assert!(!(3..).contains(&2));
|
||||
/// assert!( (3..).contains(&3));
|
||||
/// assert!( (3..).contains(&1_000_000_000));
|
||||
///
|
||||
/// assert!( (0.0..).contains(&0.5));
|
||||
/// assert!(!(0.0..).contains(&f32::NAN));
|
||||
/// assert!(!(f32::NAN..).contains(&0.5));
|
||||
/// ```
|
||||
pub fn contains(&self, item: Idx) -> bool {
|
||||
(self.start <= item)
|
||||
#[unstable(feature = "range_contains", reason = "recently added as per RFC", issue = "32311")]
|
||||
pub fn contains<U>(&self, item: &U) -> bool
|
||||
where
|
||||
Idx: PartialOrd<U>,
|
||||
U: ?Sized + PartialOrd<Idx>,
|
||||
{
|
||||
<Self as RangeBounds<Idx>>::contains(self, item)
|
||||
}
|
||||
}
|
||||
|
||||
@ -250,7 +271,6 @@ impl<Idx: fmt::Debug> fmt::Debug for RangeTo<Idx> {
|
||||
}
|
||||
}
|
||||
|
||||
#[unstable(feature = "range_contains", reason = "recently added as per RFC", issue = "32311")]
|
||||
impl<Idx: PartialOrd<Idx>> RangeTo<Idx> {
|
||||
/// Returns `true` if `item` is contained in the range.
|
||||
///
|
||||
@ -259,12 +279,23 @@ impl<Idx: PartialOrd<Idx>> RangeTo<Idx> {
|
||||
/// ```
|
||||
/// #![feature(range_contains)]
|
||||
///
|
||||
/// assert!( (..5).contains(-1_000_000_000));
|
||||
/// assert!( (..5).contains(4));
|
||||
/// assert!(!(..5).contains(5));
|
||||
/// use std::f32;
|
||||
///
|
||||
/// assert!( (..5).contains(&-1_000_000_000));
|
||||
/// assert!( (..5).contains(&4));
|
||||
/// assert!(!(..5).contains(&5));
|
||||
///
|
||||
/// assert!( (..1.0).contains(&0.5));
|
||||
/// assert!(!(..1.0).contains(&f32::NAN));
|
||||
/// assert!(!(..f32::NAN).contains(&0.5));
|
||||
/// ```
|
||||
pub fn contains(&self, item: Idx) -> bool {
|
||||
(item < self.end)
|
||||
#[unstable(feature = "range_contains", reason = "recently added as per RFC", issue = "32311")]
|
||||
pub fn contains<U>(&self, item: &U) -> bool
|
||||
where
|
||||
Idx: PartialOrd<U>,
|
||||
U: ?Sized + PartialOrd<Idx>,
|
||||
{
|
||||
<Self as RangeBounds<Idx>>::contains(self, item)
|
||||
}
|
||||
}
|
||||
|
||||
@ -318,18 +349,29 @@ impl<Idx: PartialOrd<Idx>> RangeInclusive<Idx> {
|
||||
/// ```
|
||||
/// #![feature(range_contains)]
|
||||
///
|
||||
/// assert!(!(3..=5).contains(2));
|
||||
/// assert!( (3..=5).contains(3));
|
||||
/// assert!( (3..=5).contains(4));
|
||||
/// assert!( (3..=5).contains(5));
|
||||
/// assert!(!(3..=5).contains(6));
|
||||
/// use std::f32;
|
||||
///
|
||||
/// assert!( (3..=3).contains(3));
|
||||
/// assert!(!(3..=2).contains(3));
|
||||
/// assert!(!(3..=5).contains(&2));
|
||||
/// assert!( (3..=5).contains(&3));
|
||||
/// assert!( (3..=5).contains(&4));
|
||||
/// assert!( (3..=5).contains(&5));
|
||||
/// assert!(!(3..=5).contains(&6));
|
||||
///
|
||||
/// assert!( (3..=3).contains(&3));
|
||||
/// assert!(!(3..=2).contains(&3));
|
||||
///
|
||||
/// assert!( (0.0..=1.0).contains(&1.0));
|
||||
/// assert!(!(0.0..=1.0).contains(&f32::NAN));
|
||||
/// assert!(!(0.0..=f32::NAN).contains(&0.0));
|
||||
/// assert!(!(f32::NAN..=1.0).contains(&1.0));
|
||||
/// ```
|
||||
#[unstable(feature = "range_contains", reason = "recently added as per RFC", issue = "32311")]
|
||||
pub fn contains(&self, item: Idx) -> bool {
|
||||
self.start <= item && item <= self.end
|
||||
pub fn contains<U>(&self, item: &U) -> bool
|
||||
where
|
||||
Idx: PartialOrd<U>,
|
||||
U: ?Sized + PartialOrd<Idx>,
|
||||
{
|
||||
<Self as RangeBounds<Idx>>::contains(self, item)
|
||||
}
|
||||
|
||||
/// Returns `true` if the range contains no items.
|
||||
@ -431,12 +473,23 @@ impl<Idx: PartialOrd<Idx>> RangeToInclusive<Idx> {
|
||||
/// ```
|
||||
/// #![feature(range_contains)]
|
||||
///
|
||||
/// assert!( (..=5).contains(-1_000_000_000));
|
||||
/// assert!( (..=5).contains(5));
|
||||
/// assert!(!(..=5).contains(6));
|
||||
/// use std::f32;
|
||||
///
|
||||
/// assert!( (..=5).contains(&-1_000_000_000));
|
||||
/// assert!( (..=5).contains(&5));
|
||||
/// assert!(!(..=5).contains(&6));
|
||||
///
|
||||
/// assert!( (..=1.0).contains(&1.0));
|
||||
/// assert!(!(..=1.0).contains(&f32::NAN));
|
||||
/// assert!(!(..=f32::NAN).contains(&0.5));
|
||||
/// ```
|
||||
pub fn contains(&self, item: Idx) -> bool {
|
||||
(item <= self.end)
|
||||
#[unstable(feature = "range_contains", reason = "recently added as per RFC", issue = "32311")]
|
||||
pub fn contains<U>(&self, item: &U) -> bool
|
||||
where
|
||||
Idx: PartialOrd<U>,
|
||||
U: ?Sized + PartialOrd<Idx>,
|
||||
{
|
||||
<Self as RangeBounds<Idx>>::contains(self, item)
|
||||
}
|
||||
}
|
||||
|
||||
@ -537,6 +590,42 @@ pub trait RangeBounds<T: ?Sized> {
|
||||
/// # }
|
||||
/// ```
|
||||
fn end(&self) -> Bound<&T>;
|
||||
|
||||
|
||||
/// Returns `true` if `item` is contained in the range.
|
||||
///
|
||||
/// # Examples
|
||||
///
|
||||
/// ```
|
||||
/// #![feature(range_contains)]
|
||||
///
|
||||
/// use std::f32;
|
||||
///
|
||||
/// assert!( (3..5).contains(&4));
|
||||
/// assert!(!(3..5).contains(&2));
|
||||
///
|
||||
/// assert!( (0.0..1.0).contains(&0.5));
|
||||
/// assert!(!(0.0..1.0).contains(&f32::NAN));
|
||||
/// assert!(!(0.0..f32::NAN).contains(&0.5));
|
||||
/// assert!(!(f32::NAN..1.0).contains(&0.5));
|
||||
#[unstable(feature = "range_contains", reason = "recently added as per RFC", issue = "32311")]
|
||||
fn contains<U>(&self, item: &U) -> bool
|
||||
where
|
||||
T: PartialOrd<U>,
|
||||
U: ?Sized + PartialOrd<T>,
|
||||
{
|
||||
(match self.start() {
|
||||
Included(ref start) => *start <= item,
|
||||
Excluded(ref start) => *start < item,
|
||||
Unbounded => true,
|
||||
})
|
||||
&&
|
||||
(match self.end() {
|
||||
Included(ref end) => item <= *end,
|
||||
Excluded(ref end) => item < *end,
|
||||
Unbounded => true,
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
use self::Bound::{Excluded, Included, Unbounded};
|
||||
|
@ -1389,8 +1389,8 @@ fn num_overlap(a_start: usize, a_end: usize, b_start: usize, b_end:usize, inclus
|
||||
} else {
|
||||
0
|
||||
};
|
||||
(b_start..b_end + extra).contains(a_start) ||
|
||||
(a_start..a_end + extra).contains(b_start)
|
||||
(b_start..b_end + extra).contains(&a_start) ||
|
||||
(a_start..a_end + extra).contains(&b_start)
|
||||
}
|
||||
fn overlaps(a1: &Annotation, a2: &Annotation, padding: usize) -> bool {
|
||||
num_overlap(a1.start_col, a1.end_col + padding, a2.start_col, a2.end_col, false)
|
||||
|
@ -259,18 +259,18 @@ impl<'tcx> UniversalRegions<'tcx> {
|
||||
|
||||
/// True if `r` is a member of this set of universal regions.
|
||||
pub fn is_universal_region(&self, r: RegionVid) -> bool {
|
||||
(FIRST_GLOBAL_INDEX..self.num_universals).contains(r.index())
|
||||
(FIRST_GLOBAL_INDEX..self.num_universals).contains(&r.index())
|
||||
}
|
||||
|
||||
/// Classifies `r` as a universal region, returning `None` if this
|
||||
/// is not a member of this set of universal regions.
|
||||
pub fn region_classification(&self, r: RegionVid) -> Option<RegionClassification> {
|
||||
let index = r.index();
|
||||
if (FIRST_GLOBAL_INDEX..self.first_extern_index).contains(index) {
|
||||
if (FIRST_GLOBAL_INDEX..self.first_extern_index).contains(&index) {
|
||||
Some(RegionClassification::Global)
|
||||
} else if (self.first_extern_index..self.first_local_index).contains(index) {
|
||||
} else if (self.first_extern_index..self.first_local_index).contains(&index) {
|
||||
Some(RegionClassification::External)
|
||||
} else if (self.first_local_index..self.num_universals).contains(index) {
|
||||
} else if (self.first_local_index..self.num_universals).contains(&index) {
|
||||
Some(RegionClassification::Local)
|
||||
} else {
|
||||
None
|
||||
|
@ -29,7 +29,6 @@
|
||||
#![feature(slice_sort_by_cached_key)]
|
||||
#![feature(optin_builtin_traits)]
|
||||
#![feature(inclusive_range_fields)]
|
||||
#![feature(underscore_lifetimes)]
|
||||
|
||||
use rustc::dep_graph::WorkProduct;
|
||||
use syntax_pos::symbol::Symbol;
|
||||
|
@ -82,7 +82,6 @@ This API is completely unstable and subject to change.
|
||||
#![feature(slice_patterns)]
|
||||
#![feature(slice_sort_by_cached_key)]
|
||||
#![feature(dyn_trait)]
|
||||
#![feature(underscore_lifetimes)]
|
||||
|
||||
#[macro_use] extern crate log;
|
||||
#[macro_use] extern crate syntax;
|
||||
|
@ -378,12 +378,6 @@ declare_features! (
|
||||
// Future-proofing enums/structs with #[non_exhaustive] attribute (RFC 2008)
|
||||
(active, non_exhaustive, "1.22.0", Some(44109), None),
|
||||
|
||||
// allow `'_` placeholder lifetimes
|
||||
(active, underscore_lifetimes, "1.22.0", Some(44524), None),
|
||||
|
||||
// Default match binding modes (RFC 2005)
|
||||
(active, match_default_bindings, "1.22.0", Some(42640), None),
|
||||
|
||||
// Trait object syntax with `dyn` prefix
|
||||
(active, dyn_trait, "1.22.0", Some(44662), Some(Edition::Edition2018)),
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user