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