🌟

[Bug #20726] shareable_constant_value: literal + [a: obj] のバグ報告

2024/09/14に公開

[Bug #20726] Issue with hash without braces when assigned to constant with ractor literals

  • shareable_constant_value: literal のときに [a: obj] のようなコードがあると compile error になるというバグ報告
# shareable_constant_value: literal
A = [a: 1]
p A
__END__
output:
-- raw disasm--------
   trace: 1
   0000 newarray             1                                           (   2)
   0002 putspecialobject     3                                           (   2)
*  0004 setconstant          :A                                          (   2)
   trace: 1
   0006 putself                                                          (   3)
   0007 opt_getconstant_path [:A]                                        (   3)
   0009 opt_send_without_block <calldata:p, 1>                           (   3)
   0011 leave                                                            (   3)
---------------------
test.rb:2: argument stack underflow (-1)
test.rb: compile error (SyntaxError)
  • [{a: 1}] だと問題ないのと Prism のパーサーだと再現しなかったので parse.y 特有ぽいですかね?
GitHubで編集を提案

Discussion