Project

General

Profile

« Previous | Next » 

Revision 70d4dcb7

Added by eileencodes (Eileen Uchitelle) over 1 year ago

[Prism] Use putnil for nil kwargs, not putobject {}

This addresses one of the issues in the test_kw_splat_nil failure, but
doesn't make the test pass because of other changes that need to be made
to Prism directly.

One issue was when we have the following code Prism was using
putobject with an empty hash whereas the parse.y parser used putnil.

:ok.itself(**nil) 

Before:

0000 putobject :ok ( 1)[Li] 0002 putobject {} 0004 opt_send_without_block <calldata!mid:itself, argc:1, KW_SPLAT> 0006 leave 

After:

== disasm: #<ISeq:<main>@test2.rb:1 (1,0)-(1,17)> 0000 putobject :ok ( 1)[Li] 0002 putnil 0003 opt_send_without_block <calldata!mid:itself, argc:1, KW_SPLAT> 0005 leave 

Related to ruby/prism#2935.