| //@ compile-flags: -Znext-solver | |
| //@ check-pass | |
| use std::fmt::Display; | |
| use std::rc::Rc; | |
| fn mk<T: ?Sized>(t: Option<&T>) -> Rc<T> { | |
| todo!() | |
| } | |
| fn main() { | |
| let mut x = None; | |
| let y = mk(x); | |
| // Don't treat the line below as a unsize coercion `Rc<?0> ~> Rc<dyn Display>` | |
| let z: Rc<dyn Display> = y; | |
| x = Some(&1 as &dyn Display); | |
| } |