summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArnaud Bailly <arnaud.bailly@iohk.io>2024-09-25 14:44:42 +0200
committerArnaud Bailly <arnaud.bailly@iohk.io>2024-09-25 14:44:42 +0200
commitceca65688101cb3275debe1b8e34198245d18c2d (patch)
treeda2e41b6921d742f2b9387d2cf090c1f52a65d0e
parent0fed41e6afbf32d274660cc3ec435686901d12c4 (diff)
downloadlambda-nantes-ceca65688101cb3275debe1b8e34198245d18c2d.tar.gz
Check variables are resolved across scopes
-rw-r--r--rust/src/lambda.rs6
1 files changed, 6 insertions, 0 deletions
diff --git a/rust/src/lambda.rs b/rust/src/lambda.rs
index 416c31e..5dbcdb2 100644
--- a/rust/src/lambda.rs
+++ b/rust/src/lambda.rs
@@ -241,4 +241,10 @@ mod lambda_test {
let values = parse("(let (foo (lam x x)) ((let (foo foo) foo) 13))");
assert_eq!(vec![Value::Num(13)], eval_all(&values));
}
+
+ #[test]
+ fn bound_symbol_in_higher_scope_are_resolved() {
+ let values = parse("(let (id (lam x x)) (let (foo 12) (id foo)))");
+ assert_eq!(vec![Value::Num(12)], eval_all(&values));
+ }
}