class Tapioca::Gem::Pipeline

def compile_object(name, value)

: (String name, BasicObject value) -> void
@without_runtime
def compile_object(name, value)
  return if seen?(name)
  seen!(name)
  return if skip_object?(name, value)
  klass = class_of(value)
  klass_name = if T::Generic === klass
    generic_name_of(klass)
  else
    name_of(klass)
  end
  if klass_name == "T::Private::Types::TypeAlias"
    type_alias = sanitize_signature_types(T.unsafe(value).aliased_type.to_s)
    node = RBI::Const.new(name, "T.type_alias { #{type_alias} }")
    push_const(name, klass, node)
    @root << node
    return
  end
  return if klass_name&.start_with?("T::Types::", "T::Private::")
  type_name = klass_name || "T.untyped"
  type_name = "T.untyped" if type_name == "NilClass"
  node = RBI::Const.new(name, "T.let(T.unsafe(nil), #{type_name})")
  push_const(name, klass, node)
  @root << node
end