fix: dispatch <> overload on blessed objects instead of warning#502
Merged
fix: dispatch <> overload on blessed objects instead of warning#502
Conversation
When a blessed object with `use overload '<>' => sub { ... }` was used
in `<$obj>`, PerlOnJava treated it as readline on an unopened filehandle
instead of invoking the overloaded method.
Fix adds overload check in Readline.readline() before the unopened
filehandle warning, and routes blessed objects through Readline in the
bytecode interpreter backend.
This fixes Iterator::Simple test failures (67/67 tests now pass).
Generated with [Devin](https://cli.devin.ai/docs)
Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Generated with [Devin](https://cli.devin.ai/docs) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
<>overload dispatch on blessed objects in both JVM and bytecode interpreter backends<$obj>is used on a blessed object withuse overload '<>' => sub { ... }, PerlOnJava now correctly invokes the overloaded method instead of warning about an "unopened filehandle"Readline.readline()now checks for(<>overload before falling through to the unopened filehandle warningOpcodeHandlerExtended.executeReadline) now routes blessed objects toReadline.readline()instead ofDiamondIO.readline()This unblocks Iterator::Simple which now passes 67/67 tests (previously 65/67 with 2
<>overload failures).Test plan
makepasses (all unit tests)<$obj>with overloaded<>works in both JVM and interpreter backendsGenerated with Devin