class Tapioca::TypeTemplate

Attributes

fixed[R]
lower[R]
name[RW]
upper[R]

Public Class Methods

new(variance, fixed, lower, upper) click to toggle source
Calls superclass method
# File lib/tapioca/sorbet_ext/generic_name_patch.rb, line 112
def initialize(variance, fixed, lower, upper)
  super(variance)
  @fixed = fixed
  @lower = lower
  @upper = upper
end

Public Instance Methods

serialize() click to toggle source
# File lib/tapioca/sorbet_ext/generic_name_patch.rb, line 120
def serialize
  parts = []
  parts << ":#{@variance}" unless @variance == :invariant
  parts << "fixed: #{@fixed}" if @fixed
  parts << "lower: #{@lower}" unless @lower == T.untyped
  parts << "upper: #{@upper}" unless @upper == BasicObject

  parameters = parts.join(", ")

  serialized = +"type_template"
  serialized << "(#{parameters})" unless parameters.empty?
  serialized
end