File: //usr/lib/ruby/gems/3.2.0/gems/rbs-2.8.2/sig/ancestor_builder.rbs
module RBS
class DefinitionBuilder
# AncestorBuilder calculates the ancestors of a class or module.
#
class AncestorBuilder
# OneAncestors represents a list of _direct_ ancestors of a type name
#
# _Direct_ ancestors is defined as follows:
#
# * Super class is a direct ancestor
# * Self type constraints are direct ancestors
# * Mixin modules are direct ancestors
# * Mixin interfaces are direct ancestors
#
# The optional attributes are defined by the type of the ancestors object, one of the following five groups:
#
# 1. Instance of a class -- with super_class, included_modules, included_interfaces, and prepended_modules
# 2. Instance of a module -- with self_types, included_modules, included_interfaces, and prepended_modules
# 3. Singleton of a class or module -- with super_class, extended_modules, and extended_interfaces
# 4. Interface -- with included_interfaces
#
class OneAncestors
attr_reader type_name: TypeName
attr_reader params: Array[Symbol]?
# Returns super_class ancestor if specified
#
# * Always `nil` if this is not a class.
#
attr_reader super_class: Definition::Ancestor::t?
# Returns list of _self type constraints_ of a module
#
# * Returns `nil` if it is not a module instance.
#
attr_reader self_types: Array[Definition::Ancestor::Instance]?
# Returns the list of included modules
#
# * Returns `nil` if it is an interface or it is a singleton.
#
attr_reader included_modules: Array[Definition::Ancestor::Instance]?
# Returns the list of included interfaces
#
# * Returns `nil` it it is a singleton.
#
attr_reader included_interfaces: Array[Definition::Ancestor::Instance]?
# Returns the list of prepended modules
#
# * Returns `nil` if it is an interface or it is a singleton.
#
attr_reader prepended_modules: Array[Definition::Ancestor::Instance]?
# Returns the list of extended modules
#
# * Returns `nil` if it is an interface or it is an instance.
#
attr_reader extended_modules: Array[Definition::Ancestor::Instance]?
# Returns the list of extended interfaces
#
# * Returns `nil` if it is an interface or it is an instance.
#
attr_reader extended_interfaces: Array[Definition::Ancestor::Instance]?
def initialize: (type_name: TypeName,
params: Array[Symbol]?,
super_class: Definition::Ancestor::t?,
self_types: Array[Definition::Ancestor::Instance]?,
included_modules: Array[Definition::Ancestor::Instance]?,
included_interfaces: Array[Definition::Ancestor::Instance]?,
prepended_modules: Array[Definition::Ancestor::Instance]?,
extended_modules: Array[Definition::Ancestor::Instance]?,
extended_interfaces: Array[Definition::Ancestor::Instance]?) -> void
def each_ancestor: { (Definition::Ancestor::t) -> void } -> void
| -> Enumerator[Definition::Ancestor::t, void]
# Returns a OneAncestors object for class instance
def self.class_instance: (type_name: TypeName, params: Array[Symbol], super_class: Definition::Ancestor::t?) -> instance
# Returns a OneAncestors object for module instance
def self.module_instance: (type_name: TypeName, params: Array[Symbol]) -> instance
# Returns a OneAncestors object for class/module singleton
def self.singleton: (type_name: TypeName, super_class: Definition::Ancestor::t) -> instance
# Returns a OneAncestors object for interface
def self.interface: (type_name: TypeName, params: Array[Symbol]) -> instance
def each_included_module: () { (Definition::Ancestor::Instance) -> void } -> void
| () -> Enumerator[Definition::Ancestor::Instance, void]
def each_included_interface: () { (Definition::Ancestor::Instance) -> void } -> void
| () -> Enumerator[Definition::Ancestor::Instance, void]
def each_prepended_module: () { (Definition::Ancestor::Instance) -> void } -> void
| () -> Enumerator[Definition::Ancestor::Instance, void]
def each_extended_module: () { (Definition::Ancestor::Instance) -> void } -> void
| () -> Enumerator[Definition::Ancestor::Instance, void]
def each_extended_interface: () { (Definition::Ancestor::Instance) -> void } -> void
| () -> Enumerator[Definition::Ancestor::Instance, void]
def each_self_type: () { (Definition::Ancestor::Instance) -> void } -> void
| () -> Enumerator[Definition::Ancestor::Instance, void]
end
attr_reader env: Environment
attr_reader one_instance_ancestors_cache: Hash[TypeName, OneAncestors]
attr_reader instance_ancestors_cache: Hash[TypeName, Definition::InstanceAncestors]
attr_reader one_singleton_ancestors_cache: Hash[TypeName, OneAncestors]
attr_reader singleton_ancestors_cache: Hash[TypeName, Definition::SingletonAncestors]
attr_reader one_interface_ancestors_cache: Hash[TypeName, OneAncestors]
attr_reader interface_ancestors_cache: Hash[TypeName, Definition::InstanceAncestors]
def initialize: (env: Environment) -> void
def instance_ancestors: (TypeName, ?building_ancestors: Array[Definition::Ancestor::t]) -> Definition::InstanceAncestors
def singleton_ancestors: (TypeName, ?building_ancestors: Array[Definition::Ancestor::t]) -> Definition::SingletonAncestors
def interface_ancestors: (TypeName, ?building_ancestors: Array[Definition::Ancestor::t]) -> Definition::InstanceAncestors
def one_instance_ancestors: (TypeName) -> OneAncestors
def one_singleton_ancestors: (TypeName) -> OneAncestors
def one_interface_ancestors: (TypeName) -> OneAncestors
private
def validate_super_class!: (TypeName, Environment::ClassEntry) -> void
def mixin_ancestors: (Environment::ClassEntry | Environment::ModuleEntry,
TypeName,
included_modules: Array[Definition::Ancestor::Instance]?,
included_interfaces: Array[Definition::Ancestor::Instance]?,
prepended_modules: Array[Definition::Ancestor::Instance]?,
extended_modules: Array[Definition::Ancestor::Instance]?,
extended_interfaces: Array[Definition::Ancestor::Instance]?) -> void
def mixin_ancestors0: (AST::Declarations::Class | AST::Declarations::Module | AST::Declarations::Interface,
TypeName,
align_params: Substitution?,
included_modules: Array[Definition::Ancestor::Instance]?,
included_interfaces: Array[Definition::Ancestor::Instance]?,
prepended_modules: Array[Definition::Ancestor::Instance]?,
extended_modules: Array[Definition::Ancestor::Instance]?,
extended_interfaces: Array[Definition::Ancestor::Instance]?) -> void
end
end
end