class RuboCop::Cop::Style::RedundantInterpolationUnfreeze

Before Ruby 3.0, interpolated strings followed the frozen string literal magic comment which sometimes made it necessary to explicitly unfreeze them. Ruby 3.0 changed interpolated strings to always be unfrozen which makes unfreezing them redundant.

@example

# bad
+"#{foo} bar"

# bad
"#{foo} bar".dup

# good
"#{foo} bar"

Constants

MSG
RESTRICT_ON_SEND

Public Instance Methods

on_send(node) click to toggle source
# File lib/rubocop/cop/style/redundant_interpolation_unfreeze.rb, line 32
def on_send(node)
  return if node.arguments?
  return unless (receiver = node.receiver)
  return unless receiver.dstr_type?
  return if uninterpolated_string?(receiver) || uninterpolated_heredoc?(receiver)

  add_offense(node.loc.selector) do |corrector|
    corrector.remove(node.loc.selector)
    corrector.remove(node.loc.dot) unless node.unary_operation?
  end
end