Sha256: 8f4fc4de079d894cb93d402e82a334d08eb43f7191ab87d87aae157c05a12c62

Contents?: true

Size: 993 Bytes

Versions: 8

Compression:

Stored size: 993 Bytes

Contents

module RBS
  module Resolver
    # `context` represents the module nesting structure.
    #
    # - `nil` means toplevel
    # - A 2-tuple represents parent and the most inner module
    #   - `TypeName` is for a module
    #   - `false` is for unknown module
    #
    # Note that the `TypeName` must be an absolute type name.
    #
    # The following Ruby code has context of `[[nil, TypeName.parse("::Foo")], false]` where
    #
    # * `Foo` is a class defined in RBS file
    # * `Bar` is not defined in RBS files
    #
    # ```ruby
    # class Foo
    #   module Bar
    #     # Context here
    #   end
    # end
    # ```
    #
    # The unknown module (`false`) appears only in Ruby code.
    # RBS modules/classes are always exists (or defines new module).
    # Nesting a unknown module cannot happen in RBS.
    #
    # In Ruby this happens when the module/class is not declared in RBS files.
    #
    type context = [context, TypeName | false]
                 | nil
  end
end

Version data entries

8 entries across 8 versions & 2 rubygems

Version Path
rbs-3.9.0 sig/resolver/context.rbs
rbs-3.9.0.pre.2 sig/resolver/context.rbs
rbs-3.9.0.pre.1 sig/resolver/context.rbs
rbs-3.9.0.dev.1 sig/resolver/context.rbs
rbs-relaxed-3.9.0.1 sig/resolver/context.rbs
rbs-3.8.1 sig/resolver/context.rbs
rbs-3.8.0 sig/resolver/context.rbs
rbs-3.8.0.pre.1 sig/resolver/context.rbs