1
Fork 0

BTreeMap: remove Ord bound where it is absent elsewhere

This commit is contained in:
Stein Somers 2020-11-20 21:29:00 +01:00
parent cfba499271
commit 9066c736a2
4 changed files with 22 additions and 20 deletions

View file

@ -501,11 +501,8 @@ impl<K, V> BTreeMap<K, V> {
/// assert!(a.is_empty()); /// assert!(a.is_empty());
/// ``` /// ```
#[stable(feature = "rust1", since = "1.0.0")] #[stable(feature = "rust1", since = "1.0.0")]
pub fn clear(&mut self) pub fn clear(&mut self) {
where *self = BTreeMap { root: None, length: 0 };
K: Ord,
{
*self = BTreeMap::new();
} }
/// Returns a reference to the value corresponding to the key. /// Returns a reference to the value corresponding to the key.
@ -1226,10 +1223,7 @@ impl<K, V> BTreeMap<K, V> {
/// ``` /// ```
#[inline] #[inline]
#[unstable(feature = "map_into_keys_values", issue = "75294")] #[unstable(feature = "map_into_keys_values", issue = "75294")]
pub fn into_keys(self) -> IntoKeys<K, V> pub fn into_keys(self) -> IntoKeys<K, V> {
where
K: Ord,
{
IntoKeys { inner: self.into_iter() } IntoKeys { inner: self.into_iter() }
} }
@ -1252,10 +1246,7 @@ impl<K, V> BTreeMap<K, V> {
/// ``` /// ```
#[inline] #[inline]
#[unstable(feature = "map_into_keys_values", issue = "75294")] #[unstable(feature = "map_into_keys_values", issue = "75294")]
pub fn into_values(self) -> IntoValues<K, V> pub fn into_values(self) -> IntoValues<K, V> {
where
K: Ord,
{
IntoValues { inner: self.into_iter() } IntoValues { inner: self.into_iter() }
} }
} }

View file

@ -1711,12 +1711,19 @@ fn test_ord_absence() {
fn map<K>(mut map: BTreeMap<K, ()>) { fn map<K>(mut map: BTreeMap<K, ()>) {
map.is_empty(); map.is_empty();
map.len(); map.len();
map.clear();
map.iter(); map.iter();
map.iter_mut(); map.iter_mut();
map.keys(); map.keys();
map.values(); map.values();
map.values_mut(); map.values_mut();
if true {
map.into_values();
} else if true {
map.into_iter(); map.into_iter();
} else {
map.into_keys();
}
} }
fn map_debug<K: Debug>(mut map: BTreeMap<K, ()>) { fn map_debug<K: Debug>(mut map: BTreeMap<K, ()>) {
@ -1726,7 +1733,13 @@ fn test_ord_absence() {
format!("{:?}", map.keys()); format!("{:?}", map.keys());
format!("{:?}", map.values()); format!("{:?}", map.values());
format!("{:?}", map.values_mut()); format!("{:?}", map.values_mut());
if true {
format!("{:?}", map.into_iter()); format!("{:?}", map.into_iter());
} else if true {
format!("{:?}", map.into_keys());
} else {
format!("{:?}", map.into_values());
}
} }
fn map_clone<K: Clone>(mut map: BTreeMap<K, ()>) { fn map_clone<K: Clone>(mut map: BTreeMap<K, ()>) {

View file

@ -457,10 +457,7 @@ impl<T> BTreeSet<T> {
/// assert!(v.is_empty()); /// assert!(v.is_empty());
/// ``` /// ```
#[stable(feature = "rust1", since = "1.0.0")] #[stable(feature = "rust1", since = "1.0.0")]
pub fn clear(&mut self) pub fn clear(&mut self) {
where
T: Ord,
{
self.map.clear() self.map.clear()
} }

View file

@ -641,9 +641,10 @@ fn test_send() {
#[allow(dead_code)] #[allow(dead_code)]
fn test_ord_absence() { fn test_ord_absence() {
fn set<K>(set: BTreeSet<K>) { fn set<K>(mut set: BTreeSet<K>) {
set.is_empty(); set.is_empty();
set.len(); set.len();
set.clear();
set.iter(); set.iter();
set.into_iter(); set.into_iter();
} }