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

module RBS
  class DefinitionBuilder
    class MethodBuilder
      class Methods
        type instance_type = Types::ClassInstance | Types::ClassSingleton | Types::Interface

        class Definition
          type original = AST::Members::MethodDefinition | AST::Members::Alias | AST::Members::AttrAccessor | AST::Members::AttrWriter | AST::Members::AttrReader
          type accessibility = :public | :private

          attr_reader name: Symbol
          attr_reader type: instance_type
          attr_reader originals: Array[original]
          attr_reader overloads: Array[AST::Members::MethodDefinition]
          attr_reader accessibilities: Array[accessibility]

          def initialize: (name: Symbol, type: instance_type, originals: Array[original], overloads: Array[AST::Members::MethodDefinition], accessibilities: Array[accessibility]) -> void

          def original: () -> original?

          def accessibility: () -> accessibility

          def self.empty: (name: Symbol, type: instance_type) -> instance
        end

        attr_reader type: instance_type
        attr_reader methods: Hash[Symbol, Definition]

        def initialize: (type: instance_type) -> void

        def validate!: () -> self

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

        class Sorter
          include TSort[Definition]

          attr_reader methods: Hash[Symbol, Definition]

          def initialize: (Hash[Symbol, Definition]) -> void

          def tsort_each_node: { (Definition) -> void } -> void

          def tsort_each_child: (Definition) { (Definition) -> void } -> void
        end
      end

      attr_reader env: Environment
      attr_reader instance_methods: Hash[TypeName, Methods]
      attr_reader singleton_methods: Hash[TypeName, Methods]
      attr_reader interface_methods: Hash[TypeName, Methods]

      def initialize: (env: Environment) -> void

      def build_instance: (TypeName) -> Methods

      def build_singleton: (TypeName) -> Methods

      def build_interface: (TypeName) -> Methods

      def build_alias: (Methods, Methods::instance_type, member: AST::Members::Alias, accessibility: Methods::Definition::accessibility) -> void

      def build_attribute: (Methods, Methods::instance_type, member: AST::Members::AttrAccessor | AST::Members::AttrReader | AST::Members::AttrWriter, accessibility: Methods::Definition::accessibility) -> void

      def build_method: (Methods, Methods::instance_type, member: AST::Members::MethodDefinition, accessibility: Methods::Definition::accessibility) -> void

      def each_member_with_accessibility: (Array[AST::Members::t | AST::Declarations::t], ?accessibility: Definition::accessibility) { (AST::Members::t | AST::Declarations::t, Definition::accessibility) -> void } -> void
    end
  end
end

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