module RuboCop::Cop::Style::MutableConstant::ShareableConstantValue

def magic_comment_in_scope(node)

that's in scope for this node
Identifies the most recent magic comment with valid shareable constant values
def magic_comment_in_scope(node)
  processed_source_till_node(node).reverse_each.find do |line|
    MagicComment.parse(line).valid_shareable_constant_value?
  end
end

def processed_source_till_node(node)

def processed_source_till_node(node)
  processed_source.lines[0..(node.last_line - 1)]
end

def recent_shareable_value?(node)

def recent_shareable_value?(node)
  shareable_constant_comment = magic_comment_in_scope node
  return false if shareable_constant_comment.nil?
  shareable_constant_value = MagicComment.parse(shareable_constant_comment)
                                         .shareable_constant_value
  shareable_constant_value_enabled? shareable_constant_value
end

def shareable_constant_value_enabled?(value)

def shareable_constant_value_enabled?(value)
  %w[literal experimental_everything experimental_copy].include? value
end