| //@ check-pass |
| #![warn(unused)] |
| #![allow(unreachable_code)] |
| |
| pub static A: i32 = { |
| let mut i = 0; |
| let mut a = 0; //~ WARN variable `a` is assigned to, but never used |
| while i < 10 { |
| i += 1; |
| a += 1; |
| } |
| i |
| }; |
| |
| pub const B: u32 = { |
| let mut b = 1; |
| b += 1; //~ WARN value assigned to `b` is never read |
| b = 42; |
| b |
| }; |
| |
| pub enum E { |
| V1 = { |
| let e = 1; //~ WARN unused variable: `e` |
| 1 |
| }, |
| V2 = { |
| let _f = 10; |
| 2 |
| } |
| } |
| |
| pub fn f(x: [u8; { let s = 17; 100 }]) -> [u8; { let z = 18; 100 }] { |
| //~^ WARN unused variable: `s` |
| //~| WARN unused variable: `z` |
| x |
| } |
| |
| pub trait T { |
| const T: usize = { |
| let mut t = 10; |
| t = t + t; //~ WARN value assigned to `t` is never read |
| 20 |
| }; |
| } |
| |
| impl T for String { |
| const T: usize = { |
| let w = 10; //~ WARN unused variable: `w` |
| loop { |
| break; |
| let _ = w; |
| } |
| 44 |
| }; |
| } |
| |
| fn main() { |
| let _ = [(); { |
| let z = 42; //~ WARN unused variable: `z` |
| 35 |
| }]; |
| } |