🙄

[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)
GitHubで編集を提案

Discussion