Files
rust/tests/ui/unsized/box-instead-of-dyn-fn.stderr
Esteban Küber f0845adb0c Show diff suggestion format on verbose replacement
```
error[E0610]: `{integer}` is a primitive type and therefore doesn't have fields
  --> $DIR/attempted-access-non-fatal.rs:7:15
   |
LL |     let _ = 2.l;
   |               ^
   |
help: if intended to be a floating point literal, consider adding a `0` after the period and a `f64` suffix
   |
LL -     let _ = 2.l;
LL +     let _ = 2.0f64;
   |
```
2025-02-10 20:21:39 +00:00

23 lines
921 B
Plaintext

error[E0746]: return type cannot be a trait object without pointer indirection
--> $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: consider returning an `impl Trait` instead of a `dyn Trait`
|
LL - fn print_on_or_the_other<'a>(a: i32, b: &'a String) -> dyn Fn() + 'a {
LL + fn print_on_or_the_other<'a>(a: i32, b: &'a String) -> impl Fn() + 'a {
|
help: alternatively, 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 1 previous error
For more information about this error, try `rustc --explain E0746`.