about summary refs log tree commit diff
diff options
context:
space:
mode:
authormbartlett21 <29034492+mbartlett21@users.noreply.github.com>2021-10-16 18:25:18 +1000
committermbartlett21 <mjmouse9999@gmail.com>2021-10-20 08:48:00 +0000
commitfe060bf2477313c6621368097e1d41cade8ca163 (patch)
tree5beff89c0760b853c930f9c96d74a712cd4667d4
parent6cc0a764e082d9c0abcf37a768d5889247ba13e2 (diff)
downloadrust-fe060bf2477313c6621368097e1d41cade8ca163.tar.gz
rust-fe060bf2477313c6621368097e1d41cade8ca163.zip
Change `Duration::from_secs_*` underflow error
Now explicitly says negative value.
-rw-r--r--library/core/src/time.rs16
1 files changed, 7 insertions, 9 deletions
diff --git a/library/core/src/time.rs b/library/core/src/time.rs
index 5a74f39e8bc..7114f2d652e 100644
--- a/library/core/src/time.rs
+++ b/library/core/src/time.rs
@@ -756,7 +756,7 @@ impl Duration {
         } else if nanos >= MAX_NANOS_F64 {
             Err(FromSecsError { kind: FromSecsErrorKind::Overflow })
         } else if nanos < 0.0 {
-            Err(FromSecsError { kind: FromSecsErrorKind::Underflow })
+            Err(FromSecsError { kind: FromSecsErrorKind::Negative })
         } else {
             let nanos = nanos as u128;
             Ok(Duration {
@@ -818,7 +818,7 @@ impl Duration {
         } else if nanos >= MAX_NANOS_F32 {
             Err(FromSecsError { kind: FromSecsErrorKind::Overflow })
         } else if nanos < 0.0 {
-            Err(FromSecsError { kind: FromSecsErrorKind::Underflow })
+            Err(FromSecsError { kind: FromSecsErrorKind::Negative })
         } else {
             let nanos = nanos as u128;
             Ok(Duration {
@@ -1274,11 +1274,9 @@ pub struct FromSecsError {
 impl FromSecsError {
     const fn description(&self) -> &'static str {
         match self.kind {
-            FromSecsErrorKind::NonFinite => {
-                "got non-finite value when converting float to duration"
-            }
+            FromSecsErrorKind::NonFinite => "non-finite value when converting float to duration",
             FromSecsErrorKind::Overflow => "overflow when converting float to duration",
-            FromSecsErrorKind::Underflow => "underflow when converting float to duration",
+            FromSecsErrorKind::Negative => "negative value when converting float to duration",
         }
     }
 }
@@ -1292,10 +1290,10 @@ impl fmt::Display for FromSecsError {
 
 #[derive(Debug, Clone, PartialEq, Eq)]
 enum FromSecsErrorKind {
-    // Value is not a finite value (either infinity or NaN).
+    // Value is not a finite value (either + or - infinity or NaN).
     NonFinite,
     // Value is too large to store in a `Duration`.
     Overflow,
-    // Value is less than `0.0`.
-    Underflow,
+    // Value is negative.
+    Negative,
 }