//@ run-pass | |
#![allow(dead_code)] | |
#[derive(Copy, Clone)] | |
struct LM { resize_at: usize, size: usize } | |
enum HashMap<K,V> { | |
HashMap_(LM, Vec<(K,V)>) | |
} | |
fn linear_map<K,V>() -> HashMap<K,V> { | |
HashMap::HashMap_(LM{ | |
resize_at: 32, | |
size: 0}, Vec::new()) | |
} | |
impl<K,V> HashMap<K,V> { | |
pub fn len(&mut self) -> usize { | |
match *self { | |
HashMap::HashMap_(ref l, _) => l.size | |
} | |
} | |
} | |
pub fn main() { | |
let mut m: Box<_> = Box::new(linear_map::<(),()>()); | |
assert_eq!(m.len(), 0); | |
} |