#![feature(generic_associated_types)] 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>; //~^ ERROR overflow evaluating the requirement `Node: Sized` }