error[E0308]: mismatched types --> $DIR/closure-no-fn-1.rs:6: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 `{closure@$DIR/closure-no-fn-1.rs:6:29: 6:36}` note: closures can only be coerced to `fn` types if they do not capture any variables --> $DIR/closure-no-fn-1.rs:6: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`.