class RBS::DuplicatedMethodDefinitionError

Attributes

members[R]
method_name[R]
type[R]

Public Class Methods

new(type:, method_name:, members:) click to toggle source
Calls superclass method
# File rbs-3.6.1/lib/rbs/errors.rb, line 258
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

Public Instance Methods

location() click to toggle source
# File rbs-3.6.1/lib/rbs/errors.rb, line 283
def location
  members[0].location
end
other_locations() click to toggle source
# File rbs-3.6.1/lib/rbs/errors.rb, line 287
def other_locations
  members.drop(1).map(&:location)
end
qualified_method_name() click to toggle source
# File rbs-3.6.1/lib/rbs/errors.rb, line 270
def qualified_method_name
  case type
  when Types::ClassSingleton
    "#{type.name}.#{method_name}"
  else
    "#{type.name}##{method_name}"
  end
end
type_name() click to toggle source
# File rbs-3.6.1/lib/rbs/errors.rb, line 279
def type_name
  type.name
end