@@ -426,6 +426,13 @@ def installed_alias_name = installed_alias_path&.basename&.to_s
426426 sig { returns ( T . nilable ( String ) ) }
427427 def full_installed_alias_name = full_name_with_optional_tap ( installed_alias_name )
428428
429+ sig { returns ( Pathname ) }
430+ def tap_path
431+ return path unless ( t = tap )
432+
433+ t . new_formula_path ( name )
434+ end
435+
429436 # The path that was specified to find this formula.
430437 sig { returns ( T . nilable ( Pathname ) ) }
431438 def specified_path
@@ -1714,14 +1721,15 @@ def outdated_kegs(fetch_head: false)
17141721 Formula . cache [ :outdated_kegs ] [ cache_key ] ||= begin
17151722 all_kegs = [ ]
17161723 current_version = T . let ( false , T ::Boolean )
1724+ latest = latest_formula
17171725
17181726 installed_kegs . each do |keg |
17191727 all_kegs << keg
17201728 version = keg . version
17211729 next if version . head?
17221730
1723- next if version_scheme > keg . version_scheme && pkg_version != version
1724- next if version_scheme == keg . version_scheme && pkg_version > version
1731+ next if latest . version_scheme > keg . version_scheme && latest . pkg_version != version
1732+ next if latest . version_scheme == keg . version_scheme && latest . pkg_version > version
17251733
17261734 # don't consider this keg current if there's a newer formula available
17271735 next if follow_installed_alias? && new_formula_available?
@@ -1779,7 +1787,7 @@ def alias_changed?
17791787 # Otherwise, return self.
17801788 sig { returns ( Formula ) }
17811789 def latest_formula
1782- installed_alias_target_changed? ? T . must ( current_installed_alias_target ) : self
1790+ installed_alias_target_changed? ? T . must ( current_installed_alias_target ) : Formulary . factory ( name )
17831791 end
17841792
17851793 sig { returns ( T ::Array [ Formula ] ) }
0 commit comments