softpano / pythonizer

Translator (or more correctly transcriber) from Perl to Python
http://www.softpanorama.org/Scripting/Pythonorama/Python_for_perl_programmers/Pythonizer/index.shtml
Other
39 stars 17 forks source link

State variable initialized to a function argument generates bad code #128

Open snoopyjc opened 2 years ago

snoopyjc commented 2 years ago

State variable initialized to a function argument, my var, or expression generates bad code. For example:

sub banner {
    state $my_log_dir=$_[0];
    ...
}

Generates:

banner_my_log_dir = _args[0]

While this code looks perfectly reasonable, it's generated BELOW the function definition, where the arguments are no longer available. Same issue if the state var is initialized with a 'my' var of the function. If the state var is initialized with an expression, the code doesn't even try to make it a state var.

snoopyjc commented 2 years ago

Fixed in my v0.959 https://github.com/snoopyjc/pythonizer/