fix issue with same names causing 0 index debruijn for var

This commit is contained in:
Kasey White
2022-06-26 21:30:24 -04:00
committed by Lucas
parent 027daf30ea
commit 4eafdd2d39
3 changed files with 18 additions and 1 deletions

View File

@@ -4,6 +4,8 @@ use crate::ast::Unique;
use super::Level;
#[derive(Debug)]
pub struct BiMap {
left: HashMap<Unique, Level>,
right: HashMap<Level, Unique>,
@@ -22,6 +24,11 @@ impl BiMap {
self.right.insert(level, unique);
}
pub(super) fn remove(&mut self, unique: Unique, level: Level) {
self.left.remove(&unique);
self.right.remove(&level);
}
pub(super) fn get(&self, unique: &Unique) -> Option<&Level> {
self.left.get(unique)
}