From e28d455154be4fad629e2292be203b7363b78cd2 Mon Sep 17 00:00:00 2001 From: Rylan Polster Date: Fri, 28 Jun 2024 21:57:47 -0400 Subject: [PATCH] autoremove: skip formulae where installed_on_request is nil --- Library/Homebrew/test/utils/autoremove_spec.rb | 7 +++++++ Library/Homebrew/utils/autoremove.rb | 4 ++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/Library/Homebrew/test/utils/autoremove_spec.rb b/Library/Homebrew/test/utils/autoremove_spec.rb index d1be63a7dd1fa..b078d3e7e9e95 100644 --- a/Library/Homebrew/test/utils/autoremove_spec.rb +++ b/Library/Homebrew/test/utils/autoremove_spec.rb @@ -107,6 +107,13 @@ expect(described_class.send(:unused_formulae_with_no_formula_dependents, formulae)) .to match_array(formulae) end + + specify "installed on request is null" do + allow(tab_from_keg).to receive(:installed_on_request).and_return(nil) + + expect(described_class.send(:unused_formulae_with_no_formula_dependents, formulae)) + .to eq([]) + end end shared_context "with formulae and casks for dependency testing" do diff --git a/Library/Homebrew/utils/autoremove.rb b/Library/Homebrew/utils/autoremove.rb index b84d99bb16ff9..3e0c136c09a1c 100644 --- a/Library/Homebrew/utils/autoremove.rb +++ b/Library/Homebrew/utils/autoremove.rb @@ -61,8 +61,8 @@ def bottled_formulae_with_no_formula_dependents(formulae) # @private sig { params(formulae: T::Array[Formula]).returns(T::Array[Formula]) } def unused_formulae_with_no_formula_dependents(formulae) - unused_formulae = bottled_formulae_with_no_formula_dependents(formulae).reject do |f| - f.any_installed_keg&.tab&.installed_on_request + unused_formulae = bottled_formulae_with_no_formula_dependents(formulae).select do |f| + f.any_installed_keg&.tab&.installed_on_request == false end unless unused_formulae.empty?