File Manager

Current Path : /usr/lib/ruby/gems/3.0.0/gems/rbs-1.0.4/sig/
Upload File :
Current File : //usr/lib/ruby/gems/3.0.0/gems/rbs-1.0.4/sig/definition.rbs

module RBS
  class Definition
    type accessibility = :public | :private

    class Variable
      attr_reader parent_variable: Variable?
      attr_reader type: Types::t
      attr_reader declared_in: TypeName

      def initialize: (parent_variable: Variable?, type: Types::t, declared_in: TypeName) -> void

      def sub: (Substitution) -> Variable
    end

    class Method
      type method_member = AST::Members::MethodDefinition | AST::Members::AttrReader | AST::Members::AttrAccessor | AST::Members::AttrWriter

      class TypeDef
        attr_reader type: MethodType
        attr_reader member: method_member
        attr_reader defined_in: TypeName
        attr_reader implemented_in: TypeName?

        def initialize: (type: MethodType, member: method_member, defined_in: TypeName, implemented_in: TypeName?) -> void

        def comment: () -> AST::Comment?

        def annotations: () -> Array[AST::Annotation]

        def update: (?type: MethodType, ?member: method_member, ?defined_in: TypeName, ?implemented_in: TypeName?) -> TypeDef

        def overload?: () -> bool
      end

      attr_reader super_method: Method?
      attr_reader defs: Array[TypeDef]
      attr_reader accessibility: accessibility
      attr_reader extra_annotations: Array[AST::Annotation]
      attr_reader defined_in: TypeName?
      attr_reader implemented_in: TypeName?
      attr_reader method_types: Array[MethodType]
      attr_reader comments: Array[AST::Comment]
      attr_reader annotations: Array[AST::Annotation]
      attr_reader members: Array[method_member]
      attr_reader alias_of: Method?

      def initialize: (super_method: Method?,
                       defs: Array[TypeDef],
                       accessibility: accessibility,
                       alias_of: Method?,
                       ?annotations: Array[AST::Annotation]) -> void

      def public?: () -> bool

      def private?: () -> bool

      def sub: (Substitution) -> Method

      def map_type: () { (Types::t) -> Types::t } -> Method

      def map_method_type: () { (MethodType) -> MethodType } -> Method
    end

    module Ancestor
      type t = Instance | Singleton

      class Instance
        type source = :super | nil
                    | AST::Members::Include | AST::Members::Extend | AST::Members::Prepend
                    | AST::Declarations::Module::Self

        attr_reader name: TypeName
        attr_reader args: Array[Types::t]
        attr_reader source: source

        def initialize: (name: TypeName, args: Array[Types::t], source: source) -> void
      end

      class Singleton
        attr_reader name: TypeName

        def initialize: (name: TypeName) -> void
      end
    end

    class InstanceAncestors
      attr_reader type_name: TypeName
      attr_reader params: Array[Symbol]
      attr_reader ancestors: Array[Ancestor::t]

      def initialize: (type_name: TypeName, params: Array[Symbol], ancestors: Array[Ancestor::t]) -> void

      def apply: (Array[Types::t], location: Location?) -> Array[Ancestor::t]
    end

    class SingletonAncestors
      attr_reader type_name: TypeName
      attr_reader ancestors: Array[Ancestor::t]

      def initialize: (type_name: TypeName, ancestors: Array[Ancestor::t]) -> void
    end

    type self_type = Types::ClassSingleton | Types::ClassInstance | Types::Interface
    type definition_entry = Environment::ModuleEntry | Environment::ClassEntry | Environment::SingleEntry[TypeName, AST::Declarations::Interface]

    attr_reader type_name: TypeName
    attr_reader entry: definition_entry
    attr_reader ancestors: InstanceAncestors | SingletonAncestors | nil
    attr_reader self_type: self_type
    attr_reader methods: Hash[Symbol, Method]
    attr_reader instance_variables: Hash[Symbol, Variable]
    attr_reader class_variables: Hash[Symbol, Variable]

    def initialize: (type_name: TypeName, entry: definition_entry, self_type: self_type, ancestors: InstanceAncestors | SingletonAncestors | nil) -> void

    def class?: () -> bool

    def module?: () -> bool

    def interface?: () -> bool

    def class_type?: () -> bool

    def instance_type?: () -> bool

    def interface_type?: () -> bool

    def type_params: () -> Array[Symbol]

    def type_params_decl: () -> AST::Declarations::ModuleTypeParams

    def sub: (Substitution) -> Definition

    def map_method_type: () { (MethodType) -> MethodType } -> Definition

    def each_type: () { (Types::t) -> void } -> void
                 | () -> Enumerator[Types::t, void]
  end
end

File Manager Version 1.0, Coded By Lucas
Email: hehe@yahoo.com