Jeremy Evans 752c3dad98 Unflag a splatted flagged hash if the method doesn't use ruby2_keywords
For a method such as:

  def foo(*callee_args) end

If this method is called with a flagged hash (created by a method
flagged with ruby2_keywords), this previously passed the hash
through without modification.  With this change, it acts as if the
last hash was passed as keywords, so a call to:

  foo(*caller_args)

where the last element of caller_args is a flagged hash, will be
treated as:

  foo(*caller_args[0...-1], **caller_args[-1])

As a result, inside foo, callee_args[-1] is an unflagged duplicate
of caller_args[-1] (all other elements of callee_args match
caller_args).

Fixes [Bug #18625]
2022-04-05 11:42:02 +02:00
..
2022-03-08 16:06:37 +09:00
2022-03-17 15:07:18 +09:00