class RuboCop::Cop::Style::RedundantFreeze

This cop check for uses of Object#freeze on immutable objects.

@example

# bad
CONST = 1.freeze

# good
CONST = 1

Constants

MSG

Public Instance Methods

autocorrect(node) click to toggle source
# File lib/rubocop/cop/style/redundant_freeze.rb, line 29
def autocorrect(node)
  lambda do |corrector|
    corrector.remove(node.loc.dot)
    corrector.remove(node.loc.selector)
  end
end
on_send(node) click to toggle source
# File lib/rubocop/cop/style/redundant_freeze.rb, line 19
def on_send(node)
  receiver, method_name, *args = *node

  return unless method_name == :freeze &&
                args.empty? &&
                immutable_literal?(receiver)

  add_offense(node, :expression)
end

Private Instance Methods

immutable_literal?(node) click to toggle source
# File lib/rubocop/cop/style/redundant_freeze.rb, line 38
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