Whether a de-Bruijn variable points at a let-bound local.
(&self, idx: u64)
| 499 | pub fn lookup_let_val(&mut self, idx: u64) -> Option<KExpr<M>> { |
| 500 | let n = self.ctx.len(); |
| 501 | let idx_us = usize::try_from(idx).ok()?; |
| 502 | if idx_us >= n { |
| 503 | return None; |
| 504 | } |
| 505 | let level = n - 1 - idx_us; |
| 506 | let val = self.let_vals[level].as_ref()?.clone(); |
| 507 | Some(lift(&mut self.env.intern, &val, idx + 1, 0)) |
| 508 | } |
| 509 | |
| 510 | /// Whether a de-Bruijn variable points at a let-bound local. |
| 511 | pub fn is_let_var(&self, idx: u64) -> bool { |
| 512 | let n = self.ctx.len(); |
| 513 | let Some(idx_us) = usize::try_from(idx).ok() else { |
| 514 | return false; |
no test coverage detected