From fbbd0b34314d58cc4d210e5ff07c2726fdadd659 Mon Sep 17 00:00:00 2001 From: Peter Mikkelsen Date: Mon, 24 Jan 2022 21:29:00 +0000 Subject: re-open symbols before read, as they may have changed due to shadowing. Example of code this commit fixes: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit before: a←10 {a←⍵ ⋄ a} 20 10 a 10 now: a←10 {a←⍵ ⋄ a} 20 20 a 10 --- eval.c | 2 ++ 1 file changed, 2 insertions(+) (limited to 'eval.c') diff --git a/eval.c b/eval.c index 2e9a78e..bacd724 100644 --- a/eval.c +++ b/eval.c @@ -136,6 +136,8 @@ Datum * lookup(Datum var) { traceprint("VAR LOOKUP %S\n", var.symbol->name); + /* re-assign the symbol, since it may have been changed by shadowing */ + var.symbol = getsym(var.symbol->name, 0); if(var.symbol->undefined){ Rune *msg = runesmprint("Undefined name: %S", var.symbol->name); -- cgit v1.2.3