2020-01-04 18:17:46 -06:00
|
|
|
error[E0308]: `match` arms have incompatible types
|
2019-01-08 15:14:04 -06:00
|
|
|
--> $DIR/wf-unsafe-trait-obj-match.rs:23:17
|
|
|
|
|
|
|
|
|
LL | / match opt() {
|
|
|
|
LL | | Some(()) => &S,
|
|
|
|
| | -- this is found to be of type `&S`
|
|
|
|
LL | | None => &R,
|
|
|
|
| | ^^ expected struct `S`, found struct `R`
|
|
|
|
LL | | }
|
|
|
|
| |_____- `match` arms have incompatible types
|
|
|
|
|
|
2019-11-13 16:16:56 -06:00
|
|
|
= note: expected type `&S`
|
|
|
|
found reference `&R`
|
2019-01-08 15:14:04 -06:00
|
|
|
|
|
|
|
error[E0038]: the trait `Trait` cannot be made into an object
|
|
|
|
--> $DIR/wf-unsafe-trait-obj-match.rs:26:21
|
|
|
|
|
|
2020-01-19 16:53:37 -06:00
|
|
|
LL | trait Trait: Sized {}
|
2020-01-31 18:47:00 -06:00
|
|
|
| ----- ----- ...because it requires `Self: Sized`
|
|
|
|
| |
|
|
|
|
| this trait cannot be made into an object...
|
2020-01-19 16:53:37 -06:00
|
|
|
...
|
2019-01-08 15:14:04 -06:00
|
|
|
LL | Some(()) => &S,
|
|
|
|
| ^^ the trait `Trait` cannot be made into an object
|
|
|
|
|
|
2020-09-02 02:40:56 -05:00
|
|
|
= note: required because of the requirements on the impl of `CoerceUnsized<&dyn Trait>` for `&S`
|
2019-01-08 15:14:04 -06:00
|
|
|
= note: required by cast to type `&dyn Trait`
|
|
|
|
|
|
|
|
error[E0038]: the trait `Trait` cannot be made into an object
|
|
|
|
--> $DIR/wf-unsafe-trait-obj-match.rs:25:25
|
|
|
|
|
|
2020-01-19 16:53:37 -06:00
|
|
|
LL | trait Trait: Sized {}
|
2020-01-31 18:47:00 -06:00
|
|
|
| ----- ----- ...because it requires `Self: Sized`
|
|
|
|
| |
|
|
|
|
| this trait cannot be made into an object...
|
2020-01-19 16:53:37 -06:00
|
|
|
...
|
2019-01-08 15:14:04 -06:00
|
|
|
LL | let t: &dyn Trait = match opt() {
|
|
|
|
| ^^^^^^^^^^^ the trait `Trait` cannot be made into an object
|
|
|
|
|
|
2020-09-02 02:40:56 -05:00
|
|
|
= note: required because of the requirements on the impl of `CoerceUnsized<&dyn Trait>` for `&R`
|
2019-01-08 15:14:04 -06:00
|
|
|
= note: required by cast to type `&dyn Trait`
|
|
|
|
|
|
|
|
error: aborting due to 3 previous errors
|
|
|
|
|
|
|
|
Some errors have detailed explanations: E0038, E0308.
|
|
|
|
For more information about an error, try `rustc --explain E0038`.
|