Sha256: 9d8f01d551cd205c30dfb8034ceac89083de383cd904ee7d0a90d495d3b3895f

Contents?: true

Size: 724 Bytes

Versions: 145

Compression:

Stored size: 724 Bytes

Contents

# frozen_string_literal: true
# typed: true

module T::Types
  class TypeParameter < Base
    module Private
      @pool = {}

      def self.cached_entry(name)
        @pool[name]
      end

      def self.set_entry_for(name, type)
        @pool[name] = type
      end
    end

    def initialize(name)
      raise ArgumentError.new("not a symbol: #{name}") unless name.is_a?(Symbol)
      @name = name
    end

    def self.make(name)
      cached = Private.cached_entry(name)
      return cached if cached

      Private.set_entry_for(name, new(name))
    end

    def valid?(obj)
      true
    end

    def subtype_of_single?(type)
      true
    end

    def name
      "T.type_parameter(:#{@name})"
    end
  end
end

Version data entries

145 entries across 139 versions & 2 rubygems

Version Path
sorbet-runtime-0.5.11170 lib/types/types/type_parameter.rb
sorbet-runtime-0.5.11164 lib/types/types/type_parameter.rb
sorbet-runtime-0.5.11163 lib/types/types/type_parameter.rb
sorbet-runtime-0.5.11162 lib/types/types/type_parameter.rb
sorbet-runtime-0.5.11158 lib/types/types/type_parameter.rb
sorbet-runtime-0.5.11156 lib/types/types/type_parameter.rb
sorbet-runtime-0.5.11155 lib/types/types/type_parameter.rb
sorbet-runtime-0.5.11152 lib/types/types/type_parameter.rb
sorbet-runtime-0.5.11151 lib/types/types/type_parameter.rb
sorbet-runtime-0.5.11150 lib/types/types/type_parameter.rb
study_line-0.1.6 vendor/bundle/ruby/3.2.0/gems/sorbet-runtime-0.5.11108/lib/types/types/type_parameter.rb
study_line-0.1.6 vendor/bundle/ruby/3.2.0/gems/sorbet-runtime-0.5.11104/lib/types/types/type_parameter.rb
sorbet-runtime-0.5.11148 lib/types/types/type_parameter.rb
sorbet-runtime-0.5.11147 lib/types/types/type_parameter.rb
study_line-0.1.5 vendor/bundle/ruby/3.2.0/gems/sorbet-runtime-0.5.11108/lib/types/types/type_parameter.rb
study_line-0.1.5 vendor/bundle/ruby/3.2.0/gems/sorbet-runtime-0.5.11104/lib/types/types/type_parameter.rb
study_line-0.1.4 vendor/bundle/ruby/3.2.0/gems/sorbet-runtime-0.5.11104/lib/types/types/type_parameter.rb
study_line-0.1.4 vendor/bundle/ruby/3.2.0/gems/sorbet-runtime-0.5.11108/lib/types/types/type_parameter.rb
sorbet-runtime-0.5.11146 lib/types/types/type_parameter.rb
study_line-0.1.3 vendor/bundle/ruby/3.2.0/gems/sorbet-runtime-0.5.11108/lib/types/types/type_parameter.rb