You are an expert in writing code in many different languages. Your goal is to perform code completion for the following code, keeping in mind the rest of the code and the file meta data.
    Metadata details:
    filename: digest.rb
    path of file: ./repos/artichoke/artichoke-backend/vendor/ruby/ext/digest/lib
    
    the code of the file until where you have to start completion: # frozen_string_literal: false

if defined?(Digest) &&
    /\A(?:2\.|3\.0\.[0-2]\z)/.match?(RUBY_VERSION) &&
    caller_locations.any? { |l|
      %r{/(rubygems/gem_runner|bundler/cli)\.rb}.match?(l.path)
    }
  # Before Ruby 3.0.3/3.1.0, the gem and bundle commands used to load
  # the digest library before loa
    
def Digest(name)
  const = name.to_sym
  Digest::REQUIRE_MUTEX.synchronize {
    # Ignore autoload's because it is void when we have #const_missing
    Digest.const_missing(const)
  }
rescue LoadError
  # Constants do not necessarily rely on digest/*.
  if Digest.const_defined?(const)
    Digest.const_get(const)
  else
    raise
  end
end