diff options
| author | bors <bors@rust-lang.org> | 2017-09-09 09:13:03 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2017-09-09 09:13:03 +0000 |
| commit | 929b878262622292b76b8a27f09d3ccc646f9a46 (patch) | |
| tree | 436df5e063d89b3fe486d02cfca5b07e03265aba | |
| parent | a9fa8cc0b63771113e0f5aff210a5d443c88e819 (diff) | |
| parent | db5b5f97063bd12cb5fb857e33cc5b417b408ef8 (diff) | |
| download | rust-929b878262622292b76b8a27f09d3ccc646f9a46.tar.gz rust-929b878262622292b76b8a27f09d3ccc646f9a46.zip | |
Auto merge of #44438 - Xaeroxe:clamp, r=Mark-Simulacrum
Revert clamp Revert clamp per https://github.com/rust-lang/rust/issues/44095#issuecomment-328218316 while we take time to assess the potential backwards compatibility damage done by it.
| -rw-r--r-- | src/libcore/cmp.rs | 24 | ||||
| -rw-r--r-- | src/libstd/f32.rs | 44 | ||||
| -rw-r--r-- | src/libstd/f64.rs | 44 | ||||
| -rw-r--r-- | src/libstd/lib.rs | 1 |
4 files changed, 0 insertions, 113 deletions
diff --git a/src/libcore/cmp.rs b/src/libcore/cmp.rs index dc1f2981a50..ec6525485f7 100644 --- a/src/libcore/cmp.rs +++ b/src/libcore/cmp.rs @@ -481,30 +481,6 @@ pub trait Ord: Eq + PartialOrd<Self> { where Self: Sized { if self <= other { self } else { other } } - - /// Returns max if self is greater than max, and min if self is less than min. - /// Otherwise this will return self. - /// - /// # Examples - /// - /// ``` - /// #![feature(clamp)] - /// - /// assert!((-3).clamp(-2, 1) == -2); - /// assert!(0.clamp(-2, 1) == 0); - /// assert!(2.clamp(-2, 1) == 1); - /// ``` - /// - /// # Panics - /// Panics if min > max. - #[unstable(feature = "clamp", issue = "44095")] - fn clamp(self, min: Self, max: Self) -> Self - where Self: Sized { - assert!(min <= max); - if self < min { min } - else if self > max { max } - else { self } - } } #[stable(feature = "rust1", since = "1.0.0")] diff --git a/src/libstd/f32.rs b/src/libstd/f32.rs index 69ca77f54b4..0135cd0a588 100644 --- a/src/libstd/f32.rs +++ b/src/libstd/f32.rs @@ -1080,32 +1080,6 @@ impl f32 { 0.5 * ((2.0 * self) / (1.0 - self)).ln_1p() } - /// Returns max if self is greater than max, and min if self is less than min. - /// Otherwise this returns self. - /// - /// # Examples - /// - /// ``` - /// #![feature(clamp)] - /// use std::f32::NAN; - /// assert!((-3.0f32).clamp(-2.0f32, 1.0f32) == -2.0f32); - /// assert!((0.0f32).clamp(-2.0f32, 1.0f32) == 0.0f32); - /// assert!((2.0f32).clamp(-2.0f32, 1.0f32) == 1.0f32); - /// assert!((NAN).clamp(-2.0f32, 1.0f32).is_nan()); - /// ``` - /// - /// # Panics - /// Panics if min > max, min is NaN, or max is NaN. - #[unstable(feature = "clamp", issue = "44095")] - #[inline] - pub fn clamp(self, min: f32, max: f32) -> f32 { - assert!(min <= max); - let mut x = self; - if x < min { x = min; } - if x > max { x = max; } - x - } - /// Raw transmutation to `u32`. /// /// Converts the `f32` into its raw memory representation, @@ -1777,22 +1751,4 @@ mod tests { assert_ne!(nan_masked & QNAN_MASK, 0); assert!(nan_masked_fl.is_nan()); } - - #[test] - #[should_panic] - fn test_clamp_min_greater_than_max() { - 1.0f32.clamp(3.0, 1.0); - } - - #[test] - #[should_panic] - fn test_clamp_min_is_nan() { - 1.0f32.clamp(NAN, 1.0); - } - - #[test] - #[should_panic] - fn test_clamp_max_is_nan() { - 1.0f32.clamp(3.0, NAN); - } } diff --git a/src/libstd/f64.rs b/src/libstd/f64.rs index 6ec633bfaaa..d73d7cd2c7b 100644 --- a/src/libstd/f64.rs +++ b/src/libstd/f64.rs @@ -970,32 +970,6 @@ impl f64 { 0.5 * ((2.0 * self) / (1.0 - self)).ln_1p() } - /// Returns max if self is greater than max, and min if self is less than min. - /// Otherwise this returns self. - /// - /// # Examples - /// - /// ``` - /// #![feature(clamp)] - /// use std::f64::NAN; - /// assert!((-3.0f64).clamp(-2.0f64, 1.0f64) == -2.0f64); - /// assert!((0.0f64).clamp(-2.0f64, 1.0f64) == 0.0f64); - /// assert!((2.0f64).clamp(-2.0f64, 1.0f64) == 1.0f64); - /// assert!((NAN).clamp(-2.0f64, 1.0f64).is_nan()); - /// ``` - /// - /// # Panics - /// Panics if min > max, min is NaN, or max is NaN. - #[unstable(feature = "clamp", issue = "44095")] - #[inline] - pub fn clamp(self, min: f64, max: f64) -> f64 { - assert!(min <= max); - let mut x = self; - if x < min { x = min; } - if x > max { x = max; } - x - } - // Solaris/Illumos requires a wrapper around log, log2, and log10 functions // because of their non-standard behavior (e.g. log(-n) returns -Inf instead // of expected NaN). @@ -1668,22 +1642,4 @@ mod tests { assert_approx_eq!(f64::from_bits(0x4094e40000000000), 1337.0); assert_approx_eq!(f64::from_bits(0xc02c800000000000), -14.25); } - - #[test] - #[should_panic] - fn test_clamp_min_greater_than_max() { - 1.0f64.clamp(3.0, 1.0); - } - - #[test] - #[should_panic] - fn test_clamp_min_is_nan() { - 1.0f64.clamp(NAN, 1.0); - } - - #[test] - #[should_panic] - fn test_clamp_max_is_nan() { - 1.0f64.clamp(3.0, NAN); - } } diff --git a/src/libstd/lib.rs b/src/libstd/lib.rs index 433499a90a4..33bf0d68126 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(clamp)] #![feature(collections_range)] #![feature(compiler_builtins_lib)] #![feature(const_fn)] |
