summaryrefslogtreecommitdiffstats
path: root/tests/ui/unsized/box-instead-of-dyn-fn.stderr
blob: 6087f5c5465266f570d9f647c5837c9897367ee7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
error[E0746]: return type cannot have an unboxed trait object
  --> $DIR/box-instead-of-dyn-fn.rs:5:56
   |
LL | fn print_on_or_the_other<'a>(a: i32, b: &'a String) -> dyn Fn() + 'a {
   |                                                        ^^^^^^^^^^^^^ doesn't have a size known at compile-time
   |
help: return an `impl Trait` instead of a `dyn Trait`, if all returned values are the same type
   |
LL | fn print_on_or_the_other<'a>(a: i32, b: &'a String) -> impl Fn() + 'a {
   |                                                        ~~~~
help: box the return type, and wrap all of the returned values in `Box::new`
   |
LL ~ fn print_on_or_the_other<'a>(a: i32, b: &'a String) -> Box<dyn Fn() + 'a> {
LL |
LL |     if a % 2 == 0 {
LL ~         Box::new(move || println!("{a}"))
   |

error: aborting due to previous error

For more information about this error, try `rustc --explain E0746`.