blob: 5fe51dd5ba7ca542968e9382c9c8dbbe410cf7b2 [file] [log] [blame] [edit]
#![warn(clippy::unchecked_time_subtraction)]
use std::time::{Duration, Instant};
fn main() {
let _first = Instant::now();
let second = Duration::from_secs(3);
let _ = _first.checked_sub(second).unwrap();
//~^ unchecked_time_subtraction
let _ = Instant::now().checked_sub(Duration::from_secs(5)).unwrap();
//~^ unchecked_time_subtraction
let _ = _first.checked_sub(Duration::from_secs(5)).unwrap();
//~^ unchecked_time_subtraction
let _ = Instant::now().checked_sub(second).unwrap();
//~^ unchecked_time_subtraction
// Duration - Duration cases
let dur1 = Duration::from_secs(5);
let dur2 = Duration::from_secs(3);
let _ = dur1.checked_sub(dur2).unwrap();
//~^ unchecked_time_subtraction
let _ = Duration::from_secs(10) - Duration::from_secs(5);
let _ = second.checked_sub(dur1).unwrap();
//~^ unchecked_time_subtraction
// Duration multiplication and subtraction
let _ = (2 * dur1).checked_sub(dur2).unwrap();
//~^ unchecked_time_subtraction
}
fn issue16230() {
use std::ops::Sub as _;
Duration::ZERO.checked_sub(Duration::MAX).unwrap();
//~^ unchecked_time_subtraction
let _ = Duration::ZERO.checked_sub(Duration::MAX).unwrap();
//~^ unchecked_time_subtraction
}
fn issue16234() {
use std::ops::Sub as _;
macro_rules! duration {
($secs:expr) => {
Duration::from_secs($secs)
};
}
let d = duration!(0);
d.checked_sub(duration!(1)).unwrap();
//~^ unchecked_time_subtraction
let _ = d.checked_sub(duration!(1)).unwrap();
//~^ unchecked_time_subtraction
}
fn issue16499() {
let _ = Duration::from_millis(2) - Duration::from_millis(1);
let _ = Duration::new(10000, 0) - Duration::from_secs(1);
let _ = Duration::from_nanos_u128(1000) - Duration::from_nanos(100);
let _ = Duration::from_secs_f32(1.5) - Duration::from_secs_f64(0.5);
let _ = Duration::from_mins(70) - Duration::from_hours(1);
}