From 49310667b4e6327d8276752a74fe480c1d7fb135 Mon Sep 17 00:00:00 2001 From: Alyssa Ross Date: Tue, 15 Nov 2016 21:56:42 +0000 Subject: Revert "uninstall: remove nil requireds/dependents" This reverts commit d7e72899e6f24dca5e02a734d5a4e64e39fc680e. --- Library/Homebrew/cmd/uninstall.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'Library') diff --git a/Library/Homebrew/cmd/uninstall.rb b/Library/Homebrew/cmd/uninstall.rb index c08b13dad..5d02ebd1e 100644 --- a/Library/Homebrew/cmd/uninstall.rb +++ b/Library/Homebrew/cmd/uninstall.rb @@ -102,8 +102,8 @@ module Homebrew attr_reader :reqs, :deps def initialize(requireds, dependents) - @reqs = requireds.compact - @deps = dependents.compact + @reqs = requireds + @deps = dependents end protected -- cgit v1.2.3 From fb920668c880778d9f539d9371ef12283e117903 Mon Sep 17 00:00:00 2001 From: Alyssa Ross Date: Sat, 31 Dec 2016 13:03:08 +0000 Subject: keg: don't return nil dependencies This is a proper fix to the problem addressed by #1510. The problem arises when f_kegs is nil, which can happen if the name and tap used to install a keg don't match the name and tap currently associated with its formula (i.e. if it's been renamed or moved). --- Library/Homebrew/keg.rb | 2 +- Library/Homebrew/test/keg_test.rb | 13 +++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) (limited to 'Library') diff --git a/Library/Homebrew/keg.rb b/Library/Homebrew/keg.rb index 756b27288..b5e6bd81d 100644 --- a/Library/Homebrew/keg.rb +++ b/Library/Homebrew/keg.rb @@ -119,7 +119,7 @@ class Keg next unless f_kegs f_kegs.sort_by(&:version).last - end + end.compact next unless required_kegs.any? diff --git a/Library/Homebrew/test/keg_test.rb b/Library/Homebrew/test/keg_test.rb index 4fe7c6a3c..adb30164e 100644 --- a/Library/Homebrew/test/keg_test.rb +++ b/Library/Homebrew/test/keg_test.rb @@ -369,6 +369,19 @@ class InstalledDependantsTests < LinkTestCase assert_equal [[@keg], ["bar 1.0"]], Keg.find_some_installed_dependents([@keg]) end + def test_a_dependency_with_no_tap_in_tab + @tap_dep = setup_test_keg("baz", "1.0") + + alter_tab(@keg) { |t| t.source["tap"] = nil } + + dependencies nil + Formula["bar"].class.depends_on "foo" + Formula["bar"].class.depends_on "baz" + + result = Keg.find_some_installed_dependents([@keg, @tap_dep]) + assert_equal [[@tap_dep], ["bar"]], result + end + def test_no_dependencies_anywhere dependencies nil assert_empty @keg.installed_dependents -- cgit v1.2.3