File tree Expand file tree Collapse file tree 2 files changed +4
-4
lines changed Expand file tree Collapse file tree 2 files changed +4
-4
lines changed Original file line number Diff line number Diff line change @@ -28,7 +28,7 @@ impl Timespec {
2828 #[ rustc_const_unstable( feature = "const_system_time" , issue = "144517" ) ]
2929 const fn sub_timespec ( & self , other : & Timespec ) -> Result < Duration , Duration > {
3030 // FIXME: const PartialOrd
31- let mut cmp = self . t . tv_sec - other. t . tv_sec ;
31+ let mut cmp = self . t . tv_sec . saturating_sub ( other. t . tv_sec ) ;
3232 if cmp == 0 {
3333 cmp = self . t . tv_nsec as i64 - other. t . tv_nsec as i64 ;
3434 }
Original file line number Diff line number Diff line change @@ -139,7 +139,7 @@ impl Timespec {
139139 #[ rustc_const_unstable( feature = "const_system_time" , issue = "144517" ) ]
140140 pub const fn sub_timespec ( & self , other : & Timespec ) -> Result < Duration , Duration > {
141141 // FIXME: const PartialOrd
142- let mut cmp = self . tv_sec - other. tv_sec ;
142+ let mut cmp = self . tv_sec . saturating_sub ( other. tv_sec ) ;
143143 if cmp == 0 {
144144 cmp = self . tv_nsec . as_inner ( ) as i64 - other. tv_nsec . as_inner ( ) as i64 ;
145145 }
@@ -160,12 +160,12 @@ impl Timespec {
160160 // directly expresses the lower-cost behavior we want from it.
161161 let ( secs, nsec) = if self . tv_nsec . as_inner ( ) >= other. tv_nsec . as_inner ( ) {
162162 (
163- ( self . tv_sec - other. tv_sec ) as u64 ,
163+ self . tv_sec . wrapping_sub ( other. tv_sec ) as u64 ,
164164 self . tv_nsec . as_inner ( ) - other. tv_nsec . as_inner ( ) ,
165165 )
166166 } else {
167167 (
168- ( self . tv_sec - other. tv_sec - 1 ) as u64 ,
168+ self . tv_sec . wrapping_sub ( other. tv_sec ) as u64 - 1_u64 ,
169169 self . tv_nsec . as_inner ( ) + ( NSEC_PER_SEC as u32 ) - other. tv_nsec . as_inner ( ) ,
170170 )
171171 } ;
You can’t perform that action at this time.
0 commit comments