Skip to content

Commit 1497dfa

Browse files
authored
Merge pull request #1862 from alyssais/uses_include_optional
uses: fix recursive requirement resolution
2 parents a5019d2 + 36c1c8e commit 1497dfa

File tree

1 file changed

+18
-4
lines changed

1 file changed

+18
-4
lines changed

Library/Homebrew/cmd/uses.rb

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -58,15 +58,29 @@ def uses
5858
Dependency.prune unless includes.include?("build?")
5959
end
6060
end
61-
reqs = f.recursive_requirements do |dependent, req|
61+
62+
dep_formulae = deps.map do |dep|
63+
begin
64+
dep.to_formula
65+
rescue
66+
end
67+
end.compact
68+
69+
reqs_by_formula = ([f] + dep_formulae).flat_map do |formula|
70+
formula.requirements.map { |req| [formula, req] }
71+
end
72+
73+
reqs_by_formula.reject! do |dependent, req|
6274
if req.recommended?
63-
Requirement.prune if ignores.include?("recommended?") || dependent.build.without?(req)
75+
ignores.include?("recommended?") || dependent.build.without?(req)
6476
elsif req.optional?
65-
Requirement.prune if !includes.include?("optional?") && !dependent.build.with?(req)
77+
!includes.include?("optional?") && !dependent.build.with?(req)
6678
elsif req.build?
67-
Requirement.prune unless includes.include?("build?")
79+
!includes.include?("build?")
6880
end
6981
end
82+
83+
reqs = reqs_by_formula.map(&:last)
7084
else
7185
deps = f.deps.reject do |dep|
7286
ignores.any? { |ignore| dep.send(ignore) } && !includes.any? { |include| dep.send(include) }

0 commit comments

Comments
 (0)