Actions
Bug #16164
closedENV.each with block returns ENV object itself, not Hash
Status:
Closed
Assignee:
-
Target version:
-
ruby -v:
ruby 2.6.3p62 (2019-04-16 revision 67580) [x64-mingw32]
Backport:
Description
My code:
x = ENV.each { |name, value| }
puts "Return value class: #{x.class}"
puts "Return value is a Hash? #{x.kind_of?(Hash)}"
puts "Return value is actually ENV itself? #{x.object_id == ENV.object_id}"
Its output:
Return value class: Object
Return value is a Hash? false
Return value is actually ENV itself? true
I expected a Hash, because the doc says:
each { |name, value| block } → Hash
There 's some danger here, because if I modify the returned object, I'm actually modifying ENV itself.
I think this is also true for a number of other methods in ENV; e.g., ENV.delete_if.
Files
Actions
Like0
Like0Like0Like0Like0