Actions
Backport #4578
closedFixnum.freeze not frozen?
Status:
Closed
Assignee:
-
Description
=begin
Using ruby 1.8.7 p334
a = 5; a.freeze
Expect: true == a.frozen?
Result: false == a.frozen?
I realize Fixnum is already immutable, however consider the following code:
class Demanding
attr_reader :important
def initialize(important)
@important = important
@important.freeze
end
end
Demanding wants to be able to rely on identifier not changing over its lifespan. I could make it demanding with some other mechanism such as:
- Force important to be a particular type
- Force important to respond_to? particular messages during initialization
These are all slippery and don't address the concern of mutability of important objects. Freeze seemed like the obvious solution, but it's probably best for me to just take a deep copy of important for Demanding's own use.
In the meantime, I thought I should share that freeze is not working for all objects in Ruby 1.8.7 p334.
=end
Actions
Like0
Like0Like0Like0Like0Like0Like0