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/declarations.rbs

module RBS
  module AST
    module Declarations
      type t = Class | Module | Interface | Constant | Global | Alias

      class Base
      end

      type variance = :invariant | :covariant | :contravariant

      class ModuleTypeParams
        class TypeParam
          attr_reader name: Symbol
          attr_reader variance: variance
          attr_reader skip_validation: bool

          def initialize: (name: Symbol, variance: variance, skip_validation: boolish) -> void

          include _ToJson
        end

        attr_reader params: Array[TypeParam]

        def initialize: () -> void

        def add: (TypeParam param) -> self

        include _HashEqual
        include _ToJson

        def []: (Symbol) -> TypeParam?

        def each: { (TypeParam) -> void } -> void
                | () -> Enumerator[TypeParam, void]

        def self.empty: () -> instance

        def variance: (Symbol) -> variance

        def skip_validation?: (Symbol) -> bool

        def empty?: () -> bool

        def size: () -> Integer

        def rename_to: (Array[Symbol] names) -> ModuleTypeParams
      end

      interface _WithMember
        def members: () -> Array[untyped]
      end

      module NestedDeclarationHelper : _WithMember
        def each_member: () { (Members::t) -> void } -> void
                       | () -> Enumerator[Members::t, void]

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

      module MixinHelper : _WithMember
        type mixin_member = Members::Include | Members::Extend | Members::Prepend

        @mixins: Array[mixin_member]

        def each_mixin: () { (mixin_member) -> void } -> void
                      | () -> Enumerator[mixin_member, void]
      end

      class Class < Base
        type member = Members::t | t

        class Super
          attr_reader name: TypeName
          attr_reader args: Array[Types::t]
          attr_reader location: Location?

          def initialize: (name: TypeName, args: Array[Types::t], location: Location?) -> void

          include _HashEqual
          include _ToJson
        end

        include NestedDeclarationHelper
        include MixinHelper

        attr_reader name: TypeName
        attr_reader type_params: ModuleTypeParams
        attr_reader members: Array[member]
        attr_reader super_class: Super?
        attr_reader annotations: Array[Annotation]
        attr_reader location: Location?
        attr_reader comment: Comment?

        def initialize: (name: TypeName, type_params: ModuleTypeParams, members: Array[member], super_class: Super?, annotations: Array[Annotation], location: Location?, comment: Comment?) -> void

        include _HashEqual
        include _ToJson
      end

      class Module < Base
        type member = Members::t | t

        class Self
          attr_reader name: TypeName
          attr_reader args: Array[Types::t]
          attr_reader location: Location?

          def initialize: (name: TypeName, args: Array[Types::t], location: Location?) -> void

          include _HashEqual
          include _ToJson

          def to_s: () -> String
        end

        include NestedDeclarationHelper
        include MixinHelper

        attr_reader name: TypeName
        attr_reader type_params: ModuleTypeParams
        attr_reader members: Array[member]
        attr_reader location: Location?
        attr_reader annotations: Array[Annotation]
        attr_reader self_types: Array[Self]
        attr_reader comment: Comment?

        def initialize: (name: TypeName, type_params: ModuleTypeParams, members: Array[member], location: Location?, annotations: Array[Annotation], self_types: Array[Self], comment: Comment?) -> void

        include _HashEqual
        include _ToJson
      end

      class Interface
        type member = Members::t

        attr_reader name: TypeName
        attr_reader type_params: ModuleTypeParams
        attr_reader members: Array[member]
        attr_reader annotations: Array[Annotation]
        attr_reader location: Location?
        attr_reader comment: Comment?

        def initialize: (name: TypeName, type_params: ModuleTypeParams, members: Array[member], annotations: Array[Annotation], location: Location?, comment: Comment?) -> void

        include MixinHelper

        include _HashEqual
        include _ToJson
      end

      class Alias < Base
        attr_reader name: TypeName
        attr_reader type: Types::t
        attr_reader annotations: Array[Annotation]
        attr_reader location: Location?
        attr_reader comment: Comment?

        def initialize: (name: TypeName, type: Types::t, annotations: Array[Annotation], location: Location?, comment: Comment?) -> void

        include _HashEqual
        include _ToJson
      end

      class Constant < Base
        attr_reader name: TypeName
        attr_reader type: Types::t
        attr_reader location: Location?
        attr_reader comment: Comment?

        def initialize: (name: TypeName, type: Types::t, location: Location?, comment: Comment?) -> void

        include _HashEqual
        include _ToJson
      end

      class Global < Base
        attr_reader name: Symbol
        attr_reader type: Types::t
        attr_reader location: Location?
        attr_reader comment: Comment?

        def initialize: (name: Symbol, type: Types::t, location: Location?, comment: Comment?) -> void

        include _HashEqual
        include _ToJson
      end
    end
  end
end

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