You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Fix strict-refs NonStrict methods to properly check reference types
The NonStrict methods (hashDerefNonStrict and arrayDerefNonStrict) were
incorrectly treating ALL types (including wrong reference types) as symbolic
references. This broke type checking and caused tests to fail.
The issue: When trying to do $arrayref->{key} or $hashref->[index], these
should throw 'Not a HASH reference' or 'Not an ARRAY reference' errors,
but instead they were being treated as symbolic references and converting
the reference to a string to look up a global variable.
Fix: Only STRING and BYTE_STRING types should be treated as symbolic
references. Other types (ARRAYREFERENCE trying to be a hash, HASHREFERENCE
trying to be an array, etc.) should throw appropriate errors, just like
the strict versions do.
Also added GLOB support to both NonStrict methods to match the strict versions.
Partial fix for regressions in:
- t/op/avhv.t: 0/40 → 16/40 (VerifyError remains at line 155)
- t/op/magic.t: Still investigating (103/208)
- Other tests: TBD
0 commit comments