From ceca65688101cb3275debe1b8e34198245d18c2d Mon Sep 17 00:00:00 2001 From: Arnaud Bailly Date: Wed, 25 Sep 2024 14:44:42 +0200 Subject: Check variables are resolved across scopes --- rust/src/lambda.rs | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'rust') 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)); + } } -- cgit v1.2.3