error[E0038]: the trait `Foo` cannot be made into an object --> $DIR/span-bug-issue-121597.rs:14:23 | LL | let x: &dyn Foo = &(); | ^^^ `Foo` cannot be made into an object | 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 --> $DIR/span-bug-issue-121597.rs:4:12 | LL | trait Foo: for Bar {} | --- ^^^^^^^^^^^^^ ...because where clause cannot reference non-lifetime `for<...>` variables | | | this trait cannot be made into an object... = note: required for the cast from `&()` to `&dyn Foo` error[E0038]: the trait `Foo` cannot be made into an object --> $DIR/span-bug-issue-121597.rs:14:12 | LL | let x: &dyn Foo = &(); | ^^^^^^^^ `Foo` cannot be made into an object | 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 --> $DIR/span-bug-issue-121597.rs:4:12 | LL | trait Foo: for Bar {} | --- ^^^^^^^^^^^^^ ...because where clause cannot reference non-lifetime `for<...>` variables | | | this trait cannot be made into an object... error[E0308]: mismatched types --> $DIR/span-bug-issue-121597.rs:18:15 | LL | needs_bar(x); | --------- ^ types differ in mutability | | | arguments to this function are incorrect | = note: expected raw pointer `*mut Type2` found reference `&dyn Foo` note: function defined here --> $DIR/span-bug-issue-121597.rs:11:4 | LL | fn needs_bar(_: *mut Type2) {} | ^^^^^^^^^ ------------- error: aborting due to 3 previous errors Some errors have detailed explanations: E0038, E0308. For more information about an error, try `rustc --explain E0038`.