Skip to content

Commit cfa3f92

Browse files
authored
Merge pull request #17030 from Homebrew/strict-parser
Enable strict typing in `CLI::Parser`
2 parents eead9dd + 1172013 commit cfa3f92

File tree

8 files changed

+138
-78
lines changed

8 files changed

+138
-78
lines changed

Library/Homebrew/abstract_command.rb

+3
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,9 @@ def command_name = Utils.underscore(T.must(name).split("::").fetch(-1)).tr("_",
2626
sig { params(name: String).returns(T.nilable(T.class_of(AbstractCommand))) }
2727
def command(name) = subclasses.find { _1.command_name == name }
2828

29+
sig { returns(T::Boolean) }
30+
def dev_cmd? = T.must(name).start_with?("Homebrew::DevCmd")
31+
2932
sig { returns(CLI::Parser) }
3033
def parser = CLI::Parser.new(self, &@parser_block)
3134

Library/Homebrew/brew.rb

+3-3
Original file line numberDiff line numberDiff line change
@@ -136,17 +136,17 @@
136136
end
137137
rescue UsageError => e
138138
require "help"
139-
Homebrew::Help.help cmd, remaining_args: args.remaining, usage_error: e.message
139+
Homebrew::Help.help cmd, remaining_args: args&.remaining, usage_error: e.message
140140
rescue SystemExit => e
141-
onoe "Kernel.exit" if args.debug? && !e.success?
141+
onoe "Kernel.exit" if args&.debug? && !e.success?
142142
$stderr.puts Utils::Backtrace.clean(e) if args&.debug? || ARGV.include?("--debug")
143143
raise
144144
rescue Interrupt
145145
$stderr.puts # seemingly a newline is typical
146146
exit 130
147147
rescue BuildError => e
148148
Utils::Analytics.report_build_error(e)
149-
e.dump(verbose: args&.verbose?)
149+
e.dump(verbose: args&.verbose? || false)
150150

151151
if OS.unsupported_configuration?
152152
$stderr.puts "#{Tty.bold}Do not report this issue: you are running in an unsupported configuration.#{Tty.reset}"

Library/Homebrew/cli/args.rbi

+3
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,9 @@ class Homebrew::CLI::Args
1414
sig { returns(T::Boolean) }
1515
def quiet?; end
1616

17+
sig { returns(T::Array[String]) }
18+
def remaining; end
19+
1720
sig { returns(T::Boolean) }
1821
def verbose?; end
1922
end

0 commit comments

Comments
 (0)