error[E0308]: mismatched types --> $DIR/closure-print-verbose.rs:10:29 | LL | let foo: fn(u8) -> u8 = |v: u8| { a += v; a }; | ------------ ^^^^^^^^^^^^^^^^^^^^^ expected fn pointer, found closure | | | expected due to this | = note: expected fn pointer `fn(u8) -> u8` found closure `{main::{closure#0} closure_kind_ty=i8 closure_sig_as_fn_ptr_ty=extern "rust-call" fn((u8,)) -> u8 upvar_tys=?4t}` note: closures can only be coerced to `fn` types if they do not capture any variables --> $DIR/closure-print-verbose.rs:10:39 | LL | let foo: fn(u8) -> u8 = |v: u8| { a += v; a }; | ^ `a` captured here error: aborting due to 1 previous error For more information about this error, try `rustc --explain E0308`.