Actions
Bug #21374
openFrozenError message is inconsistent when a singleton method is defined on a frozen object
Description
I would expect a message to contain an object class (e.g. can't modify frozen <class>: <object#inspect>
) when an ordinary frozen object (non a module or class) is being modified. It works this way in the following example:
object = []; object.freeze; object.instance_variable_set(:@a, 42)
# (irb):5:in `instance_variable_set': can't modify frozen Array: [] (FrozenError)
But it doesn't in the following example:
object = []; object.freeze; def object.x; end
# (irb):4:in `<main>': can't modify frozen object: [] (FrozenError)
Updated by matz (Yukihiro Matsumoto) 5 days ago
I agree with you. It should be consistent (and I prefer can't modify frozen Array: [] (FrozenError)
message). But there might be some internal reason. We have to investigate first.
Matz.
Actions
Like0
Like0Like0