1 fn fn_val(i: i32) -> i32 { unimplemented!() }
2 fn fn_constref(i: &i32) -> i32 { unimplemented!() }
3 fn fn_mutref(i: &mut i32) { unimplemented!() }
4 fn foo() -> i32 { unimplemented!() }
6 fn immutable_condition() {
7 // Should warn when all vars mentionned are immutable
10 println!("KO - y is immutable");
14 while y < 10 && x < 3 {
15 println!("KO - x and y immutable");
20 println!("KO - cond immutable");
24 while y < 10 && i < 3 {
26 println!("OK - i is mutable");
29 let mut mut_cond = false;
30 while !mut_cond || cond {
32 println!("OK - mut_cond is mutable");
36 println!("OK - Fn call results may vary");
42 // Should warn when a (mutable) var is not used in while body
43 let (mut i, mut j) = (0, 0);
47 println!("KO - i not mentionned");
50 while i < 3 && j > 0 {
51 println!("KO - i and j not mentionned");
57 println!("KO - shadowed");
60 while i < 3 && j > 0 {
62 println!("OK - i in cond and mentionned");
71 println!("KO - const reference");
76 println!("KO - passed by value");
80 println!("OK - passed by mutable reference");
86 immutable_condition();