I wonder if there would be some speed gains in resolve by writing this as

```rust
match resolve_table.find(&key) {
    Some(&name) => return name,
    None => {}
}

let resolved = { ... };
...
```

(to only hash `key` once; I have a strong feeling that hashing once rather than twice was a major contributor to the speed-up.)