//@ revisions: current next | |
//@ ignore-compare-mode-next-solver (explicit revisions) | |
//@[next] compile-flags: -Znext-solver | |
//@ check-pass | |
trait Trait {} | |
impl<T> Trait for T {} | |
trait Noop { | |
type Assoc: ?Sized; | |
} | |
impl<T: ?Sized> Noop for T { | |
type Assoc = T; | |
} | |
struct NoopNewtype<T: ?Sized + Noop>(T::Assoc); | |
fn coerce_newtype<T: Trait>(x: &NoopNewtype<T>) -> &NoopNewtype<dyn Trait + '_> { | |
x | |
} | |
fn main() {} |