Actions
Bug #6476
closedProc unrolls an array even without splat
Description
Normal behaviour:
def pr_def(recv,args)
puts "#{recv.inspect} + #{args.inspect}"
end
pr_def([1,2,3]) # => [1] + [2,3]
pr_def([1,2,3]) # => [1,2,3] + []
pr_def([[1,2,3]]) # => [[1,2,3]] + []
pr_lambda = lambda{|recv,args| puts "#{recv.inspect} + #{args.inspect}"}
pr_lambda.call([1,2,3]) # => [1] + [2,3]
pr_lambda.call([1,2,3]) # => [1,2,3] + []
pr_lambda.call([[1,2,3]]) # => [[1,2,3]] + []
But Proc acts in a different way.
pr_proc = Proc.new{|recv,args| puts "#{recv.inspect} + #{args.inspect}"}
pr_proc.call([1,2,3]) # => 1 + [2,3]
pr_proc.call([1,2,3]) # => 1 + [2,3]
pr_proc.call([[1,2,3]]) # => [1,2,3] + []
Is it right behaviour or such unsplatting is a bug?
Actions
Like0
Like0Like0