diff options
| author | Alyssa Ross | 2016-12-31 13:03:08 +0000 |
|---|---|---|
| committer | Alyssa Ross | 2016-12-31 14:16:38 +0000 |
| commit | fb920668c880778d9f539d9371ef12283e117903 (patch) | |
| tree | cf4f1fd1256f580a15dec90a01e8b3e6d8877d3f /Library | |
| parent | 49310667b4e6327d8276752a74fe480c1d7fb135 (diff) | |
| download | brew-fb920668c880778d9f539d9371ef12283e117903.tar.bz2 | |
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).
Diffstat (limited to 'Library')
| -rw-r--r-- | Library/Homebrew/keg.rb | 2 | ||||
| -rw-r--r-- | Library/Homebrew/test/keg_test.rb | 13 |
2 files changed, 14 insertions, 1 deletions
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 |
