Issue #19973 has been updated by nagachika (Tomoyuki Chikanaga).
Backport changed from 3.0: REQUIRED, 3.1: REQUIRED, 3.2: REQUIRED to 3.0: REQUIRED, 3.1:
REQUIRED, 3.2: DONE
ruby_3_2 24dd529750c08b5603fb418a4f34998b9bf6c8f9 merged revision(s)
c8d162c889008028b148437d02f36f4edaa749fd.
----------------------------------------
Bug #19973: Duplicate keyword argument names don't always warn
https://bugs.ruby-lang.org/issues/19973#change-106968
* Author: tenderlovemaking (Aaron Patterson)
* Status: Closed
* ruby -v: ruby 3.3.0dev (2023-10-24T19:38:50Z cleanup 3525a9bd22) [arm64-darwin23]
* Backport: 3.0: REQUIRED, 3.1: REQUIRED, 3.2: DONE
----------------------------------------
Calling a method with duplicate keyword arguments doesn't warn when it could:
```ruby
def bar a:, b:
a + b
end
# Warning
bar(a: 1, b: 3, a: 2)
z = { b: 123 }
# No warning
bar(a: 1, **z, a: 2)
```
The first call to `bar` gives a warning about duplicate keyword args, but the second call
doesn't. I think both cases should emit a warning.
--
https://bugs.ruby-lang.org/