mirror of https://github.com/rust-lang/rust
48 lines
1.4 KiB
Plaintext
48 lines
1.4 KiB
Plaintext
error[E0308]: `if` and `else` have incompatible types
|
|
--> $DIR/suggest-boxed-trait-objects-instead-of-impl-trait.rs:17:9
|
|
|
|
|
LL | / if true {
|
|
LL | | S
|
|
| | - expected because of this
|
|
LL | | } else {
|
|
LL | | Y
|
|
| | ^ expected `S`, found `Y`
|
|
LL | | }
|
|
| |_____- `if` and `else` have incompatible types
|
|
|
|
|
help: you could change the return type to be a boxed trait object
|
|
|
|
|
LL | fn foo() -> Box<dyn Trait> {
|
|
| ~~~~~~~ +
|
|
help: if you change the return type to expect trait objects, box the returned expressions
|
|
|
|
|
LL ~ Box::new(S)
|
|
LL | } else {
|
|
LL ~ Box::new(Y)
|
|
|
|
|
|
|
error[E0308]: `match` arms have incompatible types
|
|
--> $DIR/suggest-boxed-trait-objects-instead-of-impl-trait.rs:24:18
|
|
|
|
|
LL | / match true {
|
|
LL | | true => S,
|
|
| | - this is found to be of type `S`
|
|
LL | | false => Y,
|
|
| | ^ expected `S`, found `Y`
|
|
LL | | }
|
|
| |_____- `match` arms have incompatible types
|
|
|
|
|
help: you could change the return type to be a boxed trait object
|
|
|
|
|
LL | fn bar() -> Box<dyn Trait> {
|
|
| ~~~~~~~ +
|
|
help: if you change the return type to expect trait objects, box the returned expressions
|
|
|
|
|
LL ~ true => Box::new(S),
|
|
LL ~ false => Box::new(Y),
|
|
|
|
|
|
|
error: aborting due to 2 previous errors
|
|
|
|
For more information about this error, try `rustc --explain E0308`.
|