class RBS::DuplicatedMethodDefinitionError

def initialize(type:, method_name:, members:)

def initialize(type:, method_name:, members:)
  @type = type
  @method_name = method_name
  @members = members
  message = +"#{Location.to_string location}: #{qualified_method_name} has duplicated definitions"
  if members.size > 1
    message << " in #{other_locations.map { |loc| Location.to_string loc }.join(', ')}"
  end
  super message
end

def location

def location
  members[0].location
end

def other_locations

def other_locations
  members.drop(1).map(&:location)
end

def qualified_method_name

def qualified_method_name
  case type
  when Types::ClassSingleton
    "#{type.name}.#{method_name}"
  else
    "#{type.name}##{method_name}"
  end
end

def type_name

def type_name
  type.name
end