• Roman Alifanov's avatar
    Fix critical codegen bugs for complex expressions · a9fe7b9d
    Roman Alifanov authored
    - String interpolation with operators: {a == b} now generates proper
      bash comparison instead of invalid ${a == b}
    - Double method call in conditions: CSE precompute now correctly reuses
      temp variable for CallExpr to avoid calling method twice
    - arr.push() with method call: detect side effects and call method
      separately to avoid subshell state isolation
    - charAt() with newline: use printf X marker to preserve trailing newlines
    - this.field.method() and obj.field.method(): handle nested MemberAccess
      in return statements and assignments
    - Namespace vs variable collision: check if identifier is known variable
      before treating as namespace
    - return func() with arrays: use _generate_call_arg for proper nameref
    a9fe7b9d
Name
Last commit
Last update
..
__init__.py Loading commit data...
ast_nodes.py Loading commit data...
awk_codegen.py Loading commit data...
class_codegen.py Loading commit data...
codegen.py Loading commit data...
cse_codegen.py Loading commit data...
dce.py Loading commit data...
decorator_codegen.py Loading commit data...
dispatch_codegen.py Loading commit data...
errors.py Loading commit data...
expr_codegen.py Loading commit data...
lexer.py Loading commit data...
main.py Loading commit data...
parser.py Loading commit data...
stdlib.py Loading commit data...
stmt_codegen.py Loading commit data...
tokens.py Loading commit data...