Actions
Bug #10293
closedsplatting an empty hash in a method invocation sends an argument to the method (should send nothing)
Description
irb(main):001:0> def foo; end; foo **{}
ArgumentError: wrong number of arguments (1 for 0)
note that splatting an empty array results in no arguments
this behavior is particularly problematic with send (dispatching to different methods)
send method_name, *possibly_empty_arg_list, **possibly_empty_keyarg_hash
one should not have to do
if possibly_empty_keyarg_hash.empty?
receiver.send method_name, *possibly_empty_arg_list
else
receiver.send method_name, *possibly_empty_arg_list, **possibly_empty_keyarg_hash
end
or
possibly_empty_arg_list << possibly_empty_keyarg_hash unless possibly_empty_keyarg_hash.empty?
receiver.send method_name, *possibly_empty_arg_list
Actions
Like0
Like0Like0Like0Like0Like0