mirror of
https://github.com/roc-lang/roc.git
synced 2025-10-02 00:01:16 +00:00
implement get_rank_set_mark natively
This commit is contained in:
parent
afedc4ab01
commit
a99489fb57
2 changed files with 11 additions and 5 deletions
|
@ -1716,11 +1716,7 @@ impl Subs {
|
|||
|
||||
#[inline(always)]
|
||||
pub fn get_rank_set_mark(&mut self, key: Variable, mark: Mark) -> Rank {
|
||||
// let l_key = self.utable.inlined_get_root_key(key);
|
||||
|
||||
self.utable.set_mark(key, mark);
|
||||
|
||||
self.utable.get_rank(key)
|
||||
self.utable.get_rank_set_mark(key, mark)
|
||||
}
|
||||
|
||||
pub fn equivalent(&mut self, left: Variable, right: Variable) -> bool {
|
||||
|
|
|
@ -200,6 +200,16 @@ impl UnificationTable {
|
|||
self.root_key(a) == self.root_key(b)
|
||||
}
|
||||
|
||||
// custom very specific helpers
|
||||
#[inline(always)]
|
||||
pub fn get_rank_set_mark(&mut self, key: Variable, mark: Mark) -> Rank {
|
||||
let index = self.root_key(key).index() as usize;
|
||||
|
||||
self.marks[index] = mark;
|
||||
|
||||
self.ranks[index]
|
||||
}
|
||||
|
||||
// TODO remove
|
||||
#[inline(always)]
|
||||
pub fn inlined_get_root_key(&mut self, key: Variable) -> Variable {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue