fix: debruijn index - 1

Co-authored-by: rvcas <x@rvcas.dev>
This commit is contained in:
Kasey White 2022-07-09 22:12:51 -04:00 committed by Kasey White
parent d55409d8c5
commit a5140513de
2 changed files with 3 additions and 3 deletions

View File

@ -1,4 +1,4 @@
(program (program
1.0.0 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) ]
) )

View File

@ -168,7 +168,7 @@ impl Machine {
Term::Var(name) Term::Var(name)
} else { } else {
this.env this.env
.get::<usize>(index - lam_cnt) .get::<usize>(index - lam_cnt - 1)
.cloned() .cloned()
.map_or(Term::Var(name), |v| this.discharge_value(v)) .map_or(Term::Var(name), |v| this.discharge_value(v))
} }
@ -262,7 +262,7 @@ impl Machine {
fn lookup_var(&mut self, name: NamedDeBruijn) -> Result<Value, Error> { fn lookup_var(&mut self, name: NamedDeBruijn) -> Result<Value, Error> {
self.env self.env
.get::<usize>(name.index.into()) .get::<usize>(usize::from(name.index) - 1)
.cloned() .cloned()
.ok_or(Error::OpenTermEvaluated(Term::Var(name))) .ok_or(Error::OpenTermEvaluated(Term::Var(name)))
} }