File tree 2 files changed +7
-2
lines changed
2 files changed +7
-2
lines changed Original file line number Diff line number Diff line change @@ -111,7 +111,7 @@ mod inner {
111
111
// Nano calculations can't overflow because nanos are <1B which fit
112
112
// in a u32.
113
113
let mut usec = ( other. subsec_nanos ( ) / 1000 ) + self . t . tv_usec as u32 ;
114
- if usec > USEC_PER_SEC as u32 {
114
+ if usec >= USEC_PER_SEC as u32 {
115
115
usec -= USEC_PER_SEC as u32 ;
116
116
secs = secs. checked_add ( 1 ) . expect ( "overflow when adding \
117
117
duration to time") ;
@@ -330,7 +330,7 @@ mod inner {
330
330
// Nano calculations can't overflow because nanos are <1B which fit
331
331
// in a u32.
332
332
let mut nsec = other. subsec_nanos ( ) + self . t . tv_nsec as u32 ;
333
- if nsec > NSEC_PER_SEC as u32 {
333
+ if nsec >= NSEC_PER_SEC as u32 {
334
334
nsec -= NSEC_PER_SEC as u32 ;
335
335
secs = secs. checked_add ( 1 ) . expect ( "overflow when adding \
336
336
duration to time") ;
Original file line number Diff line number Diff line change @@ -303,6 +303,11 @@ mod tests {
303
303
let eighty_years = second * 60 * 60 * 24 * 365 * 80 ;
304
304
assert_almost_eq ! ( a - eighty_years + eighty_years, a) ;
305
305
assert_almost_eq ! ( a - ( eighty_years * 10 ) + ( eighty_years * 10 ) , a) ;
306
+
307
+ let one_second_from_epoch = UNIX_EPOCH + Duration :: new ( 1 , 0 ) ;
308
+ let one_second_from_epoch2 = UNIX_EPOCH + Duration :: new ( 0 , 500_000_000 )
309
+ + Duration :: new ( 0 , 500_000_000 ) ;
310
+ assert_eq ! ( one_second_from_epoch, one_second_from_epoch2) ;
306
311
}
307
312
308
313
#[ test]
You can’t perform that action at this time.
0 commit comments