From cdf2625329a599c7bfa08cb4d09cf79bdf32720a Mon Sep 17 00:00:00 2001 From: Hyper_ <40342021+NotHyper-474@users.noreply.github.com> Date: Fri, 16 Jan 2026 16:38:11 -0300 Subject: [PATCH] Fix local variables persisting in static functions And remove unnecessary checking for locals in `resolve` --- polymod/hscript/_internal/PolymodInterpEx.hx | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/polymod/hscript/_internal/PolymodInterpEx.hx b/polymod/hscript/_internal/PolymodInterpEx.hx index 94e0f781..66a1f04b 100644 --- a/polymod/hscript/_internal/PolymodInterpEx.hx +++ b/polymod/hscript/_internal/PolymodInterpEx.hx @@ -1489,11 +1489,6 @@ class PolymodInterpEx extends Interp return null; } - if (locals.exists(id)) - { - // NOTE: id may exist but be null - return locals.get(id).r; - } if (variables.exists(id)) { // NOTE: id may exist but be null @@ -1681,10 +1676,11 @@ class PolymodInterpEx extends Interp this._classDeclOverride = cls; + var localsCopy:Map}> = this.locals.copy(); var result:Dynamic = null; try { - result = this.exprReturn(fn.expr); + result = this.executeEx(fn.expr); } catch (err:PolymodExprEx.ErrorEx) { @@ -1716,6 +1712,7 @@ class PolymodInterpEx extends Interp } } this._classDeclOverride = previousClassDecl; + this.locals = localsCopy; return result; }