fix: declaring locals with the name of a parameter now treats the parameter as the local's prototype to avoid it being double-freed later