the ssa_id of old var is increased, the var is used as new var.
(&self, var: &VarName)
| 586 | |
| 587 | /// the ssa_id of old var is increased, the var is used as new var. |
| 588 | pub fn new_ssa_var(&self, var: &VarName) -> Result<VarName> { |
| 589 | let mut ssa_id = 0; |
| 590 | // loop until find a suitable ssa_id for this var. |
| 591 | loop { |
| 592 | let mut old_var = var.clone(); |
| 593 | old_var.ssa = ssa_id; |
| 594 | if self.get_current_storage().contains_key(&old_var) { |
| 595 | ssa_id += 1; |
| 596 | } else { |
| 597 | return Ok(old_var); |
| 598 | } |
| 599 | } |
| 600 | } |
| 601 | |
| 602 | /// get the bind vaule of this var |
| 603 | pub fn get_bind(&self, var: &VarName) -> Result<Symbol<T>> { |
no test coverage detected