//@ check-pass | |
//@ compile-flags: -Znext-solver | |
trait Interner: Sized { | |
type Value; | |
} | |
enum Kind<I: Interner> { | |
Value(I::Value), | |
} | |
struct Intern; | |
impl Interner for Intern { | |
type Value = Wrap<u32>; | |
} | |
struct Wrap<T>(T); | |
type KindAlias = Kind<Intern>; | |
trait PrettyPrinter: Sized { | |
fn hello(c: KindAlias) { | |
match c { | |
KindAlias::Value(Wrap(v)) => { | |
println!("{v:?}"); | |
} | |
} | |
} | |
} | |
fn main() {} |