1 #![allow(clippy::assign_op_pattern, clippy::unnecessary_owned_empty_strings)]
2 #![feature(inline_const, saturating_int_impl)]
3 #![warn(clippy::arithmetic_side_effects)]
5 use core::num::{Saturating, Wrapping};
7 pub fn hard_coded_allowed() {
11 let _ = Saturating(0u32) + Saturating(0u32);
12 let _ = String::new() + "";
13 let _ = Wrapping(0u32) + Wrapping(0u32);
15 let saturating: Saturating<u32> = Saturating(0u32);
16 let string: String = String::new();
17 let wrapping: Wrapping<u32> = Wrapping(0u32);
19 let inferred_saturating = saturating + saturating;
20 let inferred_string = string + "";
21 let inferred_wrapping = wrapping + wrapping;
23 let _ = inferred_saturating + inferred_saturating;
24 let _ = inferred_string + "";
25 let _ = inferred_wrapping + inferred_wrapping;
29 pub fn non_overflowing_ops() {
30 const _: i32 = { let mut n = 1; n += 1; n };
31 let _ = const { let mut n = 1; n += 1; n };
33 const _: i32 = { let mut n = 1; n = n + 1; n };
34 let _ = const { let mut n = 1; n = n + 1; n };
36 const _: i32 = { let mut n = 1; n = 1 + n; n };
37 let _ = const { let mut n = 1; n = 1 + n; n };
41 let _ = const { 1 + 1 };
49 pub fn overflowing_ops() {
50 let mut _a = 1; _a += 1;
52 let mut _b = 1; _b = _b + 1;
54 let mut _c = 1; _c = 1 + _c;