//@ run-pass | |
struct Node<C: CollectionFactory<Self>> { | |
_children: C::Collection, | |
} | |
trait CollectionFactory<T> { | |
type Collection; | |
} | |
impl<T> CollectionFactory<T> for Vec<()> { | |
type Collection = Vec<T>; | |
} | |
trait Collection<T>: Sized { //~ WARN trait `Collection` is never used | |
fn push(&mut self, v: T); | |
} | |
impl<T> Collection<T> for Vec<T> { | |
fn push(&mut self, v: T) { | |
self.push(v) | |
} | |
} | |
fn main() { | |
let _ = Node::<Vec<()>> { | |
_children: Vec::new(), | |
}; | |
} |