1 error[E0038]: the trait `Foo` cannot be made into an object
2 --> $DIR/object-safety.rs:17:33
4 LL | let i = Box::new(42_u32) as Box<dyn Foo>;
5 | ^^^^^^^^^^^^ `Foo` cannot be made into an object
7 note: for a trait to be "object safe" it needs to allow building a vtable to allow the call to be resolvable dynamically; for more information visit <https://doc.rust-lang.org/reference/items/traits.html#object-safety>
8 --> $DIR/object-safety.rs:7:8
11 | --- this trait cannot be made into an object...
12 LL | fn baz(&self) -> impl Debug;
13 | ^^^ ...because method `baz` references an `impl Trait` type in its return type
14 = help: consider moving `baz` to another trait
16 error[E0038]: the trait `Foo` cannot be made into an object
17 --> $DIR/object-safety.rs:20:13
20 | ^^^^^^^ `Foo` cannot be made into an object
22 note: for a trait to be "object safe" it needs to allow building a vtable to allow the call to be resolvable dynamically; for more information visit <https://doc.rust-lang.org/reference/items/traits.html#object-safety>
23 --> $DIR/object-safety.rs:7:8
26 | --- this trait cannot be made into an object...
27 LL | fn baz(&self) -> impl Debug;
28 | ^^^ ...because method `baz` references an `impl Trait` type in its return type
29 = help: consider moving `baz` to another trait
31 error[E0038]: the trait `Foo` cannot be made into an object
32 --> $DIR/object-safety.rs:17:13
34 LL | let i = Box::new(42_u32) as Box<dyn Foo>;
35 | ^^^^^^^^^^^^^^^^ `Foo` cannot be made into an object
37 note: for a trait to be "object safe" it needs to allow building a vtable to allow the call to be resolvable dynamically; for more information visit <https://doc.rust-lang.org/reference/items/traits.html#object-safety>
38 --> $DIR/object-safety.rs:7:8
41 | --- this trait cannot be made into an object...
42 LL | fn baz(&self) -> impl Debug;
43 | ^^^ ...because method `baz` references an `impl Trait` type in its return type
44 = help: consider moving `baz` to another trait
45 = note: required for `Box<u32>` to implement `CoerceUnsized<Box<dyn Foo>>`
46 = note: required by cast to type `Box<dyn Foo>`
48 error: aborting due to 3 previous errors
50 For more information about this error, try `rustc --explain E0038`.