| $ cargo build |
| Compiling functions-example v0.1.0 (file:///projects/functions-example) |
| error[E0277]: the size for values of type `(dyn std::ops::Fn(i32) -> i32 + 'static)` cannot be known at compilation time |
| --> src/lib.rs:1:25 |
| | |
| 1 | fn returns_closure() -> dyn Fn(i32) -> i32 { |
| | ^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time |
| | |
| = help: the trait `std::marker::Sized` is not implemented for `(dyn std::ops::Fn(i32) -> i32 + 'static)` |
| = note: to learn more, visit <https://doc.rust-lang.org/book/ch19-04-advanced-types.html#dynamically-sized-types-and-the-sized-trait> |
| = note: the return type of a function must have a statically known size |
| |
| error[E0308]: mismatched types |
| --> src/lib.rs:2:5 |
| | |
| 1 | fn returns_closure() -> dyn Fn(i32) -> i32 { |
| | ------------------ expected `(dyn std::ops::Fn(i32) -> i32 + 'static)` because of return type |
| 2 | |x| x + 1 |
| | ^^^^^^^^^ expected trait `std::ops::Fn`, found closure |
| | |
| = note: expected trait object `(dyn std::ops::Fn(i32) -> i32 + 'static)` |
| found closure `[closure@src/lib.rs:2:5: 2:14]` |
| |
| error: aborting due to 2 previous errors |
| |
| Some errors have detailed explanations: E0277, E0308. |
| For more information about an error, try `rustc --explain E0277`. |
| error: could not compile `functions-example`. |
| |
| To learn more, run the command again with --verbose. |