2 clippy::assign_op_pattern,
5 clippy::unnecessary_owned_empty_strings,
9 #![feature(inline_const, saturating_int_impl)]
10 #![warn(clippy::arithmetic_side_effects)]
12 use core::num::{Saturating, Wrapping};
14 pub fn association_with_structures_should_not_trigger_the_lint() {
27 struct Baz([i32; 1 + 1]);
30 const ASSOC: i32 = 1 + 1;
33 type Alias = [i32; 1 + 1];
39 let _: [i32; 1 + 1] = [0, 0];
41 let _: [i32; 1 + 1] = {
42 let a: [i32; 1 + 1] = [0, 0];
47 pub fn hard_coded_allowed() {
51 let _ = Saturating(0u32) + Saturating(0u32);
52 let _ = String::new() + "";
53 let _ = Wrapping(0u32) + Wrapping(0u32);
55 let saturating: Saturating<u32> = Saturating(0u32);
56 let string: String = String::new();
57 let wrapping: Wrapping<u32> = Wrapping(0u32);
59 let inferred_saturating = saturating + saturating;
60 let inferred_string = string + "";
61 let inferred_wrapping = wrapping + wrapping;
63 let _ = inferred_saturating + inferred_saturating;
64 let _ = inferred_string + "";
65 let _ = inferred_wrapping + inferred_wrapping;
69 pub fn const_ops_should_not_trigger_the_lint() {
70 const _: i32 = { let mut n = 1; n += 1; n };
71 let _ = const { let mut n = 1; n += 1; n };
73 const _: i32 = { let mut n = 1; n = n + 1; n };
74 let _ = const { let mut n = 1; n = n + 1; n };
76 const _: i32 = { let mut n = 1; n = 1 + n; n };
77 let _ = const { let mut n = 1; n = 1 + n; n };
80 let _ = const { 1 + 1 };
82 const _: i32 = { let mut n = -1; n = -(-1); n = -n; n };
83 let _ = const { let mut n = -1; n = -(-1); n = -n; n };
86 pub fn non_overflowing_runtime_ops_or_ops_already_handled_by_the_compiler() {
87 let mut _n = i32::MAX;
115 pub fn overflowing_runtime_ops() {
116 let mut _n = i32::MAX;