From e195d66a333102924bae452ba09dc20cba4e96e6 Mon Sep 17 00:00:00 2001 From: Peter Mikkelsen Date: Wed, 9 Feb 2022 13:08:12 +0000 Subject: Since symbols now have pointers to their values, we don't need the symbol.undefined field anymore --- eval.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) (limited to 'eval.c') diff --git a/eval.c b/eval.c index b7515b1..ea7e84f 100644 --- a/eval.c +++ b/eval.c @@ -141,7 +141,7 @@ lookup(Datum *var) traceprint("VAR LOOKUP %S\n", var->name); Symbol *symbol = getsym(var->name, 0); - if(symbol->undefined){ + if(symbol->value == nil && symbol->getfn == nil){ Rune *msg = runesmprint("Undefined name: %S", var->name); throwerror(msg, EValue); } @@ -259,12 +259,9 @@ assign(Datum *left, Datum *right) else{ /* re-assign the symbol to one that is sure to be local. This enables shadowing */ symbol = getsym(symbol->name, 1); - - if(symbol->undefined == 0) - freedatum(symbol->value); + freedatum(symbol->value); symbol->value = right; incdatumref(right); - symbol->undefined = 0; if(symbol->value->tag == ArrayTag) symbol->value->array->stranded = 0; } -- cgit v1.2.3