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.



70
71
72
73
74
75
76
77
78
79
# File 'lib/tapioca/sorbet_ext/generic_name_patch.rb', line 70

def name
  if T::Generic === @raw_type
    # for types that are generic, 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