1 #![warn(clippy::manual_clamp)]
5 clippy
::unnecessary_operation
,
7 clippy
::if_same_then_else
10 use std
::cmp
::{max as cmp_max, min as cmp_min}
;
12 const CONST_MAX
: i32 = 10;
13 const CONST_MIN
: i32 = 4;
15 const CONST_F64_MAX
: f64 = 10.0;
16 const CONST_F64_MIN
: f64 = 4.0;
19 let (input
, min
, max
) = (0, -2, 3);
21 let x0
= if max
< input
{
23 } else if min
> input
{
29 let x1
= if input
> max
{
31 } else if input
< min
{
37 let x2
= if input
< min
{
39 } else if input
> max
{
45 let x3
= if min
> input
{
47 } else if max
< input
{
53 let x4
= input
.max(min
).min(max
);
55 let x5
= input
.min(max
).max(min
);
57 let x6
= match input
{
63 let x7
= match input
{
69 let x8
= match input
{
83 let x10
= match input
{
114 let x14
= if input
> CONST_MAX
{
116 } else if input
< CONST_MIN
{
122 let (input
, min
, max
) = (0.0f64, -2.0, 3.0);
123 let x15
= if input
> max
{
125 } else if input
< min
{
132 let input
: i32 = cmp_min_max(1);
133 // These can only be detected if exactly one of the arguments to the inner function is const.
134 let x16
= cmp_max(cmp_min(input
, CONST_MAX
), CONST_MIN
);
135 let x17
= cmp_min(cmp_max(input
, CONST_MIN
), CONST_MAX
);
136 let x18
= cmp_max(CONST_MIN
, cmp_min(input
, CONST_MAX
));
137 let x19
= cmp_min(CONST_MAX
, cmp_max(input
, CONST_MIN
));
138 let x20
= cmp_max(cmp_min(CONST_MAX
, input
), CONST_MIN
);
139 let x21
= cmp_min(cmp_max(CONST_MIN
, input
), CONST_MAX
);
140 let x22
= cmp_max(CONST_MIN
, cmp_min(CONST_MAX
, input
));
141 let x23
= cmp_min(CONST_MAX
, cmp_max(CONST_MIN
, input
));
142 let input
: f64 = cmp_min_max(1) as f64;
143 let x24
= f64::max(f64::min(input
, CONST_F64_MAX
), CONST_F64_MIN
);
144 let x25
= f64::min(f64::max(input
, CONST_F64_MIN
), CONST_F64_MAX
);
145 let x26
= f64::max(CONST_F64_MIN
, f64::min(input
, CONST_F64_MAX
));
146 let x27
= f64::min(CONST_F64_MAX
, f64::max(input
, CONST_F64_MIN
));
147 let x28
= f64::max(f64::min(CONST_F64_MAX
, input
), CONST_F64_MIN
);
148 let x29
= f64::min(f64::max(CONST_F64_MIN
, input
), CONST_F64_MAX
);
149 let x30
= f64::max(CONST_F64_MIN
, f64::min(CONST_F64_MAX
, input
));
150 let x31
= f64::min(CONST_F64_MAX
, f64::max(CONST_F64_MIN
, input
));
155 } else if x32
> max
{
159 // It's important this be the last set of statements
169 // This code intentionally nonsense.
171 let (input
, min
, max
) = (0, -2, 3);
172 let x0
= if max
< input
{
174 } else if min
> input
{
180 let x1
= if input
> max
{
182 } else if input
> min
{
188 let x2
= if max
< min
{
190 } else if input
> max
{
196 let x3
= if min
> input
{
198 } else if max
< input
{
204 let x6
= match input
{
210 let x7
= match input
{
216 let x8
= match input
{
230 let x10
= match input
{
262 } else if x14
> max
{
266 let input
: i32 = cmp_min_max(1);
267 // These can only be detected if exactly one of the arguments to the inner function is const.
268 let x16
= cmp_max(cmp_max(input
, CONST_MAX
), CONST_MIN
);
269 let x17
= cmp_min(cmp_min(input
, CONST_MIN
), CONST_MAX
);
270 let x18
= cmp_max(CONST_MIN
, cmp_max(input
, CONST_MAX
));
271 let x19
= cmp_min(CONST_MAX
, cmp_min(input
, CONST_MIN
));
272 let x20
= cmp_max(cmp_max(CONST_MAX
, input
), CONST_MIN
);
273 let x21
= cmp_min(cmp_min(CONST_MIN
, input
), CONST_MAX
);
274 let x22
= cmp_max(CONST_MIN
, cmp_max(CONST_MAX
, input
));
275 let x23
= cmp_min(CONST_MAX
, cmp_min(CONST_MIN
, input
));
276 let input
: f64 = cmp_min_max(1) as f64;
277 let x24
= f64::max(f64::max(input
, CONST_F64_MAX
), CONST_F64_MIN
);
278 let x25
= f64::min(f64::min(input
, CONST_F64_MIN
), CONST_F64_MAX
);
279 let x26
= f64::max(CONST_F64_MIN
, f64::max(input
, CONST_F64_MAX
));
280 let x27
= f64::min(CONST_F64_MAX
, f64::min(input
, CONST_F64_MIN
));
281 let x28
= f64::max(f64::max(CONST_F64_MAX
, input
), CONST_F64_MIN
);
282 let x29
= f64::min(f64::min(CONST_F64_MIN
, input
), CONST_F64_MAX
);
283 let x30
= f64::max(CONST_F64_MIN
, f64::max(CONST_F64_MAX
, input
));
284 let x31
= f64::min(CONST_F64_MAX
, f64::min(CONST_F64_MIN
, input
));
285 let x32
= f64::min(CONST_F64_MAX
, f64::min(CONST_F64_MIN
, CONST_F64_MAX
));
289 fn dont_tell_me_what_to_do() {
290 let (input
, min
, max
) = (0, -2, 3);
291 let mut x_never
= input
;
292 #[allow(clippy::manual_clamp)]
301 /// Just to ensure this isn't const evaled
302 fn cmp_min_max(input
: i32) -> i32 {
306 #[clippy::msrv = "1.49"]
308 let (input
, min
, max
) = (0, -1, 2);
309 let _
= if input
< min
{
311 } else if input
> max
{
318 #[clippy::msrv = "1.50"]
320 let (input
, min
, max
) = (0, -1, 2);
321 let _
= if input
< min
{
323 } else if input
> max
{