Sha256: 7f200f3bf3371473fa5375536cfdc0c4f81e32e2c315b509db94e550dfccbe81

Contents?: true

Size: 1.34 KB

Versions: 44

Compression:

Stored size: 1.34 KB

Contents

module RBS
  module AST
    module Directives
      type t = Use

      class Base
      end

      # ```
      # use Foo, Foo::Bar as FBar, Foo:Baz::*
      # ```
      #
      class Use < Base
        type clause = SingleClause | WildcardClause

        class SingleClause
          # Foo::Bar
          # ^^^^^^^^       type_name
          #
          # Foo::Bar as X
          #          ^^    keyword
          #             ^  new_name
          #
          type loc = Location[:type_name, :keyword | :new_name]

          attr_reader type_name: TypeName

          attr_reader new_name: Symbol?

          attr_reader location: loc?

          def initialize: (type_name: TypeName, new_name: Symbol?, location: loc?) -> void
        end

        class WildcardClause
          # Foo::Bar::*
          # ^^^^^^^^^^    namespace
          #           ^   star
          #
          type loc = Location[:namespace | :star, bot]

          attr_reader namespace: Namespace

          attr_reader location: loc?

          def initialize: (namespace: Namespace, location: loc?) -> void
        end

        # use Foo
        # ^^^       keyword
        type loc = Location[:keyword, bot]

        attr_reader clauses: Array[clause]

        attr_reader location: loc?

        def initialize: (clauses: Array[clause], location: loc?) -> void
      end
    end
  end
end

Version data entries

44 entries across 44 versions & 1 rubygems

Version Path
rbs-3.8.1 sig/directives.rbs
rbs-3.8.0 sig/directives.rbs
rbs-3.8.0.pre.1 sig/directives.rbs
rbs-3.7.0.pre.1 sig/directives.rbs
rbs-3.7.0.dev.1 sig/directives.rbs
rbs-3.6.1 sig/directives.rbs
rbs-3.6.0 sig/directives.rbs
rbs-3.6.0.pre.3 sig/directives.rbs
rbs-3.6.0.pre.2 sig/directives.rbs
rbs-3.6.0.pre.1 sig/directives.rbs
rbs-3.6.0.dev.1 sig/directives.rbs
rbs-3.5.3 sig/directives.rbs
rbs-3.5.2 sig/directives.rbs
rbs-3.5.1 sig/directives.rbs
rbs-3.5.1.pre.1 sig/directives.rbs
rbs-3.5.0 sig/directives.rbs
rbs-3.5.0.pre.2 sig/directives.rbs
rbs-3.5.0.pre.1 sig/directives.rbs
rbs-3.4.4 sig/directives.rbs
rbs-3.4.3 sig/directives.rbs