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: runs_sorbet_sig_blocks_before_replacement.rb
    path of file: ./repos/mocktail/lib/mocktail/replaces_type
    
    the code of the file until where you have to start completion: module Mocktail
  class RunsSorbetSigBlocksBeforeReplacement
    extend T::Sig

    # This is necessary because when Sorbet runs a sig block of a singleton
    # method, it has the net effect of unwrapping/redefining the method. If
    # 
    
    def run(type)
      return unless defined?(T::Private::Methods)

      type.singleton_methods.each do |method_name|
        method = type.method(method_name)

        # Again: calling this for the side effect of running the sig block
        #
        # https://github.com/sorbet/sorbet/blob/master/gems/sorbet-runtime/lib/types/private/methods/_methods.rb#L111
        T::Private::Methods.signature_for_method(method)
      end
    end