mirror of
https://github.com/roc-lang/roc.git
synced 2025-09-29 14:54:47 +00:00
use Entry in symbol.rs
This commit is contained in:
parent
30e7f7b335
commit
e10cd07143
1 changed files with 6 additions and 4 deletions
|
@ -562,15 +562,17 @@ impl IdentIds {
|
|||
}
|
||||
|
||||
pub fn get_or_insert(&mut self, name: &Ident) -> IdentId {
|
||||
match self.by_ident.get(name) {
|
||||
Some(id) => *id,
|
||||
None => {
|
||||
use std::collections::hash_map::Entry;
|
||||
|
||||
match self.by_ident.entry(name.clone()) {
|
||||
Entry::Occupied(occupied) => *occupied.get(),
|
||||
Entry::Vacant(vacant) => {
|
||||
let by_id = &mut self.by_id;
|
||||
let ident_id = IdentId(by_id.len() as u32);
|
||||
|
||||
by_id.push(name.clone());
|
||||
|
||||
self.by_ident.insert(name.clone(), ident_id);
|
||||
vacant.insert(ident_id);
|
||||
|
||||
ident_id
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue