// Make sure borrowck doesn't ICE because it thinks a pointer cast is a metadata-preserving // wide-to-wide ptr cast when it's actually (falsely) a wide-to-thin ptr cast due to an // impossible dyn sized bound. //@ check-pass trait Trait {} fn func<'a>(x: *const (dyn Trait<()> + 'a)) where dyn Trait + 'a: Sized, { let _x: *const dyn Trait = x as _; } fn main() {}