Actions
Bug #21402
closedruby2_keywords affects methods/procs with post arguments
Description
I believe this is an oversight. We forgot to consider post arguments during the development of ruby2_keywords
. I believe we should not allow ruby2_keywords
on methods/procs with post arguments. Example:
def a(*c, **kw) [c, kw] end
def b(*a, b) a(*a, b) end
ruby2_keywords(:b)
b({foo: 1}, bar: 1)
# Currently: [[{foo: 1}], {bar: 1}]
# Expected: [[{foo: 1}, {bar: 1}], {}]
I think the current behavior is unexpected and undesired, because instead of flagging the last element in the splat array, it flags a post argument.
I've submitted a pull request to fix this: https://github.com/ruby/ruby/pull/13475
Updated by jeremyevans0 (Jeremy Evans) 24 days ago
- Status changed from Open to Closed
Updated by alanwu (Alan Wu) 18 days ago
- Backport changed from 3.2: REQUIRED, 3.3: REQUIRED, 3.4: REQUIRED to 3.2: REQUIRED, 3.3: REQUIRED, 3.4: DONE
3.4 backport done in fd036dbc3f39e6bdce735edf9ca187a690fe2079
Updated by nagachika (Tomoyuki Chikanaga) about 17 hours ago
- Backport changed from 3.2: REQUIRED, 3.3: REQUIRED, 3.4: DONE to 3.2: REQUIRED, 3.3: DONE, 3.4: DONE
ruby_3_3 e39a0a19c03fbb37d1c9d1e050bb551dccfc11c6 merged revision(s) ce849d565bf6aae8e0179fffb04eb1f665f17347, acb29f7fa1497463ed3bdd65549ef20b61beda64.
Actions
Like0
Like0Like0Like0