Class: RuboCop::Cop::Style::RedundantInterpolationUnfreeze
- Extended by:
- AutoCorrector, TargetRubyVersion
- Includes:
- FrozenStringLiteral
- Defined in:
- lib/rubocop/cop/style/redundant_interpolation_unfreeze.rb
Overview
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.
Constant Summary collapse
- MSG =
"Don't unfreeze interpolated strings as they are already unfrozen."
- RESTRICT_ON_SEND =
%i[+@ dup].freeze
Constants included from FrozenStringLiteral
FrozenStringLiteral::FROZEN_STRING_LITERAL, FrozenStringLiteral::FROZEN_STRING_LITERAL_ENABLED
Instance Attribute Summary
Attributes inherited from Base
Instance Method Summary collapse
Methods included from AutoCorrector
Methods included from TargetRubyVersion
minimum_target_ruby_version, required_minimum_ruby_version, support_target_ruby_version?
Methods included from FrozenStringLiteral
frozen_string_literal_comment_exists?
Methods inherited from Base
#active_support_extensions_enabled?, #add_global_offense, #add_offense, #always_autocorrect?, autocorrect_incompatible_with, badge, #begin_investigation, #callbacks_needed, callbacks_needed, #config_to_allow_offenses, #config_to_allow_offenses=, #contextual_autocorrect?, #cop_config, cop_name, #cop_name, department, documentation_url, exclude_from_registry, #excluded_file?, #external_dependency_checksum, inherited, #initialize, #inspect, joining_forces, lint?, match?, #message, #offenses, #on_investigation_end, #on_new_investigation, #on_other_file, #parse, #parser_engine, #ready, #relevant_file?, requires_gem, #string_literals_frozen_by_default?, support_autocorrect?, support_multiple_source?, #target_rails_version, #target_ruby_version
Methods included from ExcludeLimit
Methods included from AutocorrectLogic
#autocorrect?, #autocorrect_enabled?, #autocorrect_requested?, #autocorrect_with_disable_uncorrectable?, #correctable?, #disable_uncorrectable?, #safe_autocorrect?
Methods included from IgnoredNode
#ignore_node, #ignored_node?, #part_of_ignored_node?
Methods included from Util
Constructor Details
This class inherits a constructor from RuboCop::Cop::Base
Instance Method Details
#on_send(node) ⇒ Object
32 33 34 35 36 37 38 39 40 41 42 |
# 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 |