blob: 830b737f18e7a9a8876a3d3f7bbad59332926715 [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).checked_sub(Duration::from_secs(5)).unwrap();
//~^ unchecked_time_subtraction
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)
};
}
duration!(0).checked_sub(duration!(1)).unwrap();
//~^ unchecked_time_subtraction
let _ = duration!(0).checked_sub(duration!(1)).unwrap();
//~^ unchecked_time_subtraction
}