1 error[E0308]: `match` arms have incompatible types
2 --> $DIR/wf-unsafe-trait-obj-match.rs:23:17
6 | | -- this is found to be of type `&S`
8 | | ^^ expected struct `S`, found struct `R`
10 | |_____- `match` arms have incompatible types
12 = note: expected type `&S`
15 error[E0038]: the trait `Trait` cannot be made into an object
16 --> $DIR/wf-unsafe-trait-obj-match.rs:26:21
18 LL | trait Trait: Sized {}
19 | ----- the trait cannot require that `Self : Sized`
22 | ^^ the trait `Trait` cannot be made into an object
24 = note: the trait cannot require that `Self : Sized`
25 = note: required because of the requirements on the impl of `std::ops::CoerceUnsized<&dyn Trait>` for `&S`
26 = note: required by cast to type `&dyn Trait`
28 error[E0038]: the trait `Trait` cannot be made into an object
29 --> $DIR/wf-unsafe-trait-obj-match.rs:25:25
31 LL | trait Trait: Sized {}
32 | ----- the trait cannot require that `Self : Sized`
34 LL | let t: &dyn Trait = match opt() {
35 | ^^^^^^^^^^^ the trait `Trait` cannot be made into an object
37 = note: the trait cannot require that `Self : Sized`
38 = note: required because of the requirements on the impl of `std::ops::CoerceUnsized<&dyn Trait>` for `&R`
39 = note: required by cast to type `&dyn Trait`
41 error: aborting due to 3 previous errors
43 Some errors have detailed explanations: E0038, E0308.
44 For more information about an error, try `rustc --explain E0038`.