I have taken over maintenance of the LMDB gem, and since I recently upgraded to Ruby 2.7, I decided to run its test suite. I am getting the warning
Using the last argument as keyword parameters is deprecated
—but I’m getting it against methods that are written in C. I can find the *reference* (eg https://docs.ruby-lang.org/en/2.7.0/extension_rdoc.html#label-Method+Definition ), but I have had a hell of a time trying to find anything that looks like a definitive migration guide.
Note that nowhere in the test suite is anything actually calling methods of the autovivified hash form eg `:symbol => value`; they either take the form `symbol: value` or they are not present at all, so I can only assume the warning is being triggered in the C code.
I discovered there is an rb_scan_args_kw but the reference doesn’t explain how to use it. Indeed the behaviour seems inconsistent: it appears to work as expected in one context and then complains in a different but parametrically identical context. So, if anybody is sitting on any examples, could you please direct me to them?
For reference the branch is at https://github.com/doriantaylor/lmdb/tree/reconcile-2.7 .
Make things. Make sense.