Skip to content

Commit 2a08ac2

Browse files
authored
Merge pull request #21189 from Homebrew/remove-inherited_options
Remove unused inherited_options
2 parents 43d6c11 + 9c44782 commit 2a08ac2

File tree

6 files changed

+35
-61
lines changed

6 files changed

+35
-61
lines changed

Library/Homebrew/cmd/info.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -387,7 +387,7 @@ def info_formula(formula)
387387
sig { params(dependencies: T::Array[Dependency]).returns(String) }
388388
def decorate_dependencies(dependencies)
389389
deps_status = dependencies.map do |dep|
390-
if dep.satisfied?([])
390+
if dep.satisfied?
391391
pretty_installed(dep_display_s(dep))
392392
else
393393
pretty_uninstalled(dep_display_s(dep))

Library/Homebrew/dependency.rb

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -104,16 +104,15 @@ def installed?(minimum_version: nil, minimum_revision: nil, minimum_compatibilit
104104
end
105105
end
106106

107-
def satisfied?(inherited_options = [], minimum_version: nil, minimum_revision: nil,
107+
def satisfied?(minimum_version: nil, minimum_revision: nil,
108108
minimum_compatibility_version: nil, bottle_os_version: nil)
109109
installed?(minimum_version:, minimum_revision:, minimum_compatibility_version:, bottle_os_version:) &&
110-
missing_options(inherited_options).empty?
110+
missing_options.empty?
111111
end
112112

113-
def missing_options(inherited_options)
113+
def missing_options
114114
formula = to_installed_formula
115115
required = options
116-
required |= inherited_options
117116
required &= formula.options.to_a
118117
required -= Tab.for_formula(formula).used_options
119118
required

Library/Homebrew/formula.rb

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1632,9 +1632,6 @@ def skip_cxxstdlib_check?
16321632
false
16331633
end
16341634

1635-
sig { returns(T::Boolean) }
1636-
def require_universal_deps? = false
1637-
16381635
sig { void }
16391636
def patch
16401637
return if patchlist.empty?

Library/Homebrew/formula_installer.rb

Lines changed: 28 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -473,7 +473,7 @@ def check_install_sanity
473473
end
474474

475475
next unless dep.to_formula.pinned?
476-
next if dep.satisfied?(inherited_options_for(dep))
476+
next if dep.satisfied?
477477

478478
pinned_unsatisfied_deps << dep
479479
end
@@ -499,7 +499,7 @@ def fresh_install?(_formula) = false
499499
def fetch_fetch_deps
500500
return if @compute_dependencies.blank?
501501

502-
compute_dependencies(use_cache: false) if @compute_dependencies.any? do |dep,|
502+
compute_dependencies(use_cache: false) if @compute_dependencies.any? do |dep|
503503
next false unless dep.implicit?
504504

505505
fetch_dependencies
@@ -511,11 +511,11 @@ def fetch_fetch_deps
511511
def install_fetch_deps
512512
return if @compute_dependencies.blank?
513513

514-
compute_dependencies(use_cache: false) if @compute_dependencies.any? do |dep, options|
514+
compute_dependencies(use_cache: false) if @compute_dependencies.any? do |dep|
515515
next false unless dep.implicit?
516516

517517
fetch_dependencies
518-
install_dependency(dep, options)
518+
install_dependency(dep)
519519
true
520520
end
521521
end
@@ -666,9 +666,9 @@ def check_conflicts
666666

667667
# Compute and collect the dependencies needed by the formula currently
668668
# being installed.
669-
sig { params(use_cache: T::Boolean).returns(T::Array[[Dependency, Options]]) }
669+
sig { params(use_cache: T::Boolean).returns(T::Array[Dependency]) }
670670
def compute_dependencies(use_cache: true)
671-
@compute_dependencies = T.let(nil, T.nilable(T::Array[[Dependency, Options]])) unless use_cache
671+
@compute_dependencies = T.let(nil, T.nilable(T::Array[Dependency])) unless use_cache
672672
@compute_dependencies ||= begin
673673
# Needs to be done before expand_dependencies
674674
fetch_bottle_tab if pour_bottle?
@@ -678,9 +678,9 @@ def compute_dependencies(use_cache: true)
678678
end
679679
end
680680

681-
sig { params(deps: T::Array[[Dependency, Options]]).returns(T::Array[Formula]) }
681+
sig { params(deps: T::Array[Dependency]).returns(T::Array[Formula]) }
682682
def unbottled_dependencies(deps)
683-
deps.map { |(dep, _options)| dep.to_formula }.reject do |dep_f|
683+
deps.map(&:to_formula).reject do |dep_f|
684684
next false unless dep_f.pour_bottle?
685685

686686
dep_f.bottled?
@@ -755,16 +755,12 @@ def expand_requirements
755755
unsatisfied_reqs
756756
end
757757

758-
sig { params(formula: Formula, inherited_options: T::Hash[String, Options]).returns(T::Array[Dependency]) }
759-
def expand_dependencies_for_formula(formula, inherited_options)
758+
sig { params(formula: Formula).returns(T::Array[Dependency]) }
759+
def expand_dependencies_for_formula(formula)
760760
# Cache for this expansion only. FormulaInstaller has a lot of inputs which can alter expansion.
761761
cache_key = "FormulaInstaller-#{formula.full_name}-#{Time.now.to_f}"
762762
Dependency.expand(formula, cache_key:) do |dependent, dep|
763-
inherited_options[dep.name] |= inherited_options_for(dep)
764-
build = effective_build_options_for(
765-
dependent,
766-
inherited_options.fetch(dependent.name, Options.new),
767-
)
763+
build = effective_build_options_for(dependent)
768764

769765
keep_build_test = false
770766
keep_build_test ||= dep.test? && include_test? && @include_test_formulae.include?(dependent.full_name)
@@ -778,25 +774,19 @@ def expand_dependencies_for_formula(formula, inherited_options)
778774

779775
if dep.prune_from_option?(build) || ((dep.build? || dep.test?) && !keep_build_test)
780776
Dependency.prune
781-
elsif dep.satisfied?(inherited_options[dep.name], minimum_version:, minimum_revision:, bottle_os_version:)
777+
elsif dep.satisfied?(minimum_version:, minimum_revision:, bottle_os_version:)
782778
Dependency.skip
783779
end
784780
end
785781
end
786782

787-
sig { returns(T::Array[[Dependency, Options]]) }
788-
def expand_dependencies
789-
inherited_options = Hash.new { |hash, key| hash[key] = Options.new }
783+
sig { returns(T::Array[Dependency]) }
784+
def expand_dependencies = expand_dependencies_for_formula(formula)
790785

791-
expanded_deps = expand_dependencies_for_formula(formula, inherited_options)
792-
793-
expanded_deps.map { |dep| [dep, inherited_options[dep.name]] }
794-
end
795-
796-
sig { params(dependent: Formula, inherited_options: Options).returns(BuildOptions) }
797-
def effective_build_options_for(dependent, inherited_options = Options.new)
786+
sig { params(dependent: Formula).returns(BuildOptions) }
787+
def effective_build_options_for(dependent)
798788
args = dependent.build.used_options
799-
args |= (dependent == formula) ? options : inherited_options
789+
args |= options if dependent == formula
800790
args |= Tab.for_formula(dependent).used_options
801791
args &= dependent.options
802792
BuildOptions.new(args, dependent.options)
@@ -813,27 +803,17 @@ def display_options(formula)
813803
options
814804
end
815805

816-
sig { params(dep: Dependency).returns(Options) }
817-
def inherited_options_for(dep)
818-
inherited_options = Options.new
819-
u = Option.new("universal")
820-
if (options.include?(u) || formula.require_universal_deps?) && !dep.build? && dep.to_formula.option_defined?(u)
821-
inherited_options << u
822-
end
823-
inherited_options
824-
end
825-
826-
sig { params(deps: T::Array[[Dependency, Options]]).void }
806+
sig { params(deps: T::Array[Dependency]).void }
827807
def install_dependencies(deps)
828808
if deps.empty? && only_deps?
829809
puts "All dependencies for #{formula.full_name} are satisfied."
830810
elsif !deps.empty?
831811
if deps.length > 1
832812
oh1 "Installing dependencies for #{formula.full_name}: " \
833-
"#{deps.map(&:first).map { Formatter.identifier(_1) }.to_sentence}",
813+
"#{deps.map { Formatter.identifier(_1) }.to_sentence}",
834814
truncate: false
835815
end
836-
deps.each { |dep, options| install_dependency(dep, options) }
816+
deps.each { install_dependency(_1) }
837817
end
838818

839819
@show_header = true if deps.length > 1
@@ -865,8 +845,8 @@ def fetch_dependency(dep)
865845
fi.fetch
866846
end
867847

868-
sig { params(dep: Dependency, inherited_options: Options).void }
869-
def install_dependency(dep, inherited_options)
848+
sig { params(dep: Dependency).void }
849+
def install_dependency(dep)
870850
df = dep.to_formula
871851

872852
if df.linked_keg.directory?
@@ -897,7 +877,6 @@ def install_dependency(dep, inherited_options)
897877
options = Options.new
898878
options |= tab.used_options if tab.present?
899879
options |= Tab.remap_deprecated_options(df.deprecated_options, dep.options)
900-
options |= inherited_options
901880
options &= df.options
902881

903882
installed_on_request = df.any_version_installed? && tab.present? && tab.installed_on_request
@@ -1390,21 +1369,20 @@ def fetch_dependencies
13901369
return if ignore_deps?
13911370

13921371
# Don't output dependencies if we're explicitly installing them.
1393-
deps = compute_dependencies.reject do |(dep, _options)|
1372+
deps = compute_dependencies.reject do |dep|
13941373
self.class.fetched.include?(dep.to_formula)
13951374
end
13961375

13971376
return if deps.empty?
13981377

13991378
unless download_queue
1400-
dependencies_string = deps.map(&:first)
1401-
.map { |dep| Formatter.identifier(dep) }
1379+
dependencies_string = deps.map { |dep| Formatter.identifier(dep) }
14021380
.to_sentence
14031381
oh1 "Fetching dependencies for #{formula.full_name}: #{dependencies_string}",
14041382
truncate: false
14051383
end
14061384

1407-
deps.each { |(dep, _options)| fetch_dependency(dep) }
1385+
deps.each { fetch_dependency(_1) }
14081386
end
14091387

14101388
sig { returns(T.nilable(Formula)) }
@@ -1627,7 +1605,7 @@ def forbidden_license_check
16271605
end
16281606

16291607
unless ignore_deps?
1630-
compute_dependencies.each do |(dep, _options)|
1608+
compute_dependencies.each do |dep|
16311609
dep_f = dep.to_formula
16321610
next unless SPDX.licenses_forbid_installation? dep_f.license, forbidden_licenses
16331611

@@ -1659,7 +1637,7 @@ def forbidden_tap_check
16591637
end
16601638

16611639
unless ignore_deps?
1662-
compute_dependencies.each do |(dep, _options)|
1640+
compute_dependencies.each do |dep|
16631641
dep_tap = dep.tap
16641642
next if dep_tap.blank? || (dep_tap.allowed_by_env? && !dep_tap.forbidden_by_env?)
16651643

@@ -1700,7 +1678,7 @@ def forbidden_formula_check
17001678
end
17011679

17021680
unless ignore_deps?
1703-
compute_dependencies.each do |(dep, _options)|
1681+
compute_dependencies.each do |dep|
17041682
dep_name = if forbidden_formulae.include?(dep.name)
17051683
dep.name
17061684
elsif dep.tap.present? &&

Library/Homebrew/install.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -425,7 +425,7 @@ def install_formulae(
425425
sig {
426426
params(
427427
formula: Formula,
428-
dependencies: T::Array[[Dependency, Options]],
428+
dependencies: T::Array[Dependency],
429429
_block: T.proc.params(arg0: Formula).returns(String),
430430
).void
431431
}
@@ -434,7 +434,7 @@ def print_dry_run_dependencies(formula, dependencies, &_block)
434434

435435
ohai "Would install #{Utils.pluralize("dependency", dependencies.count, include_count: true)} " \
436436
"for #{formula.name}:"
437-
formula_names = dependencies.map { |(dep, _options)| yield dep.to_formula }
437+
formula_names = dependencies.map { |dep| yield dep.to_formula }
438438
puts formula_names.join(" ")
439439
end
440440

Library/Homebrew/test/dependency_spec.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,7 @@
139139
subject(:dependency) { described_class.new("foo") }
140140

141141
it "accepts bottle_os_version parameter" do
142-
expect { dependency.satisfied?([], bottle_os_version: "macOS 14") }.not_to raise_error
142+
expect { dependency.satisfied?(bottle_os_version: "macOS 14") }.not_to raise_error
143143
end
144144

145145
it "accepts Ubuntu bottle_os_version parameter" do

0 commit comments

Comments
 (0)