The following closures capture x by value both [playground](https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=4044e24fa1cffb795c2dd03239eb5fb2) ```rs fn main() { let c: fn() = { let x = 1; || { let _ = x; } }; let c: fn() = { let x = 1; || match x { _ => println!("Hello World!"), } }; } ``` yet we recognize the first as non capturing and the second as capturing by ref.