// check-pass trait PointerFamily { type Pointer; } struct Rc(Box); struct RcFamily; impl PointerFamily for RcFamily { type Pointer = Rc; } #[allow(dead_code)] enum Node where P::Pointer>: Sized, { Cons(P::Pointer>), } fn main() { let _list: ::Pointer>; }