mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-23 15:23:46 +00:00
d992d9cd56
When encountering a type mismatch error involving `dyn Trait`, mention the existence of boxed trait objects if the other type involved implements `Trait`. Partially addresses #102629.
26 lines
1021 B
Plaintext
26 lines
1021 B
Plaintext
error[E0308]: mismatched types
|
|
--> $DIR/dst-bad-assign-3.rs:33:12
|
|
|
|
|
LL | f5.2 = Bar1 {f: 36};
|
|
| ---- ^^^^^^^^^^^^ expected `dyn ToBar`, found `Bar1`
|
|
| |
|
|
| expected due to the type of this binding
|
|
|
|
|
= note: expected trait object `dyn ToBar`
|
|
found struct `Bar1`
|
|
= help: `Bar1` implements `ToBar` so you could box the found value and coerce it to the trait object `Box<dyn ToBar>`, you will have to change the expected type as well
|
|
|
|
error[E0277]: the size for values of type `dyn ToBar` cannot be known at compilation time
|
|
--> $DIR/dst-bad-assign-3.rs:33:5
|
|
|
|
|
LL | f5.2 = Bar1 {f: 36};
|
|
| ^^^^ doesn't have a size known at compile-time
|
|
|
|
|
= help: the trait `Sized` is not implemented for `dyn ToBar`
|
|
= note: the left-hand-side of an assignment must have a statically known size
|
|
|
|
error: aborting due to 2 previous errors
|
|
|
|
Some errors have detailed explanations: E0277, E0308.
|
|
For more information about an error, try `rustc --explain E0277`.
|