1error[E0038]: the trait `Foo` cannot be made into an object 2 --> $DIR/object-safety.rs:20:33 3 | 4LL | let i = Box::new(42_u32) as Box<dyn Foo>; 5 | ^^^^^^^^^^^^ `Foo` cannot be made into an object 6 | 7note: 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:10:22 9 | 10LL | trait Foo { 11 | --- this trait cannot be made into an object... 12LL | 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 15 16error[E0038]: the trait `Foo` cannot be made into an object 17 --> $DIR/object-safety.rs:23:13 18 | 19LL | let s = i.baz(); 20 | ^^^^^^^ `Foo` cannot be made into an object 21 | 22note: 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:10:22 24 | 25LL | trait Foo { 26 | --- this trait cannot be made into an object... 27LL | 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 30 31error[E0038]: the trait `Foo` cannot be made into an object 32 --> $DIR/object-safety.rs:20:13 33 | 34LL | let i = Box::new(42_u32) as Box<dyn Foo>; 35 | ^^^^^^^^^^^^^^^^ `Foo` cannot be made into an object 36 | 37note: 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:10:22 39 | 40LL | trait Foo { 41 | --- this trait cannot be made into an object... 42LL | 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 the cast from `Box<u32>` to `Box<dyn Foo>` 46 47error: aborting due to 3 previous errors 48 49For more information about this error, try `rustc --explain E0038`. 50