| //! Test that we allow unsizing `Trait<Concrete>` to `Trait<Opaque>` and vice versa | |
| //@ check-pass | |
| trait Trait<T> {} | |
| impl<T, U> Trait<T> for U {} | |
| fn hello() -> &'static (dyn Trait<impl Sized> + Send) { | |
| if false { | |
| let x = hello(); | |
| let _: &'static dyn Trait<()> = x; | |
| } | |
| todo!() | |
| } | |
| fn bye() -> &'static dyn Trait<impl Sized> { | |
| if false { | |
| let mut x = bye(); | |
| let y: &'static (dyn Trait<()> + Send) = &(); | |
| x = y; | |
| } | |
| todo!() | |
| } | |
| fn main() {} |