summaryrefslogtreecommitdiff
path: root/dhall/src/semantics/nze
diff options
context:
space:
mode:
Diffstat (limited to 'dhall/src/semantics/nze')
-rw-r--r--dhall/src/semantics/nze/nzexpr.rs8
1 files changed, 8 insertions, 0 deletions
diff --git a/dhall/src/semantics/nze/nzexpr.rs b/dhall/src/semantics/nze/nzexpr.rs
index 723c895..49aa704 100644
--- a/dhall/src/semantics/nze/nzexpr.rs
+++ b/dhall/src/semantics/nze/nzexpr.rs
@@ -217,6 +217,9 @@ impl QuoteEnv {
pub fn new() -> Self {
QuoteEnv { size: 0 }
}
+ pub fn construct(size: usize) -> Self {
+ QuoteEnv { size }
+ }
pub fn insert(&self) -> Self {
QuoteEnv {
size: self.size + 1,
@@ -231,6 +234,11 @@ impl NzVar {
pub fn new(idx: usize) -> Self {
NzVar { idx }
}
+ pub fn shift(&self, delta: isize) -> Self {
+ NzVar {
+ idx: (self.idx as isize + delta) as usize,
+ }
+ }
}
impl TyExpr {