Sha256: c5b7722d25ba2f66844f0adc6e4baac54a420fc8528ba1b63d663ed98028bb9f
Contents?: true
Size: 1.1 KB
Versions: 8
Compression:
Stored size: 1.1 KB
Contents
# frozen_string_literal: true module RuboCop module Cop module Style # This cop check for uses of Object#freeze on immutable objects. # # @example # # bad # CONST = 1.freeze # # # good # CONST = 1 class RedundantFreeze < Cop include FrozenStringLiteral MSG = 'Freezing immutable objects is pointless.'.freeze def_node_matcher :freezing?, '(send $_ :freeze)' def on_send(node) freezing?(node) do |receiver| return unless immutable_literal?(receiver) add_offense(node, :expression) end end def autocorrect(node) lambda do |corrector| corrector.remove(node.loc.dot) corrector.remove(node.loc.selector) end end private def immutable_literal?(node) return false unless node return true if node.immutable_literal? FROZEN_STRING_LITERAL_TYPES.include?(node.type) && frozen_string_literals_enabled?(processed_source) end end end end end
Version data entries
8 entries across 8 versions & 2 rubygems