error[E0277]: the trait bound `dyn Foo: CastTo<[i32]>` is not satisfied
  --> $DIR/issue-71659.rs:30:15
   |
LL |     let x = x.cast::<[i32]>();
   |               ^^^^ the trait `CastTo<[i32]>` is not implemented for `dyn Foo`
   |
note: required by a bound in `Cast::cast`
  --> $DIR/issue-71659.rs:19:15
   |
LL |     fn cast<T: ?Sized>(&self) -> &T
   |        ---- required by a bound in this
LL |     where
LL |         Self: CastTo<T>,
   |               ^^^^^^^^^ required by this bound in `Cast::cast`

error: aborting due to previous error

For more information about this error, try `rustc --explain E0277`.
