module RBS::Test::Errors

def self.to_string(error)

def self.to_string(error)
  case error
  when ArgumentTypeError
    "#{method_tag(error)} ArgumentTypeError: expected #{format_param error.param} but given `#{inspect_(error.value)}`"
  when BlockArgumentTypeError
    "#{method_tag(error)} BlockArgumentTypeError: expected #{format_param error.param} but given `#{inspect_(error.value)}`"
  when ArgumentError
    "#{method_tag(error)} ArgumentError: expected method type #{error.method_type}"
  when BlockArgumentError
    "#{method_tag(error)} BlockArgumentError: expected method type #{error.method_type}"
  when ReturnTypeError
    "#{method_tag(error)} ReturnTypeError: expected `#{error.type}` but returns `#{inspect_(error.value)}`"
  when BlockReturnTypeError
    "#{method_tag(error)} BlockReturnTypeError: expected `#{error.type}` but returns `#{inspect_(error.value)}`"
  when UnexpectedBlockError
    "#{method_tag(error)} UnexpectedBlockError: unexpected block is given for `#{error.method_type}`"
  when MissingBlockError
    "#{method_tag(error)} MissingBlockError: required block is missing for `#{error.method_type}`"
  when UnresolvedOverloadingError
    "#{method_tag(error)} UnresolvedOverloadingError: couldn't find a suitable overloading"
  else
    raise "Unexpected error: #{inspect_(error)}"
  end
end