class RBS::RecursiveAncestorError
Attributes
ancestors
[R]
Array[Definition::Ancestor::t]
location
[R]
Location[untyped, untyped]?
Public Class Methods
(Definition::Ancestor::t, ancestors: Array[Definition::Ancestor::t], location: Location[untyped, untyped]?) → void
Source
# File vendor/bundle/ruby/4.0.0/gems/rbs-4.0.3/lib/rbs/errors.rb, line 134 def self.check!(self_ancestor, ancestors:, location:) case self_ancestor when Definition::Ancestor::Instance if ancestors.any? {|a| a.is_a?(Definition::Ancestor::Instance) && a.name == self_ancestor.name } raise new(ancestors: ancestors + [self_ancestor], location: location) end when Definition::Ancestor::Singleton if ancestors.include?(self_ancestor) raise new(ancestors: ancestors + [self_ancestor], location: location) end end end
(ancestors: Array[Definition::Ancestor::t], location: Location[untyped, untyped]?) → void
Source
# File vendor/bundle/ruby/4.0.0/gems/rbs-4.0.3/lib/rbs/errors.rb, line 114 def initialize(ancestors:, location:) @ancestors = ancestors @location = location names = ancestors.map do |ancestor| case ancestor when Definition::Ancestor::Singleton "singleton(#{ancestor.name})" when Definition::Ancestor::Instance if ancestor.args.empty? ancestor.name.to_s else "#{ancestor.name}[#{ancestor.args.join(", ")}]" end end end super "#{Location.to_string location}: Detected recursive ancestors: #{names.join(" < ")}" end
Calls superclass method
Exception::new