Skip to content

[pull] master from ruby:master#812

Merged
pull[bot] merged 11 commits intoturkdevops:masterfrom
ruby:master
Feb 27, 2026
Merged

[pull] master from ruby:master#812
pull[bot] merged 11 commits intoturkdevops:masterfrom
ruby:master

Conversation

@pull
Copy link

@pull pull bot commented Feb 27, 2026

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.4)

Can you help keep this open source service alive? 💖 Please sponsor : )

Earlopain and others added 11 commits February 27, 2026 13:33
They currently complain that the parent method is not forwarding.
But the actual problem is that these types of arguments simply don't
accept `...`

Fixes [Bug #21927]

ruby/prism@0aa2363331
When guarding on anything but special const forms (`types::Immediate`),
we need to dereference the VALUE to load RBasic::flags and maybe
RBasic::class. Those are memory read effects.
Since `GetLocal` (for `level > 0`) is now split into `GetEP` + `LoadField`(#16215),
 we can remove the Insn and use `LoadSP` instead for the consistency. 
Also removed a counter that appeared unnecessary.
Unify references in rules that mix positional references and tagged
references.  Leave the positional reference-only rules unchanged.
The most common cases are nil and hash, so just cover those. If we need to convert to a hash, we can handle that later.
Use get_lvar_level and GetEP instead.
Continuation of #16226.

### Considerations
- The OR (`|`) operation in Rust has the same behavior as in Ruby (it compiles to a assembly `or` instruction: https://godbolt.org/z/5McGzj783);
- There are no risk of overflows;
- In the test, I added the result of the interpreter in an assertion based on feedback of my last PR.
@pull pull bot locked and limited conversation to collaborators Feb 27, 2026
@pull pull bot added the ⤵️ pull label Feb 27, 2026
@pull pull bot merged commit 50f51f7 into turkdevops:master Feb 27, 2026
1 of 2 checks passed
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants