diff options
| author | Alyssa Ross | 2016-09-30 18:13:12 +0100 |
|---|---|---|
| committer | Alyssa Ross | 2016-10-25 22:34:35 +0100 |
| commit | 452691528d4c5c67175963ddb33f5cc3d51dce41 (patch) | |
| tree | f032a7b2cda3814f2c53747de3374d3d6929758a | |
| parent | ae3f53a1ecb19ea70e5d461a3205e6434bbe0c56 (diff) | |
| download | brew-452691528d4c5c67175963ddb33f5cc3d51dce41.tar.bz2 | |
Revert "keg: fallback to missing_deps if deps not in tab"
This reverts commit da1caba17c624f03fa8e6fbe59683f57fb7ac17a.
| -rw-r--r-- | Library/Homebrew/keg.rb | 24 | ||||
| -rw-r--r-- | Library/Homebrew/test/test_keg.rb | 21 |
2 files changed, 2 insertions, 43 deletions
diff --git a/Library/Homebrew/keg.rb b/Library/Homebrew/keg.rb index dfc27b55a..257594671 100644 --- a/Library/Homebrew/keg.rb +++ b/Library/Homebrew/keg.rb @@ -1,7 +1,6 @@ require "extend/pathname" require "keg_relocate" require "formula_lock" -require "diagnostic" require "ostruct" class Keg @@ -298,33 +297,14 @@ class Keg end def installed_dependents - installed_kegs = Formula.installed.flat_map(&:installed_kegs) - installed_kegs_and_tabs = installed_kegs.map { |k| [k, Tab.for_keg(k)] } - kegs_by_tab_deps_presence = installed_kegs_and_tabs.group_by do |_, tab| - !tab.runtime_dependencies.nil? - end - [true, false].each { |v| kegs_by_tab_deps_presence[v] ||= [] } - - kegs_by_tab_deps_presence[true].select! do |_, tab| - tab.runtime_dependencies.any? do |dep| + Formula.installed.flat_map(&:installed_kegs).select do |keg| + Tab.for_keg(keg).runtime_dependencies.any? do |dep| # Resolve formula rather than directly comparing names # in case of conflicts between formulae from different taps. dep_formula = Formulary.factory(dep["full_name"]) dep_formula == to_formula && dep["version"] == version.to_s end end - - remaining_kegs_and_tabs = kegs_by_tab_deps_presence[false] - remaining_formulae = remaining_kegs_and_tabs.map { |k, _| k.to_formula } - - # Expensive if installed_dependents of multiple kegs are being checked - deps = Homebrew::Diagnostic.missing_deps(remaining_formulae, [name]) - remaining_kegs_and_tabs.select! do |keg, _| - keg_deps = deps[keg.to_formula.full_name] - keg_deps && keg_deps.any? - end - - kegs_by_tab_deps_presence.values.flatten(1).map { |k, _| k } end def find(*args, &block) diff --git a/Library/Homebrew/test/test_keg.rb b/Library/Homebrew/test/test_keg.rb index 9c1c9118c..ac5831b09 100644 --- a/Library/Homebrew/test/test_keg.rb +++ b/Library/Homebrew/test/test_keg.rb @@ -339,29 +339,8 @@ class InstalledDependantsTests < LinkTests tab.write end - def test_unknown_dependencies - dependencies nil - - bar = formula "bar" do - url "bar-1.0" - depends_on "foo" - end - stub_formula_loader bar - - assert_equal [@dependent], @keg.installed_dependents - end - def test_no_dependencies dependencies [] - - # Make sure formula dependencies aren't checked when dependencies are - # recorded in the tab. - bar = formula "bar" do - url "bar-1.0" - depends_on "foo" - end - stub_formula_loader bar - assert_empty @keg.installed_dependents end |
