Actions
Bug #16473
closedNew deprecated warning disallows keyword arguments bypassing
Bug #16473:
New deprecated warning disallows keyword arguments bypassing
Description
Hello. I see that ruby 2.7.0 prints unnecessary deprecated warning during arguments bypassing.
def kw(a: 1)
puts "kw #{a}"
end
def non_kw(a = {}, *args)
puts "non kw #{a}"
kw *args
end
non_kw({ :a => 2 }, :a => 2)
non_kw({ :a => 3 })
non_kw
The right output is:
non kw {:a=>2}
kw 2
non kw {:a=>3}
kw 1
non kw {}
kw 1
Ruby 2.7.0 provides deprecated warning:
warning: Using the last argument as keyword parameters is deprecated; maybe ** should be added to the call
*args
is bypassing arguments without any conversion. It looks like ruby converts last hash to keywords and than converts it back to hash. I think it is a bug.
Actions