From 0d40f48e8d9c989695de7a94a8adaee3ad0150b3 Mon Sep 17 00:00:00 2001 From: Issy Long Date: Thu, 26 Jun 2025 23:15:23 +0100 Subject: [PATCH] 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. --- Library/Homebrew/bundle/brew_dumper.rb | 11 ++++++++--- Library/Homebrew/bundle/brew_dumper.rbi | 5 +++++ Library/Homebrew/bundle/checker.rb | 6 +++--- 3 files changed, 16 insertions(+), 6 deletions(-) create mode 100644 Library/Homebrew/bundle/brew_dumper.rbi diff --git a/Library/Homebrew/bundle/brew_dumper.rb b/Library/Homebrew/bundle/brew_dumper.rb index 403c92eec6..67c5a6c6a2 100644 --- a/Library/Homebrew/bundle/brew_dumper.rb +++ b/Library/Homebrew/bundle/brew_dumper.rb @@ -1,4 +1,4 @@ -# typed: false # rubocop:todo Sorbet/TrueSigil +# typed: true # frozen_string_literal: true require "json" @@ -189,7 +189,12 @@ module Homebrew class Topo < Hash include TSort + + def each_key(&block) + keys.each(&block) + end alias tsort_each_node each_key + def tsort_each_child(node, &block) fetch(node.downcase).sort.each(&block) end @@ -230,8 +235,8 @@ module Homebrew odie <<~EOS Formulae dependency graph sorting failed (likely due to a circular dependency): - #{cycle_first}: #{topo[cycle_first]} - #{cycle_last}: #{topo[cycle_last]} + #{cycle_first}: #{topo[cycle_first] if topo} + #{cycle_last}: #{topo[cycle_last] if topo} Please run the following commands and try again: brew update brew uninstall --ignore-dependencies --force #{cycle_first} #{cycle_last} diff --git a/Library/Homebrew/bundle/brew_dumper.rbi b/Library/Homebrew/bundle/brew_dumper.rbi new file mode 100644 index 0000000000..f747988811 --- /dev/null +++ b/Library/Homebrew/bundle/brew_dumper.rbi @@ -0,0 +1,5 @@ +# typed: true + +module Homebrew::Bundle::BrewDumper + include Kernel +end diff --git a/Library/Homebrew/bundle/checker.rb b/Library/Homebrew/bundle/checker.rb index 411e0d8c0b..3d8959ffdf 100644 --- a/Library/Homebrew/bundle/checker.rb +++ b/Library/Homebrew/bundle/checker.rb @@ -1,4 +1,4 @@ -# typed: false # rubocop:todo Sorbet/TrueSigil +# typed: true # frozen_string_literal: true module Homebrew @@ -23,7 +23,7 @@ module Homebrew else "needs to be installed or updated." end - "#{self.class::PACKAGE_TYPE_NAME} #{name} #{reason}" + "#{self.class.const_get(:PACKAGE_TYPE_NAME)} #{name} #{reason}" end def full_check(packages, no_upgrade:) @@ -33,7 +33,7 @@ module Homebrew def checkable_entries(all_entries) 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?)) end