diff options
| author | bors <bors@rust-lang.org> | 2023-03-28 23:20:30 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2023-03-28 23:20:30 +0000 |
| commit | cdbbce0a9e5c839295cf9a8714798af45d541e20 (patch) | |
| tree | 765dce46b33eb265e709d5415f7f7258f8d6ce3f | |
| parent | 478cbb42b730ba4739351b72ce2aa928e78e2f81 (diff) | |
| parent | 3aa9f76a3a27e901e478203e00d17fe26a645c66 (diff) | |
| download | rust-cdbbce0a9e5c839295cf9a8714798af45d541e20.tar.gz rust-cdbbce0a9e5c839295cf9a8714798af45d541e20.zip | |
Auto merge of #108095 - soc:drop-contains, r=Amanieu
Drop unstable `Option::contains`, `Result::contains`, `Result::contains_err` This is a proposal to drop the three functions `Option::contains`, `Result::contains` and `Result::contains_err`. The discovery of `Option::is_some_with`/`Result::is_ok_with`/`Result::is_err_with` in https://github.com/rust-lang/rust/pull/93051 obviates the need for these methods (non-stabilization tracked in https://github.com/rust-lang/rust/issues/62358). An additional benefit of change is that it avoids spurious error messages in IDEs, when `contains` is supplied by a third-party library: 
| -rw-r--r-- | library/core/src/option.rs | 30 | ||||
| -rw-r--r-- | library/core/src/result.rs | 62 | ||||
| -rw-r--r-- | library/core/tests/lib.rs | 1 |
3 files changed, 0 insertions, 93 deletions
diff --git a/library/core/src/option.rs b/library/core/src/option.rs index fe8ec7db184..fcf9707b74d 100644 --- a/library/core/src/option.rs +++ b/library/core/src/option.rs @@ -1780,36 +1780,6 @@ impl<T> Option<T> { mem::replace(self, Some(value)) } - /// Returns `true` if the option is a [`Some`] value containing the given value. - /// - /// # Examples - /// - /// ``` - /// #![feature(option_result_contains)] - /// - /// let x: Option<u32> = Some(2); - /// assert_eq!(x.contains(&2), true); - /// - /// let x: Option<u32> = Some(3); - /// assert_eq!(x.contains(&2), false); - /// - /// let x: Option<u32> = None; - /// assert_eq!(x.contains(&2), false); - /// ``` - #[must_use] - #[inline] - #[unstable(feature = "option_result_contains", issue = "62358")] - #[rustc_const_unstable(feature = "const_option_ext", issue = "91930")] - pub const fn contains<U>(&self, x: &U) -> bool - where - U: ~const PartialEq<T>, - { - match self { - Some(y) => x.eq(y), - None => false, - } - } - /// Zips `self` with another `Option`. /// /// If `self` is `Some(s)` and `other` is `Some(o)`, this method returns `Some((s, o))`. diff --git a/library/core/src/result.rs b/library/core/src/result.rs index c8168c3f358..76d9b0385d0 100644 --- a/library/core/src/result.rs +++ b/library/core/src/result.rs @@ -1531,68 +1531,6 @@ impl<T, E> Result<T, E> { Err(e) => e, } } - - ///////////////////////////////////////////////////////////////////////// - // Misc or niche - ///////////////////////////////////////////////////////////////////////// - - /// Returns `true` if the result is an [`Ok`] value containing the given value. - /// - /// # Examples - /// - /// ``` - /// #![feature(option_result_contains)] - /// - /// let x: Result<u32, &str> = Ok(2); - /// assert_eq!(x.contains(&2), true); - /// - /// let x: Result<u32, &str> = Ok(3); - /// assert_eq!(x.contains(&2), false); - /// - /// let x: Result<u32, &str> = Err("Some error message"); - /// assert_eq!(x.contains(&2), false); - /// ``` - #[must_use] - #[inline] - #[unstable(feature = "option_result_contains", issue = "62358")] - pub fn contains<U>(&self, x: &U) -> bool - where - U: PartialEq<T>, - { - match self { - Ok(y) => x == y, - Err(_) => false, - } - } - - /// Returns `true` if the result is an [`Err`] value containing the given value. - /// - /// # Examples - /// - /// ``` - /// #![feature(result_contains_err)] - /// - /// let x: Result<u32, &str> = Ok(2); - /// assert_eq!(x.contains_err(&"Some error message"), false); - /// - /// let x: Result<u32, &str> = Err("Some error message"); - /// assert_eq!(x.contains_err(&"Some error message"), true); - /// - /// let x: Result<u32, &str> = Err("Some other error message"); - /// assert_eq!(x.contains_err(&"Some error message"), false); - /// ``` - #[must_use] - #[inline] - #[unstable(feature = "result_contains_err", issue = "62358")] - pub fn contains_err<F>(&self, f: &F) -> bool - where - F: PartialEq<E>, - { - match self { - Ok(_) => false, - Err(e) => f == e, - } - } } impl<T, E> Result<&T, E> { diff --git a/library/core/tests/lib.rs b/library/core/tests/lib.rs index 637cc6e9f62..108210b6573 100644 --- a/library/core/tests/lib.rs +++ b/library/core/tests/lib.rs @@ -95,7 +95,6 @@ #![feature(portable_simd)] #![feature(ptr_metadata)] #![feature(once_cell)] -#![feature(option_result_contains)] #![feature(unsized_tuple_coercion)] #![feature(const_option)] #![feature(const_option_ext)] |
