class Sorbet::Private::RequireEverything

def self.patch_kernel

def self.patch_kernel
  Kernel.send(:define_method, :exit) do |*|
    puts 'Kernel#exit was called while requiring ruby source files'
    raise ExitCalledError.new
  end
  Kernel.send(:define_method, :at_exit) do |&block|
    if File.split($0).last == 'rake'
      # Let `rake test` work
      super
      return proc {}
    end
    # puts "Ignoring at_exit: #{block}"
    proc {}
  end
end