| //@ edition:2021 |
| //@ check-pass |
| #![warn(unused)] |
| |
| struct Point { |
| x: u32, |
| y: u32, |
| } |
| |
| fn test1() { |
| let t = (String::from("Hello"), String::from("World")); |
| |
| let c = || { |
| let (t1, t2) = t; |
| //~^ WARN unused variable: `t1` |
| //~| WARN unused variable: `t2` |
| }; |
| |
| c(); |
| } |
| |
| fn test2() { |
| let t = (String::from("Hello"), String::from("World")); |
| |
| let c = || { |
| let (t1, _) = t; |
| //~^ WARN unused variable: `t1` |
| }; |
| |
| c(); |
| } |
| |
| fn test3() { |
| let t = (String::from("Hello"), String::from("World")); |
| |
| let c = || { |
| let (_, t2) = t; |
| //~^ WARN unused variable: `t2` |
| }; |
| |
| c(); |
| } |
| |
| fn test4() { |
| let t = (String::from("Hello"), String::from("World")); |
| |
| let c = || { |
| let (_, _) = t; |
| }; |
| |
| c(); |
| } |
| |
| fn test5() { |
| let t = (String::new(), String::new()); |
| let _c = || { |
| let _a = match t { |
| (t1, _) => t1, |
| }; |
| }; |
| } |
| |
| fn test6() { |
| let t = (String::new(), String::new()); |
| let _c = || { |
| let _a = match t { |
| (_, t2) => t2, |
| }; |
| }; |
| } |
| |
| fn test7() { |
| let t = (String::new(), String::new()); |
| let _c = || { |
| let _a = match t { |
| (t1, t2) => (t1, t2), |
| }; |
| }; |
| } |
| |
| fn test8() { |
| let x = 0; |
| let tup = (1, 2); |
| let p = Point { x: 10, y: 20 }; |
| |
| let c = || { |
| let _ = x; |
| let Point { x, y } = p; |
| //~^ WARN unused variable: `x` |
| println!("{}", y); |
| let (_, _) = tup; |
| }; |
| |
| c(); |
| } |
| |
| fn test9() { |
| let _z = 9; |
| let t = (String::from("Hello"), String::from("World")); |
| |
| let c = || { |
| let (_, t) = t; |
| println!("{}", t); |
| }; |
| |
| c(); |
| } |
| |
| fn main() { |
| test1(); |
| test2(); |
| test3(); |
| test4(); |
| test5(); |
| test6(); |
| test7(); |
| test8(); |
| test9(); |
| } |