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