Actions
Bug #12002
closed**param notation seems to be creating a new hash in ruby 2.2.0
Description
I found the regression regarding the handling of the **
notation for options hash in a method. In ruby 2.1 and lower, it seems to always be handled in the same way, i.e. it is always the same object:
def hashie1(o={})
puts o.object_id
end
def hashie2(**o)
puts o.object_id
end
v={}
puts v.object_id
hashie1(v)
hashie2(v)
# 2.0.0
69830362391800
69830362391800
69830362391800
# 2.1.6
69884363736320
69884363736320
69884363736320
# 2.2.4
69922787909840
69922787909840
69922787909700
# 2.3.0
69915134419200
69915134419200
69915134419000
I didn't find any documentation regarding this change. Is it supposed to work the way it works in 2.2 and 2.3? Because my understanding was that **
was supposed to be the new notation and should just work as the previous notation.
Actions
Like0
Like0Like0Like0