about summary refs log tree commit diff
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2017-09-09 09:13:03 +0000
committerbors <bors@rust-lang.org>2017-09-09 09:13:03 +0000
commit929b878262622292b76b8a27f09d3ccc646f9a46 (patch)
tree436df5e063d89b3fe486d02cfca5b07e03265aba
parenta9fa8cc0b63771113e0f5aff210a5d443c88e819 (diff)
parentdb5b5f97063bd12cb5fb857e33cc5b417b408ef8 (diff)
downloadrust-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.rs24
-rw-r--r--src/libstd/f32.rs44
-rw-r--r--src/libstd/f64.rs44
-rw-r--r--src/libstd/lib.rs1
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)]