fix: variable declarations shouldn't collide with defined name of named function exp

This commit is contained in:
TopchetoEU 2024-09-05 13:29:42 +03:00
parent 8f13ff3e0b
commit 9ec99def3f
Signed by: topchetoeu
GPG Key ID: 6531B8583E5F6ED4

View File

@ -40,14 +40,13 @@ public class FunctionScope extends Scope {
@Override public Variable defineStrict(Variable var, Location loc) { @Override public Variable defineStrict(Variable var, Location loc) {
checkNotEnded(); checkNotEnded();
if (locals.has(var.name)) throw alreadyDefinedErr(loc, var.name); if (locals.has(var.name)) throw alreadyDefinedErr(loc, var.name);
if (specials.has(var.name)) throw alreadyDefinedErr(loc, var.name);
if (blacklistNames.contains(var.name)) throw alreadyDefinedErr(loc, var.name); if (blacklistNames.contains(var.name)) throw alreadyDefinedErr(loc, var.name);
var res = super.defineStrict(var, loc); var res = super.defineStrict(var, loc);
removeCapture(var.name); removeCapture(var.name);
return res; return res;
} }
public Variable defineParam(Variable var, Location loc) { public Variable defineSpecial(Variable var, Location loc) {
return specials.add(var); return specials.add(var);
} }