fn f() { { { let mut x; x = 5; } } { let mut x; { x = 1; } { x = 2; } } { let mut x; if true { x = 1; } else { x = 2; } } { if true { let mut x; x = 1; } } { { let mut x; { x = 1; } { x = 2; } } } { { let mut x; x = 1; x = 2; } } { let y = { let mut x; x = 1; 2 }; } { let mut x; { { x = 1; } { x = 2; } } { { x = 1; } { x = 2; } } } { // Initialized `let`s can't sink, because the initializer might have side effects. let mut y = foo(); { let mut x; { x = 1; } { x = 2; } } { { y = 1; } { y = 2; } } } } fn main() {}