diff --git a/Library/Homebrew/cmd/outdated.rb b/Library/Homebrew/cmd/outdated.rb index 710e282c4a..17232e8dd4 100644 --- a/Library/Homebrew/cmd/outdated.rb +++ b/Library/Homebrew/cmd/outdated.rb @@ -1,4 +1,4 @@ -# typed: true +# typed: strict # frozen_string_literal: true require "abstract_command" @@ -86,6 +86,7 @@ module Homebrew private + sig { params(formulae_or_casks: T::Array[T.any(Formula, Cask::Cask)]).void } def print_outdated(formulae_or_casks) formulae_or_casks.each do |formula_or_cask| if formula_or_cask.is_a?(Formula) @@ -124,6 +125,13 @@ module Homebrew end end + sig { + params( + formulae_or_casks: T::Array[T.any(Formula, Cask::Cask)], + ).returns( + T::Array[T.any(T::Hash[String, T.untyped], T::Hash[String, T.untyped])], + ) + } def json_info(formulae_or_casks) formulae_or_casks.map do |formula_or_cask| if formula_or_cask.is_a?(Formula) @@ -149,10 +157,12 @@ module Homebrew end end + sig { returns(T::Boolean) } def verbose? ($stdout.tty? || Context.current.verbose?) && !Context.current.quiet? end + sig { params(version: T.nilable(T.any(TrueClass, String))).returns(T.nilable(Symbol)) } def json_version(version) version_hash = { nil => nil, @@ -166,18 +176,26 @@ module Homebrew version_hash[version] end + sig { returns(T::Array[Formula]) } def outdated_formulae - select_outdated((args.named.to_resolved_formulae.presence || Formula.installed)).sort + T.cast( + select_outdated((args.named.to_resolved_formulae.presence || Formula.installed)).sort, + T::Array[Formula], + ) end + sig { returns(T::Array[Cask::Cask]) } def outdated_casks - if args.named.present? + outdated = if args.named.present? select_outdated(args.named.to_casks) else select_outdated(Cask::Caskroom.casks) end + + T.cast(outdated, T::Array[Cask::Cask]) end + sig { returns([T::Array[T.any(Formula, Cask::Cask)], T::Array[T.any(Formula, Cask::Cask)]]) } def outdated_formulae_casks formulae, casks = args.named.to_resolved_formulae_to_casks @@ -189,6 +207,9 @@ module Homebrew [select_outdated(formulae).sort, select_outdated(casks)] end + sig { + params(formulae_or_casks: T::Array[T.any(Formula, Cask::Cask)]).returns(T::Array[T.any(Formula, Cask::Cask)]) + } def select_outdated(formulae_or_casks) formulae_or_casks.select do |formula_or_cask| if formula_or_cask.is_a?(Formula)