From 4b358fc713f8b97a344b23dc67f885b83b4d8fba Mon Sep 17 00:00:00 2001 From: Douglas Eichelberger Date: Sat, 16 Mar 2024 08:35:02 -0700 Subject: [PATCH] Extract global args --- Library/Homebrew/cli/args.rbi | 19 +++++++++++++++ .../sorbet/rbi/dsl/homebrew/cli/args.rbi | 24 ------------------- .../Homebrew/sorbet/tapioca/compilers/args.rb | 8 +++---- 3 files changed, 23 insertions(+), 28 deletions(-) create mode 100644 Library/Homebrew/cli/args.rbi diff --git a/Library/Homebrew/cli/args.rbi b/Library/Homebrew/cli/args.rbi new file mode 100644 index 0000000000..7c161fd39b --- /dev/null +++ b/Library/Homebrew/cli/args.rbi @@ -0,0 +1,19 @@ +# typed: strict + +# This file contains global args as defined in `Homebrew::CLI::Parser.global_options` +# `Command`-specific args are defined in the commands themselves, with type signatures +# generated by the `Tapioca::Compilers::Args` compiler. + +class Homebrew::CLI::Args + sig { returns(T::Boolean) } + def debug?; end + + sig { returns(T::Boolean) } + def help?; end + + sig { returns(T::Boolean) } + def quiet?; end + + sig { returns(T::Boolean) } + def verbose?; end +end diff --git a/Library/Homebrew/sorbet/rbi/dsl/homebrew/cli/args.rbi b/Library/Homebrew/sorbet/rbi/dsl/homebrew/cli/args.rbi index d31956ed1e..06f3fb5b04 100644 --- a/Library/Homebrew/sorbet/rbi/dsl/homebrew/cli/args.rbi +++ b/Library/Homebrew/sorbet/rbi/dsl/homebrew/cli/args.rbi @@ -146,18 +146,12 @@ class Homebrew::CLI::Args sig { returns(T::Boolean) } def custom_remote?; end - sig { returns(T::Boolean) } - def d?; end - sig { returns(T.nilable(String)) } def days; end sig { returns(T::Boolean) } def debian?; end - sig { returns(T::Boolean) } - def debug?; end - sig { returns(T::Boolean) } def debug_symbols?; end @@ -317,12 +311,6 @@ class Homebrew::CLI::Args sig { returns(T.nilable(T::Array[String])) } def groups; end - sig { returns(T::Boolean) } - def h?; end - - sig { returns(T::Boolean) } - def help?; end - sig { returns(T.nilable(T::Array[String])) } def hide; end @@ -623,18 +611,12 @@ class Homebrew::CLI::Args sig { returns(T.nilable(String)) } def python_package_name; end - sig { returns(T::Boolean) } - def q?; end - sig { returns(T.nilable(String)) } def qlplugindir; end sig { returns(T::Boolean) } def quarantine?; end - sig { returns(T::Boolean) } - def quiet?; end - sig { returns(T.nilable(String)) } def r; end @@ -824,15 +806,9 @@ class Homebrew::CLI::Args sig { returns(T.nilable(T::Array[String])) } def user; end - sig { returns(T::Boolean) } - def v?; end - sig { returns(T::Boolean) } def variations?; end - sig { returns(T::Boolean) } - def verbose?; end - sig { returns(T.nilable(String)) } def version; end diff --git a/Library/Homebrew/sorbet/tapioca/compilers/args.rb b/Library/Homebrew/sorbet/tapioca/compilers/args.rb index 8679b4415f..215da283fd 100644 --- a/Library/Homebrew/sorbet/tapioca/compilers/args.rb +++ b/Library/Homebrew/sorbet/tapioca/compilers/args.rb @@ -44,7 +44,7 @@ module Tapioca next if NON_PARSER_ARGS_METHODS.include?(args_method_name) parser = Homebrew.method(args_method_name).call - create_args_methods(klass, parser, include_global: true) + create_args_methods(klass, parser) end end else @@ -79,12 +79,12 @@ module Tapioca private - sig { params(klass: RBI::Scope, parser: Homebrew::CLI::Parser, include_global: T::Boolean).void } - def create_args_methods(klass, parser, include_global: false) + sig { params(klass: RBI::Scope, parser: Homebrew::CLI::Parser).void } + def create_args_methods(klass, parser) comma_array_methods = comma_arrays(parser) args_table(parser).each do |method_name, value| method_name_str = method_name.to_s - next if GLOBAL_OPTIONS.include?(method_name_str) && !include_global + next if GLOBAL_OPTIONS.include?(method_name_str) # some args are used in multiple commands (this is ok as long as they have the same type) next if klass.nodes.any? { T.cast(_1, RBI::Method).name == method_name_str }