diff --git a/Library/Homebrew/cli/parser.rb b/Library/Homebrew/cli/parser.rb index 568ab62d06..536a100a28 100644 --- a/Library/Homebrew/cli/parser.rb +++ b/Library/Homebrew/cli/parser.rb @@ -296,7 +296,9 @@ module Homebrew [remaining, non_options] end - sig { params(argv: T::Array[String], ignore_invalid_options: T::Boolean).returns(Args) } + # @return [Args] The actual return type is `Args`, but since `Args` uses `method_missing` to handle options, the + # `sig` annotates this as returning `T.untyped` to avoid spurious type errors. + sig { params(argv: T::Array[String], ignore_invalid_options: T::Boolean).returns(T.untyped) } def parse(argv = ARGV.freeze, ignore_invalid_options: false) raise "Arguments were already parsed!" if @args_parsed diff --git a/Library/Homebrew/cmd/--env.rb b/Library/Homebrew/cmd/--env.rb index a442e6ad4b..f9814ccd94 100644 --- a/Library/Homebrew/cmd/--env.rb +++ b/Library/Homebrew/cmd/--env.rb @@ -1,4 +1,4 @@ -# typed: false +# typed: strict # frozen_string_literal: true require "extend/ENV" @@ -49,7 +49,7 @@ module Homebrew end if shell.nil? - BuildEnvironment.dump ENV + BuildEnvironment.dump ENV.to_h else BuildEnvironment.keys(ENV.to_h).each do |key| puts Utils::Shell.export_value(key, ENV.fetch(key), shell) diff --git a/Library/Homebrew/extend/ENV.rbi b/Library/Homebrew/extend/ENV.rbi index f1fa0b4dcf..0c7c926da8 100644 --- a/Library/Homebrew/extend/ENV.rbi +++ b/Library/Homebrew/extend/ENV.rbi @@ -36,6 +36,7 @@ end module EnvActivation include EnvMethods + include Superenv end class Sorbet diff --git a/Library/Homebrew/postinstall.rb b/Library/Homebrew/postinstall.rb index f546df2727..ee5f1e798c 100644 --- a/Library/Homebrew/postinstall.rb +++ b/Library/Homebrew/postinstall.rb @@ -19,7 +19,7 @@ begin trap("INT", old_trap) - formula = T.must(args.named.to_resolved_formulae.first) + formula = args.named.to_resolved_formulae.first formula.extend(Debrew::Formula) if args.debug? formula.run_post_install rescue Exception => e # rubocop:disable Lint/RescueException