class RBS::Prototype::Runtime::Todo - rbs: Ruby Standard Library Documentation

# class RBS::Prototype::Runtime::Todo

### Public Class Methods

new(builder:) click to toggle source

    # File rbs-3.8.0/lib/rbs/prototype/runtime.rb, line 11
    def initialize(builder:)
      @builder = builder
    end

### Public Instance Methods

skip_constant?(module_name:, name:) click to toggle source

    # File rbs-3.8.0/lib/rbs/prototype/runtime.rb, line 42
    def skip_constant?(module_name:, name:)
      namespace = Namespace.new(path: module_name.split('::').map(&:to_sym), absolute: true)
      @builder.env.constant_decl?(TypeName.new(namespace: namespace, name: name))
    end

skip_instance_method?(module_name:, method:, accessibility:) click to toggle source

    # File rbs-3.8.0/lib/rbs/prototype/runtime.rb, line 33
    def skip_instance_method?(module_name:, method:, accessibility:)
      return false unless @builder.env.module_class_entry(module_name.absolute!)

      method_definition = @builder.build_instance(module_name.absolute!).methods[method.name]
      return false unless method_definition

      method_definition.accessibility == accessibility
    end

skip_mixin?(type_name:, module_name:, mixin_class:) click to toggle source

    # File rbs-3.8.0/lib/rbs/prototype/runtime.rb, line 15
    def skip_mixin?(type_name:, module_name:, mixin_class:)
      return false unless @builder.env.module_class_entry(type_name.absolute!)
      return false unless @builder.env.module_class_entry(module_name.absolute!)

      mixin_decls(type_name).any? do |decl|
        decl.instance_of?(mixin_class) && decl.name == module_name.absolute!
      end
    end

skip_singleton_method?(module_name:, method:, accessibility:) click to toggle source

    # File rbs-3.8.0/lib/rbs/prototype/runtime.rb, line 24
    def skip_singleton_method?(module_name:, method:, accessibility:)
      return false unless @builder.env.module_class_entry(module_name.absolute!)

      method_definition = @builder.build_singleton(module_name.absolute!).methods[method.name]
      return false unless method_definition

      method_definition.accessibility == accessibility
    end

### Private Instance Methods

mixin_decls(type_name) click to toggle source

    # File rbs-3.8.0/lib/rbs/prototype/runtime.rb, line 49
    def mixin_decls(type_name)
      type_name_absolute = type_name.absolute!
      @mixin_decls_cache ||= {} #: Hash[TypeName, Array[AST::Members::Mixin]]
      @mixin_decls_cache.fetch(type_name_absolute) do
        @mixin_decls_cache[type_name_absolute] = @builder.env.class_decls[type_name_absolute].decls.flat_map do |d|
          d.decl.members.select { |m| m.kind_of?(AST::Members::Mixin) }
        end
      end
    end