class RuboCop::Cop::Sorbet::ImplicitConversionMethod

@note Since the arity of aliased methods is not checked, false positives may result.
@see docs.ruby-lang.org/en/master/implicit_conversion_rdoc.html<br><br>alias to_str to_s
# bad
def self.to_str(x); end
# good
def self.to_str; end
# bad
def to_str(x); end
# good
def to_str; end
# bad
@example
implicit conversion is currently unsupported.
Since Sorbet is a nominal (not structural) type system,
Disallows declaring implicit conversion methods.

def on_alias(node)

def on_alias(node)
  new_id = node.new_identifier
  add_offense(new_id) if IMPLICIT_CONVERSION_METHODS.include?(new_id.value)
end

def on_def(node)

def on_def(node)
  return unless IMPLICIT_CONVERSION_METHODS.include?(node.method_name)
  return unless node.arguments.empty?
  add_offense(node)
end

def on_send(node)

def on_send(node)
  add_offense(node.first_argument) if IMPLICIT_CONVERSION_METHODS.include?(node.first_argument.value)
end