neogen
neogen copied to clipboard
fix: Python bare return functions
Error:
Functions with only bare returns evaluate first, in line 62, the value nodes[i.Return] is set to nil, and because validate_direct_returns is evaluated after, it breaks on line 80, expecting a table but getting a nil value
Example code
def foo(bar=None):
if not bar:
return
else:
print(bar)
Throws this error:
E5108: Error executing lua ...dez/personal/neogen/lua/neogen/configurations/python.lua:80: bad argument #1 to 'pairs' (table expected, got nil)
stack traceback:
[C]: in function 'pairs'
...dez/personal/neogen/lua/neogen/configurations/python.lua:80: in function 'validate_direct_returns'
...dez/personal/neogen/lua/neogen/configurations/python.lua:251: in function 'extract'
.../andres.mendez/personal/neogen/lua/neogen/granulator.lua:34: in function 'granulator'
...e/andres.mendez/personal/neogen/lua/neogen/generator.lua:280: in function 'generate'
[string ":lua"]:1: in main chunk
Fix:
Swap execution order of validate_bare_returns and validate_direct_returns.