uses/deps: fix for recursive deps/reqs

Closes Homebrew/homebrew#39906.

Signed-off-by: Xu Cheng <xucheng@me.com>
This commit is contained in:
Xu Cheng 2015-05-19 21:57:45 +08:00
parent cacad69a8e
commit 8b57871220
2 changed files with 8 additions and 8 deletions

View File

@ -34,11 +34,11 @@ module Homebrew
ignores << "optional?" if ARGV.include? "--skip-optional" ignores << "optional?" if ARGV.include? "--skip-optional"
if recursive if recursive
deps = f.recursive_dependencies.reject do |dep| deps = f.recursive_dependencies do |dependent, dep|
ignores.any? { |ignore| dep.send(ignore) } Dependency.prune if ignores.any? { |ignore| dep.send(ignore) } && !dependent.build.with?(dep)
end end
reqs = f.recursive_requirements.reject do |req| reqs = f.recursive_requirements do |dependent, req|
ignores.any? { |ignore| req.send(ignore) } Requirement.prune if ignores.any? { |ignore| req.send(ignore) } && !dependent.build.with?(req)
end end
else else
deps = f.deps.reject do |dep| deps = f.deps.reject do |dep|

View File

@ -19,11 +19,11 @@ module Homebrew
used_formulae.all? do |ff| used_formulae.all? do |ff|
begin begin
if recursive if recursive
deps = f.recursive_dependencies.reject do |dep| deps = f.recursive_dependencies do |dependent, dep|
ignores.any? { |ignore| dep.send(ignore) } Dependency.prune if ignores.any? { |ignore| dep.send(ignore) } && !dependent.build.with?(dep)
end end
reqs = f.recursive_requirements.reject do |req| reqs = f.recursive_requirements do |dependent, req|
ignores.any? { |ignore| req.send(ignore) } Requirement.prune if ignores.any? { |ignore| req.send(ignore) } && !dependent.build.with?(req)
end end
deps.any? { |dep| dep.to_formula.name == ff.name } || deps.any? { |dep| dep.to_formula.name == ff.name } ||
reqs.any? { |req| req.name == ff.name || req.class.default_formula == ff.name } reqs.any? { |req| req.name == ff.name || req.class.default_formula == ff.name }