🙄
[Bug #21374] freeze されているオブジェクトのエラーメッセージに関するバグ報告
[Bug #21374] FrozenError message is inconsistent when a singleton method is defined on a frozen object
-
freezeされているオブジェクトに対して変更する場合、以下のようにcan't modify frozen <class>: <object#inspect>のような形式のエラーになる
obj = [].freeze
obj.instance_variable_set(:@a, 42)
# error: 'Kernel#instance_variable_set': can't modify frozen Array: [] (FrozenError)
- これがシングルトンメソッドを追加する場合は意図しないエラーになっているというバグ報告
- エラーメッセージ内のクラス名が
objectになっている
- エラーメッセージ内のクラス名が
obj = [].freeze
def obj.hoge = 42
# => can't modify frozen object: [] (FrozenError)
- これ自体は matz も同意しているので何かしら理由がないのであれば対応されそう
Discussion