From a5140513dee8f3c8c995fcb540aff0d63bb3e994 Mon Sep 17 00:00:00 2001 From: Kasey White Date: Sat, 9 Jul 2022 22:12:51 -0400 Subject: [PATCH] fix: debruijn index - 1 Co-authored-by: rvcas --- add_integers.uplc | 2 +- crates/uplc/src/machine.rs | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/add_integers.uplc b/add_integers.uplc index 5854dd64..b3c9bff8 100644 --- a/add_integers.uplc +++ b/add_integers.uplc @@ -1,4 +1,4 @@ (program 1.0.0 - [ (builtin addInteger) (con integer 2) (con integer 3) ] + [ (lam x (lam y [ (builtin addInteger) x y ])) (con integer 5) (con integer 7) ] ) diff --git a/crates/uplc/src/machine.rs b/crates/uplc/src/machine.rs index ce1bd594..e6f61836 100644 --- a/crates/uplc/src/machine.rs +++ b/crates/uplc/src/machine.rs @@ -168,7 +168,7 @@ impl Machine { Term::Var(name) } else { this.env - .get::(index - lam_cnt) + .get::(index - lam_cnt - 1) .cloned() .map_or(Term::Var(name), |v| this.discharge_value(v)) } @@ -262,7 +262,7 @@ impl Machine { fn lookup_var(&mut self, name: NamedDeBruijn) -> Result { self.env - .get::(name.index.into()) + .get::(usize::from(name.index) - 1) .cloned() .ok_or(Error::OpenTermEvaluated(Term::Var(name))) }