Module: T::Types::Simple::GenericPatch

Included in:
T::Types::Simple
Defined in:
lib/tapioca/sorbet_ext/generic_name_patch.rb

Instance Method Summary collapse

Instance Method Details

#nameObject

This method intercepts calls to the ‘name` method for simple types, so that it can ask the name to the type if the type is generic, since, by this point, we’ve created a clone of that type with the ‘name` method returning the appropriate name for that specific concrete type.



64
65
66
67
68
69
70
71
72
73
# File 'lib/tapioca/sorbet_ext/generic_name_patch.rb', line 64

def name
  if T::Generic === @raw_type || Tapioca::TypeVariableModule === @raw_type
    # for types that are generic or are type variables, use the name
    # returned by the "name" method of this instance
    @name ||= T.unsafe(@raw_type).name.freeze
  else
    # otherwise, fallback to the normal name lookup
    super
  end
end