class RBS::Definition::InstanceAncestors - rbs: Ruby Standard Library Documentation

# class RBS::Definition::InstanceAncestors

### Attributes

ancestors[R]
params[R]
type_name[R]

### Public Class Methods

new(type_name:, params:, ancestors:) click to toggle source

    # File rbs-3.8.0/lib/rbs/definition.rb, line 236
    def initialize(type_name:, params:, ancestors:)
      @type_name = type_name
      @params = params
      @ancestors = ancestors
    end

### Public Instance Methods

apply(args, env:, location:) click to toggle source

    # File rbs-3.8.0/lib/rbs/definition.rb, line 242
    def apply(args, env:, location:)
      InvalidTypeApplicationError.check2!(env: env, type_name: type_name, args: args, location: location)

      subst = Substitution.build(params, args)

      ancestors.map do |ancestor|
        case ancestor
        when Ancestor::Instance
          if ancestor.args.empty?
            ancestor
          else
            Ancestor::Instance.new(
              name: ancestor.name,
              args: ancestor.args.map {|type| type.sub(subst) },
              source: ancestor.source
            )
          end
        when Ancestor::Singleton
          ancestor
        end
      end
    end