rails/rails で Style/RedundantFreeze
cop を適用する PR で正規表現の freeze まわりの偽陽性が出ているとのイシューを yahonda さんに開いてもらってその対応をしたりした。以下がオリジン。
ものとしては /regexp/.freeze
に対して .freeze
を消しに掛かるのを、frozen string literal での文字列とは違うので .freeze
を維持するようにした。
定数代入での CONST = /regexp/.freeze
が対象となっているため、Style/RedundantFreeze
cop とセットで考慮する必要のある Style/MutableConstant
cop には正規表現オブジェクトの定数代入時に .freeze
を付与するように変更している。ケースとしてはレアなものとなるが Range オブジェクトにも同様のことが言及できたので同様の対応をしている。ハートビートで kamipo さんに教えてもらったケースで、コメントももらえていてなるほどといったケーススタディになる。