Exception: RBS::DuplicatedMethodDefinitionError
- Inherits:
-
DefinitionError
- Object
- StandardError
- BaseError
- DefinitionError
- RBS::DuplicatedMethodDefinitionError
- Includes:
- DetailedMessageable
- Defined in:
- lib/rbs/errors.rb
Instance Attribute Summary collapse
-
#members ⇒ Object
readonly
Returns the value of attribute members.
-
#method_name ⇒ Object
readonly
Returns the value of attribute method_name.
-
#type ⇒ Object
readonly
Returns the value of attribute type.
Instance Method Summary collapse
-
#initialize(type:, method_name:, members:) ⇒ DuplicatedMethodDefinitionError
constructor
A new instance of DuplicatedMethodDefinitionError.
- #location ⇒ Object
- #other_locations ⇒ Object
- #qualified_method_name ⇒ Object
- #type_name ⇒ Object
Methods included from DetailedMessageable
Constructor Details
#initialize(type:, method_name:, members:) ⇒ DuplicatedMethodDefinitionError
Returns a new instance of DuplicatedMethodDefinitionError.
250 251 252 253 254 255 256 257 258 259 260 |
# File 'lib/rbs/errors.rb', line 250 def initialize(type:, method_name:, members:) @type = type @method_name = method_name @members = members = +"#{Location.to_string location}: #{qualified_method_name} has duplicated definitions" if members.size > 1 << " in #{other_locations.map { |loc| Location.to_string loc }.join(', ')}" end super end |
Instance Attribute Details
#members ⇒ Object (readonly)
Returns the value of attribute members.
248 249 250 |
# File 'lib/rbs/errors.rb', line 248 def members @members end |
#method_name ⇒ Object (readonly)
Returns the value of attribute method_name.
247 248 249 |
# File 'lib/rbs/errors.rb', line 247 def method_name @method_name end |
#type ⇒ Object (readonly)
Returns the value of attribute type.
246 247 248 |
# File 'lib/rbs/errors.rb', line 246 def type @type end |
Instance Method Details
#location ⇒ Object
275 276 277 |
# File 'lib/rbs/errors.rb', line 275 def location members[0].location end |
#other_locations ⇒ Object
279 280 281 |
# File 'lib/rbs/errors.rb', line 279 def other_locations members.drop(1).map(&:location) end |
#qualified_method_name ⇒ Object
262 263 264 265 266 267 268 269 |
# File 'lib/rbs/errors.rb', line 262 def qualified_method_name case type when Types::ClassSingleton "#{type.name}.#{method_name}" else "#{type.name}##{method_name}" end end |
#type_name ⇒ Object
271 272 273 |
# File 'lib/rbs/errors.rb', line 271 def type_name type.name end |