Reapply "Make some of the bundle commands Sorbet typed: true"

- This reverts commit 68dbf12220f9a52ddf5ca5eb3aa1b356aa42da3a that was
  a revert of commit 68596ec720a50f44ae9c30c5806aa7f2d4bcc96f because I
  put the RBI file in the wrong place and Tapioca got rid of it, causing
  this week's release to be blocked.
This commit is contained in:
Issy Long 2025-06-26 23:15:23 +01:00
parent 4fd7c6fa8d
commit 0d40f48e8d
No known key found for this signature in database
3 changed files with 16 additions and 6 deletions

View File

@ -1,4 +1,4 @@
# typed: false # rubocop:todo Sorbet/TrueSigil # typed: true
# frozen_string_literal: true # frozen_string_literal: true
require "json" require "json"
@ -189,7 +189,12 @@ module Homebrew
class Topo < Hash class Topo < Hash
include TSort include TSort
def each_key(&block)
keys.each(&block)
end
alias tsort_each_node each_key alias tsort_each_node each_key
def tsort_each_child(node, &block) def tsort_each_child(node, &block)
fetch(node.downcase).sort.each(&block) fetch(node.downcase).sort.each(&block)
end end
@ -230,8 +235,8 @@ module Homebrew
odie <<~EOS odie <<~EOS
Formulae dependency graph sorting failed (likely due to a circular dependency): Formulae dependency graph sorting failed (likely due to a circular dependency):
#{cycle_first}: #{topo[cycle_first]} #{cycle_first}: #{topo[cycle_first] if topo}
#{cycle_last}: #{topo[cycle_last]} #{cycle_last}: #{topo[cycle_last] if topo}
Please run the following commands and try again: Please run the following commands and try again:
brew update brew update
brew uninstall --ignore-dependencies --force #{cycle_first} #{cycle_last} brew uninstall --ignore-dependencies --force #{cycle_first} #{cycle_last}

View File

@ -0,0 +1,5 @@
# typed: true
module Homebrew::Bundle::BrewDumper
include Kernel
end

View File

@ -1,4 +1,4 @@
# typed: false # rubocop:todo Sorbet/TrueSigil # typed: true
# frozen_string_literal: true # frozen_string_literal: true
module Homebrew module Homebrew
@ -23,7 +23,7 @@ module Homebrew
else else
"needs to be installed or updated." "needs to be installed or updated."
end end
"#{self.class::PACKAGE_TYPE_NAME} #{name} #{reason}" "#{self.class.const_get(:PACKAGE_TYPE_NAME)} #{name} #{reason}"
end end
def full_check(packages, no_upgrade:) def full_check(packages, no_upgrade:)
@ -33,7 +33,7 @@ module Homebrew
def checkable_entries(all_entries) def checkable_entries(all_entries)
require "bundle/skipper" require "bundle/skipper"
all_entries.select { |e| e.type == self.class::PACKAGE_TYPE } all_entries.select { |e| e.type == self.class.const_get(:PACKAGE_TYPE) }
.reject(&Bundle::Skipper.method(:skip?)) .reject(&Bundle::Skipper.method(:skip?))
end end