Feature #11589
closedDisasm callinfo kw output as list of keywords used
Description
Feature https://bugs.ruby-lang.org/issues/10440 changed the disasm output so that only the number of keywords used at a call site is added to the callinfo output. This means that if a function has n keyword arguments and k are used at a call site, then there are n!/(n-k)! possible combinations of k (keyword, argument) pairs. Essentially, this means that it is impossible to determine what keywords were used and in what order from the disasm without referring to the original source code. I changed the disasm output (https://github.com/ruby/ruby/compare/trunk...bpblack:kwargs) to replace the number of keywords with the ordered list of keywords used in the call info disasm. For example:
Currently, the call info disasm for the call to test1 looks like:
Based on this disasm, all I know without referring to the original source code is that the arguments are passed as one of the 6 possible orderings of keywords a, b, and c.
With my changes it looks like: