rust-clippy/tests/ui/arithmetic_side_effects.rs

98 lines
2 KiB
Rust
Raw Normal View History

#![allow(
clippy::assign_op_pattern,
clippy::erasing_op,
clippy::identity_op,
clippy::unnecessary_owned_empty_strings,
arithmetic_overflow,
unconditional_panic
)]
2022-09-07 13:00:45 +00:00
#![feature(inline_const, saturating_int_impl)]
2022-09-08 15:04:55 +00:00
#![warn(clippy::arithmetic_side_effects)]
2022-07-18 17:29:45 +00:00
use core::num::{Saturating, Wrapping};
pub fn hard_coded_allowed() {
2022-09-07 13:00:45 +00:00
let _ = 1f32 + 1f32;
let _ = 1f64 + 1f64;
2022-07-18 17:29:45 +00:00
let _ = Saturating(0u32) + Saturating(0u32);
let _ = String::new() + "";
let _ = Wrapping(0u32) + Wrapping(0u32);
let saturating: Saturating<u32> = Saturating(0u32);
let string: String = String::new();
let wrapping: Wrapping<u32> = Wrapping(0u32);
let inferred_saturating = saturating + saturating;
let inferred_string = string + "";
let inferred_wrapping = wrapping + wrapping;
let _ = inferred_saturating + inferred_saturating;
let _ = inferred_string + "";
let _ = inferred_wrapping + inferred_wrapping;
}
2022-09-07 13:00:45 +00:00
#[rustfmt::skip]
pub fn non_overflowing_const_ops() {
2022-09-07 13:00:45 +00:00
const _: i32 = { let mut n = 1; n += 1; n };
let _ = const { let mut n = 1; n += 1; n };
const _: i32 = { let mut n = 1; n = n + 1; n };
let _ = const { let mut n = 1; n = n + 1; n };
const _: i32 = { let mut n = 1; n = 1 + n; n };
let _ = const { let mut n = 1; n = 1 + n; n };
const _: i32 = 1 + 1;
let _ = const { 1 + 1 };
}
2022-09-07 13:00:45 +00:00
pub fn non_overflowing_runtime_ops() {
let mut _n = i32::MAX;
// Assign
_n += 0;
_n -= 0;
_n /= 99;
_n %= 99;
_n *= 0;
_n *= 1;
// Binary
_n = _n + 0;
_n = 0 + _n;
_n = _n - 0;
_n = 0 - _n;
_n = _n / 99;
_n = _n % 99;
_n = _n * 0;
_n = 0 * _n;
_n = _n * 1;
_n = 1 * _n;
_n = 23 + 85;
2022-09-07 13:00:45 +00:00
}
#[rustfmt::skip]
pub fn overflowing_runtime_ops() {
let mut _n = i32::MAX;
// Assign
_n += 1;
_n -= 1;
_n /= 0;
_n %= 0;
_n *= 2;
// Binary
_n = _n + 1;
_n = 1 + _n;
_n = _n - 1;
_n = 1 - _n;
_n = _n / 0;
_n = _n % 0;
_n = _n * 2;
_n = 2 * _n;
2022-09-07 13:00:45 +00:00
}
2022-07-18 17:29:45 +00:00
fn main() {}