Skip to content

Fix interpreter eval regressions 3#237

Closed
fglock wants to merge 3 commits into
masterfrom
fix-interpreter-eval-regressions-3
Closed

Fix interpreter eval regressions 3#237
fglock wants to merge 3 commits into
masterfrom
fix-interpreter-eval-regressions-3

Conversation

@fglock
Copy link
Copy Markdown
Owner

@fglock fglock commented Feb 25, 2026

No description provided.

…tainer

- OpcodeHandlerExtended.executeChop: use polymorphic .chop() instead of
  hard-casting to RuntimeScalar - fixes chop on arrays

- CompileOperator each: force LIST context on operand so %h stays a
  RuntimeHash rather than being converted to ARRAY_SIZE (scalar size).
  Mirrors JVM handleEach which uses RuntimeContextType.LIST.

- MiscOpcodeHandler: handle EACH before the RuntimeList cast since
  EACH now receives the container (RuntimeHash/RuntimeArray) directly
…h/chop

- CompileAssignment: handle '*' as glob lvalue (e.g. 'foo'->** = 'bar'->**)
  Fixes: op/postfixderef.t tests 27-29 (glob access syntax)

- BytecodeInterpreter DEREF: always call scalarDeref() so non-reference types
  (IO, FORMAT, etc.) correctly throw 'Not a SCALAR reference'
  Fixes: op/postfixderef.t tests 59, 63

- CompileOperator each: force LIST context on operand so %h remains a
  RuntimeHash instead of being converted to ARRAY_SIZE via scalar context
  Fixes: op/lex_assign.t test 86 (each %h inside scalar assignment)

- OpcodeHandlerExtended.executeChop: use polymorphic .chop() instead of
  hard-casting to RuntimeScalar

- MiscOpcodeHandler: handle EACH before RuntimeList cast since EACH now
  receives the container (RuntimeHash/RuntimeArray) directly
@fglock fglock force-pushed the fix-interpreter-eval-regressions-3 branch from 6aeee27 to fa477fd Compare February 25, 2026 15:42
@fglock fglock closed this Feb 25, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant