aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew
diff options
context:
space:
mode:
authorAlyssa Ross2016-09-30 18:13:12 +0100
committerAlyssa Ross2016-10-25 22:34:35 +0100
commit452691528d4c5c67175963ddb33f5cc3d51dce41 (patch)
treef032a7b2cda3814f2c53747de3374d3d6929758a /Library/Homebrew
parentae3f53a1ecb19ea70e5d461a3205e6434bbe0c56 (diff)
downloadbrew-452691528d4c5c67175963ddb33f5cc3d51dce41.tar.bz2
Revert "keg: fallback to missing_deps if deps not in tab"
This reverts commit da1caba17c624f03fa8e6fbe59683f57fb7ac17a.
Diffstat (limited to 'Library/Homebrew')
-rw-r--r--Library/Homebrew/keg.rb24
-rw-r--r--Library/Homebrew/test/test_keg.rb21
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