Merge pull request #20309 from Homebrew/dependabot/all-f8dbd9efe6

Bump the "all" group with 3 updates across multiple ecosystems
This commit is contained in:
Bo Anderson 2025-07-25 16:37:43 +00:00 committed by GitHub
commit 4d14be89e9
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
96 changed files with 232 additions and 95 deletions

View File

@ -93,7 +93,7 @@ jobs:
path: results.sarif
- name: Upload SARIF file
uses: github/codeql-action/upload-sarif@181d5eefc20863364f96762470ba6f862bdef56b # v3.29.2
uses: github/codeql-action/upload-sarif@4e828ff8d448a8a6e532957b1811f387a63867e8 # v3.29.4
with:
sarif_file: results.sarif
category: zizmor

View File

@ -27,7 +27,7 @@ jobs:
persist-credentials: false
- name: Initialize CodeQL
uses: github/codeql-action/init@181d5eefc20863364f96762470ba6f862bdef56b # v3.29.2
uses: github/codeql-action/init@4e828ff8d448a8a6e532957b1811f387a63867e8 # v3.29.4
with:
languages: ruby
config: |
@ -35,4 +35,4 @@ jobs:
- Library/Homebrew/vendor
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@181d5eefc20863364f96762470ba6f862bdef56b # v3.29.2
uses: github/codeql-action/analyze@4e828ff8d448a8a6e532957b1811f387a63867e8 # v3.29.4

View File

@ -32,9 +32,9 @@ GEM
minitest (5.25.5)
netrc (0.11.0)
parallel (1.27.0)
parallel_tests (5.3.0)
parallel_tests (5.3.1)
parallel
parser (3.3.8.0)
parser (3.3.9.0)
ast (~> 2.4.1)
racc
patchelf (1.5.1)
@ -90,7 +90,7 @@ GEM
rubocop-ast (>= 1.45.1, < 2.0)
ruby-progressbar (~> 1.7)
unicode-display_width (>= 2.4.0, < 4.0)
rubocop-ast (1.45.1)
rubocop-ast (1.46.0)
parser (>= 3.3.7.2)
prism (~> 1.4)
rubocop-md (2.0.1)
@ -124,16 +124,16 @@ GEM
simplecov-html (0.13.2)
simplecov_json_formatter (0.1.4)
simpleidn (0.2.3)
sorbet (0.5.12230)
sorbet-static (= 0.5.12230)
sorbet-runtime (0.5.12230)
sorbet-static (0.5.12230-aarch64-linux)
sorbet-static (0.5.12230-universal-darwin)
sorbet-static (0.5.12230-x86_64-linux)
sorbet-static-and-runtime (0.5.12230)
sorbet (= 0.5.12230)
sorbet-runtime (= 0.5.12230)
spoom (1.7.4)
sorbet (0.5.12357)
sorbet-static (= 0.5.12357)
sorbet-runtime (0.5.12357)
sorbet-static (0.5.12357-aarch64-linux)
sorbet-static (0.5.12357-universal-darwin)
sorbet-static (0.5.12357-x86_64-linux)
sorbet-static-and-runtime (0.5.12357)
sorbet (= 0.5.12357)
sorbet-runtime (= 0.5.12357)
spoom (1.7.5)
erubi (>= 1.10.0)
prism (>= 0.28.0)
rbi (>= 0.3.3)
@ -167,7 +167,8 @@ GEM
PLATFORMS
aarch64-linux
arm-linux
universal-darwin
arm64-darwin
x86_64-darwin
x86_64-linux
DEPENDENCIES
@ -219,4 +220,4 @@ RUBY VERSION
ruby 3.4.5p51
BUNDLED WITH
2.6.9
2.6.8

View File

@ -4,9 +4,9 @@
#
# pip-compile --allow-unsafe --generate-hashes --strip-extras requirements.in
#
certifi==2025.7.9 \
--hash=sha256:c1d2ec05395148ee10cf672ffc28cd37ea0ab0d99f9cc74c43e588cbd111b079 \
--hash=sha256:d842783a14f8fdd646895ac26f719a061408834473cfc10203f6a575beb15d39
certifi==2025.7.14 \
--hash=sha256:6b31f564a415d79ee77df69d757bb49a5bb53bd9f756cbbe24394ffd6fc1f4b2 \
--hash=sha256:8ea99dbdfaaf2ba2f9bac77b9249ef62ec5218e7c2b2e903378ed5fccf765995
# via influxdb3-python
influxdb3-python==0.14.0 \
--hash=sha256:63318c1eb53e026d1d793ef00fef51510acd40dd80bd69b528bf05332757dc67 \

View File

@ -235,7 +235,7 @@ class RuboCop::AST::AsgnNode < ::RuboCop::AST::Node
end
# Common functionality for primitive literal nodes: `sym`, `str`,
# `int`, `float`, `rational`...
# `int`, `float`, `rational`, `complex`...
#
# source://rubocop-ast//lib/rubocop/ast/node/mixin/basic_literal_node.rb#7
module RuboCop::AST::BasicLiteralNode
@ -452,7 +452,7 @@ end
# parser = Parser::Ruby25.new(builder)
# root_node = parser.parse(buffer)
#
# source://rubocop-ast//lib/rubocop/ast/builder.rb#128
# source://rubocop-ast//lib/rubocop/ast/builder.rb#129
class RuboCop::AST::Builder < ::Parser::Builders::Default
include ::RuboCop::AST::BuilderExtensions
end
@ -468,7 +468,7 @@ module RuboCop::AST::BuilderExtensions
# @api private
# @return [Node] the generated node
#
# source://rubocop-ast//lib/rubocop/ast/builder.rb#100
# source://rubocop-ast//lib/rubocop/ast/builder.rb#101
def n(type, children, source_map); end
# Overwrite the base method to allow strings with invalid encoding
@ -476,14 +476,14 @@ module RuboCop::AST::BuilderExtensions
#
# @api private
#
# source://rubocop-ast//lib/rubocop/ast/builder.rb#106
# source://rubocop-ast//lib/rubocop/ast/builder.rb#107
def string_value(token); end
private
# @api private
#
# source://rubocop-ast//lib/rubocop/ast/builder.rb#112
# source://rubocop-ast//lib/rubocop/ast/builder.rb#113
def node_klass(type); end
class << self
@ -1088,6 +1088,16 @@ end
# source://rubocop-ast//lib/rubocop/ast/node/mixin/collection_node.rb#9
RuboCop::AST::CollectionNode::ARRAY_METHODS = T.let(T.unsafe(nil), Array)
# A node extension for `complex` nodes. This will be used in place of a plain
# node when the builder constructs the AST, making its methods available to
# all `complex` nodes within RuboCop.
#
# source://rubocop-ast//lib/rubocop/ast/node/complex_node.rb#8
class RuboCop::AST::ComplexNode < ::RuboCop::AST::Node
include ::RuboCop::AST::BasicLiteralNode
include ::RuboCop::AST::NumericNode
end
# Common functionality for nodes that have conditions:
# `if`, `while`, `until`, `case`.
# This currently doesn't include `when` nodes, because they have multiple
@ -5828,7 +5838,7 @@ RuboCop::AST::NodePattern::Sets::SET_____2 = T.let(T.unsafe(nil), Set)
# source://rubocop-ast//lib/rubocop/ast/node_pattern.rb#55
RuboCop::AST::NodePattern::VAR = T.let(T.unsafe(nil), String)
# Common functionality for primitive numeric nodes: `int`, `float`, `rational`...
# Common functionality for primitive numeric nodes: `int`, `float`, `rational`, `complex`...
#
# source://rubocop-ast//lib/rubocop/ast/node/mixin/numeric_node.rb#6
module RuboCop::AST::NumericNode

View File

@ -9,7 +9,7 @@
# DO NOT EDIT MANUALLY
# This is an autogenerated file for types exported from the `spoom` gem.
# Please instead update this file by running `spoom srb sigs export`.
# Please instead update this file by running `bundle exec spoom srb sigs export`.
# source://spoom//lib/spoom.rb#7
module Spoom
@ -189,10 +189,10 @@ class Spoom::Cli::Srb::Assertions < ::Thor
# source://spoom//lib/spoom/cli/srb.rb#17
def help(command = T.unsafe(nil), subcommand = T.unsafe(nil)); end
# source://spoom//lib/spoom/cli/srb/assertions.rb#29
# source://spoom//lib/spoom/cli/srb/assertions.rb#42
def transform_files(files, &block); end
# source://spoom//lib/spoom/cli/srb/assertions.rb#13
# source://spoom//lib/spoom/cli/srb/assertions.rb#18
def translate(*paths); end
end
@ -353,22 +353,22 @@ class Spoom::Cli::Srb::Sigs < ::Thor
include ::Spoom::Colorize
include ::Spoom::Cli::Helper
# source://spoom//lib/spoom/cli/srb/sigs.rb#216
# source://spoom//lib/spoom/cli/srb/sigs.rb#222
def exec(context, command); end
# source://spoom//lib/spoom/cli/srb/sigs.rb#87
# source://spoom//lib/spoom/cli/srb/sigs.rb#93
def export(output_path = T.unsafe(nil)); end
# source://spoom//lib/spoom/cli/srb.rb#32
def help(command = T.unsafe(nil), subcommand = T.unsafe(nil)); end
# source://spoom//lib/spoom/cli/srb/sigs.rb#68
# source://spoom//lib/spoom/cli/srb/sigs.rb#74
def strip(*paths); end
# source://spoom//lib/spoom/cli/srb/sigs.rb#193
# source://spoom//lib/spoom/cli/srb/sigs.rb#199
def transform_files(files, &block); end
# source://spoom//lib/spoom/cli/srb/sigs.rb#20
# source://spoom//lib/spoom/cli/srb/sigs.rb#23
def translate(*paths); end
end
@ -898,6 +898,7 @@ class Spoom::Coverage::Cards::Erb < ::Spoom::Coverage::Cards::Card
def initialize; end
# @abstract
# @raise [NotImplementedError]
#
# source://spoom//lib/spoom/coverage/report.rb#109
sig { abstract.returns(::String) }
@ -1062,6 +1063,7 @@ class Spoom::Coverage::D3::Base
def id; end
# @abstract
# @raise [NotImplementedError]
#
# source://spoom//lib/spoom/coverage/d3/base.rb#45
sig { abstract.returns(::String) }
@ -1230,6 +1232,7 @@ class Spoom::Coverage::D3::Timeline < ::Spoom::Coverage::D3::Base
def line(y:, color: T.unsafe(nil), curve: T.unsafe(nil)); end
# @abstract
# @raise [NotImplementedError]
#
# source://spoom//lib/spoom/coverage/d3/timeline.rb#122
sig { abstract.returns(::String) }
@ -1404,6 +1407,7 @@ class Spoom::Coverage::Page < ::Spoom::Coverage::Template
def body_html; end
# @abstract
# @raise [NotImplementedError]
#
# source://spoom//lib/spoom/coverage/report.rb#73
sig { abstract.returns(T::Array[::Spoom::Coverage::Cards::Card]) }
@ -3152,6 +3156,7 @@ module Spoom::LSP::PrintableSymbol
interface!
# @abstract
# @raise [NotImplementedError]
#
# source://spoom//lib/spoom/sorbet/lsp/structures.rb#13
sig { abstract.params(printer: ::Spoom::LSP::SymbolPrinter).void }
@ -4702,30 +4707,43 @@ module Spoom::Sorbet::Translate
# Converts all the RBS comments in the given Ruby code to `sig` nodes.
# It also handles type members and class annotations.
#
# source://spoom//lib/spoom/sorbet/translate.rb#36
# source://spoom//lib/spoom/sorbet/translate.rb#57
sig { params(ruby_contents: ::String, file: ::String, max_line_length: T.nilable(::Integer)).returns(::String) }
def rbs_comments_to_sorbet_sigs(ruby_contents, file:, max_line_length: T.unsafe(nil)); end
# Converts all `T.let` and `T.cast` nodes to RBS comments in the given Ruby code.
# It also handles type members and class annotations.
#
# source://spoom//lib/spoom/sorbet/translate.rb#43
sig { params(ruby_contents: ::String, file: ::String).returns(::String) }
def sorbet_assertions_to_rbs_comments(ruby_contents, file:); end
# source://spoom//lib/spoom/sorbet/translate.rb#72
sig do
params(
ruby_contents: ::String,
file: ::String,
translate_t_let: T::Boolean,
translate_t_cast: T::Boolean,
translate_t_bind: T::Boolean,
translate_t_must: T::Boolean,
translate_t_unsafe: T::Boolean
).returns(::String)
end
def sorbet_assertions_to_rbs_comments(ruby_contents, file:, translate_t_let: T.unsafe(nil), translate_t_cast: T.unsafe(nil), translate_t_bind: T.unsafe(nil), translate_t_must: T.unsafe(nil), translate_t_unsafe: T.unsafe(nil)); end
# Converts all `sig` nodes to RBS comments in the given Ruby code.
# It also handles type members and class annotations.
#
# source://spoom//lib/spoom/sorbet/translate.rb#29
# source://spoom//lib/spoom/sorbet/translate.rb#37
sig do
params(
ruby_contents: ::String,
file: ::String,
positional_names: T::Boolean,
max_line_length: T.nilable(::Integer)
max_line_length: T.nilable(::Integer),
translate_generics: T::Boolean,
translate_helpers: T::Boolean,
translate_abstract_methods: T::Boolean
).returns(::String)
end
def sorbet_sigs_to_rbs_comments(ruby_contents, file:, positional_names: T.unsafe(nil), max_line_length: T.unsafe(nil)); end
def sorbet_sigs_to_rbs_comments(ruby_contents, file:, positional_names: T.unsafe(nil), max_line_length: T.unsafe(nil), translate_generics: T.unsafe(nil), translate_helpers: T.unsafe(nil), translate_abstract_methods: T.unsafe(nil)); end
# Deletes all `sig` nodes from the given Ruby code.
# It doesn't handle type members and class annotations.
@ -4749,7 +4767,7 @@ class Spoom::Sorbet::Translate::RBSCommentsToSorbetSigs < ::Spoom::Sorbet::Trans
sig { params(ruby_contents: ::String, file: ::String, max_line_length: T.nilable(::Integer)).void }
def initialize(ruby_contents, file:, max_line_length: T.unsafe(nil)); end
# source://spoom//lib/spoom/sorbet/translate/rbs_comments_to_sorbet_sigs.rb#73
# source://spoom//lib/spoom/sorbet/translate/rbs_comments_to_sorbet_sigs.rb#49
sig { override.params(node: ::Prism::CallNode).void }
def visit_call_node(node); end
@ -4773,7 +4791,7 @@ class Spoom::Sorbet::Translate::RBSCommentsToSorbetSigs < ::Spoom::Sorbet::Trans
# @return [Boolean]
#
# source://spoom//lib/spoom/sorbet/translate/rbs_comments_to_sorbet_sigs.rb#242
# source://spoom//lib/spoom/sorbet/translate/rbs_comments_to_sorbet_sigs.rb#260
sig do
params(
node: T.any(::Prism::ClassNode, ::Prism::ModuleNode, ::Prism::SingletonClassNode),
@ -4782,15 +4800,19 @@ class Spoom::Sorbet::Translate::RBSCommentsToSorbetSigs < ::Spoom::Sorbet::Trans
end
def already_extends?(node, constant_regex); end
# source://spoom//lib/spoom/sorbet/translate/rbs_comments_to_sorbet_sigs.rb#123
# source://spoom//lib/spoom/sorbet/translate/rbs_comments_to_sorbet_sigs.rb#141
sig { params(node: T.any(::Prism::ClassNode, ::Prism::ModuleNode, ::Prism::SingletonClassNode)).void }
def apply_class_annotations(node); end
# source://spoom//lib/spoom/sorbet/translate/rbs_comments_to_sorbet_sigs.rb#221
# source://spoom//lib/spoom/sorbet/translate/rbs_comments_to_sorbet_sigs.rb#239
sig { params(annotations: T::Array[::Spoom::RBS::Annotation], sig: ::RBI::Sig).void }
def apply_member_annotations(annotations, sig); end
# source://spoom//lib/spoom/sorbet/translate/rbs_comments_to_sorbet_sigs.rb#85
# source://spoom//lib/spoom/sorbet/translate/rbs_comments_to_sorbet_sigs.rb#105
sig { params(def_node: ::Prism::DefNode, comments: ::Spoom::RBS::Comments).void }
def rewrite_def(def_node, comments); end
# source://spoom//lib/spoom/sorbet/translate/rbs_comments_to_sorbet_sigs.rb#67
sig { params(node: ::Prism::CallNode).void }
def visit_attr(node); end
end
@ -4799,11 +4821,27 @@ end
#
# source://spoom//lib/spoom/sorbet/translate/sorbet_assertions_to_rbs_comments.rb#8
class Spoom::Sorbet::Translate::SorbetAssertionsToRBSComments < ::Spoom::Sorbet::Translate::Translator
# source://spoom//lib/spoom/sorbet/translate/sorbet_assertions_to_rbs_comments.rb#22
# @return [SorbetAssertionsToRBSComments] a new instance of SorbetAssertionsToRBSComments
#
# source://spoom//lib/spoom/sorbet/translate/sorbet_assertions_to_rbs_comments.rb#20
sig do
params(
ruby_contents: ::String,
file: ::String,
translate_t_let: T::Boolean,
translate_t_cast: T::Boolean,
translate_t_bind: T::Boolean,
translate_t_must: T::Boolean,
translate_t_unsafe: T::Boolean
).void
end
def initialize(ruby_contents, file:, translate_t_let: T.unsafe(nil), translate_t_cast: T.unsafe(nil), translate_t_bind: T.unsafe(nil), translate_t_must: T.unsafe(nil), translate_t_unsafe: T.unsafe(nil)); end
# source://spoom//lib/spoom/sorbet/translate/sorbet_assertions_to_rbs_comments.rb#49
sig { override.params(node: ::Prism::IfNode).void }
def visit_if_node(node); end
# source://spoom//lib/spoom/sorbet/translate/sorbet_assertions_to_rbs_comments.rb#13
# source://spoom//lib/spoom/sorbet/translate/sorbet_assertions_to_rbs_comments.rb#40
sig { override.params(node: ::Prism::StatementsNode).void }
def visit_statements_node(node); end
@ -4811,19 +4849,19 @@ class Spoom::Sorbet::Translate::SorbetAssertionsToRBSComments < ::Spoom::Sorbet:
# @return [Boolean]
#
# source://spoom//lib/spoom/sorbet/translate/sorbet_assertions_to_rbs_comments.rb#135
# source://spoom//lib/spoom/sorbet/translate/sorbet_assertions_to_rbs_comments.rb#166
sig { params(node: ::Prism::Node).returns(T::Boolean) }
def at_end_of_line?(node); end
# source://spoom//lib/spoom/sorbet/translate/sorbet_assertions_to_rbs_comments.rb#81
# source://spoom//lib/spoom/sorbet/translate/sorbet_assertions_to_rbs_comments.rb#108
sig { params(call: ::Prism::CallNode).returns(::String) }
def build_rbs_annotation(call); end
# source://spoom//lib/spoom/sorbet/translate/sorbet_assertions_to_rbs_comments.rb#142
# source://spoom//lib/spoom/sorbet/translate/sorbet_assertions_to_rbs_comments.rb#173
sig { params(assign: ::Prism::Node, value: ::Prism::Node).returns(::String) }
def dedent_value(assign, value); end
# source://spoom//lib/spoom/sorbet/translate/sorbet_assertions_to_rbs_comments.rb#44
# source://spoom//lib/spoom/sorbet/translate/sorbet_assertions_to_rbs_comments.rb#71
sig { params(node: ::Prism::Node).returns(T::Boolean) }
def maybe_translate_assertion(node); end
@ -4831,7 +4869,7 @@ class Spoom::Sorbet::Translate::SorbetAssertionsToRBSComments < ::Spoom::Sorbet:
#
# @return [Boolean]
#
# source://spoom//lib/spoom/sorbet/translate/sorbet_assertions_to_rbs_comments.rb#106
# source://spoom//lib/spoom/sorbet/translate/sorbet_assertions_to_rbs_comments.rb#133
sig { params(node: T.nilable(::Prism::Node)).returns(T::Boolean) }
def t?(node); end
@ -4839,9 +4877,9 @@ class Spoom::Sorbet::Translate::SorbetAssertionsToRBSComments < ::Spoom::Sorbet:
#
# @return [Boolean]
#
# source://spoom//lib/spoom/sorbet/translate/sorbet_assertions_to_rbs_comments.rb#119
# source://spoom//lib/spoom/sorbet/translate/sorbet_assertions_to_rbs_comments.rb#146
sig { params(node: ::Prism::CallNode).returns(T::Boolean) }
def t_annotation?(node); end
def translatable_annotation?(node); end
end
# source://spoom//lib/spoom/sorbet/translate/sorbet_assertions_to_rbs_comments.rb#9
@ -4854,44 +4892,47 @@ Spoom::Sorbet::Translate::SorbetAssertionsToRBSComments::LINE_BREAK = T.let(T.un
class Spoom::Sorbet::Translate::SorbetSigsToRBSComments < ::Spoom::Sorbet::Translate::Translator
# @return [SorbetSigsToRBSComments] a new instance of SorbetSigsToRBSComments
#
# source://spoom//lib/spoom/sorbet/translate/sorbet_sigs_to_rbs_comments.rb#11
# source://spoom//lib/spoom/sorbet/translate/sorbet_sigs_to_rbs_comments.rb#19
sig do
params(
ruby_contents: ::String,
file: ::String,
positional_names: T::Boolean,
max_line_length: T.nilable(::Integer)
max_line_length: T.nilable(::Integer),
translate_generics: T::Boolean,
translate_helpers: T::Boolean,
translate_abstract_methods: T::Boolean
).void
end
def initialize(ruby_contents, file:, positional_names:, max_line_length: T.unsafe(nil)); end
def initialize(ruby_contents, file:, positional_names:, max_line_length: T.unsafe(nil), translate_generics: T.unsafe(nil), translate_helpers: T.unsafe(nil), translate_abstract_methods: T.unsafe(nil)); end
# source://spoom//lib/spoom/sorbet/translate/sorbet_sigs_to_rbs_comments.rb#66
# source://spoom//lib/spoom/sorbet/translate/sorbet_sigs_to_rbs_comments.rb#100
sig { override.params(node: ::Prism::CallNode).void }
def visit_call_node(node); end
# source://spoom//lib/spoom/sorbet/translate/sorbet_sigs_to_rbs_comments.rb#26
# source://spoom//lib/spoom/sorbet/translate/sorbet_sigs_to_rbs_comments.rb#46
sig { override.params(node: ::Prism::ClassNode).void }
def visit_class_node(node); end
# source://spoom//lib/spoom/sorbet/translate/sorbet_sigs_to_rbs_comments.rb#85
# source://spoom//lib/spoom/sorbet/translate/sorbet_sigs_to_rbs_comments.rb#119
sig { override.params(node: ::Prism::ConstantWriteNode).void }
def visit_constant_write_node(node); end
# source://spoom//lib/spoom/sorbet/translate/sorbet_sigs_to_rbs_comments.rb#44
# source://spoom//lib/spoom/sorbet/translate/sorbet_sigs_to_rbs_comments.rb#64
sig { override.params(node: ::Prism::DefNode).void }
def visit_def_node(node); end
# source://spoom//lib/spoom/sorbet/translate/sorbet_sigs_to_rbs_comments.rb#32
# source://spoom//lib/spoom/sorbet/translate/sorbet_sigs_to_rbs_comments.rb#52
sig { override.params(node: ::Prism::ModuleNode).void }
def visit_module_node(node); end
# source://spoom//lib/spoom/sorbet/translate/sorbet_sigs_to_rbs_comments.rb#38
# source://spoom//lib/spoom/sorbet/translate/sorbet_sigs_to_rbs_comments.rb#58
sig { override.params(node: ::Prism::SingletonClassNode).void }
def visit_singleton_class_node(node); end
private
# source://spoom//lib/spoom/sorbet/translate/sorbet_sigs_to_rbs_comments.rb#193
# source://spoom//lib/spoom/sorbet/translate/sorbet_sigs_to_rbs_comments.rb#233
sig do
params(
parent: T.any(::Prism::ClassNode, ::Prism::ModuleNode, ::Prism::SingletonClassNode),
@ -4900,45 +4941,45 @@ class Spoom::Sorbet::Translate::SorbetSigsToRBSComments < ::Spoom::Sorbet::Trans
end
def apply_class_annotation(parent, node); end
# source://spoom//lib/spoom/sorbet/translate/sorbet_sigs_to_rbs_comments.rb#234
# source://spoom//lib/spoom/sorbet/translate/sorbet_sigs_to_rbs_comments.rb#274
sig { params(sigs: T::Array[[::Prism::CallNode, ::RBI::Sig]]).void }
def apply_member_annotations(sigs); end
# @raise [Error]
#
# source://spoom//lib/spoom/sorbet/translate/sorbet_sigs_to_rbs_comments.rb#266
# source://spoom//lib/spoom/sorbet/translate/sorbet_sigs_to_rbs_comments.rb#308
sig { params(node: ::Prism::ConstantWriteNode).returns(::String) }
def build_type_member_string(node); end
# Collects the last signatures visited and clears the current list
#
# source://spoom//lib/spoom/sorbet/translate/sorbet_sigs_to_rbs_comments.rb#337
# source://spoom//lib/spoom/sorbet/translate/sorbet_sigs_to_rbs_comments.rb#379
sig { returns(T::Array[[::Prism::CallNode, ::RBI::Sig]]) }
def collect_last_sigs; end
# source://spoom//lib/spoom/sorbet/translate/sorbet_sigs_to_rbs_comments.rb#324
# source://spoom//lib/spoom/sorbet/translate/sorbet_sigs_to_rbs_comments.rb#366
sig { void }
def delete_extend_t_generics; end
# source://spoom//lib/spoom/sorbet/translate/sorbet_sigs_to_rbs_comments.rb#312
# source://spoom//lib/spoom/sorbet/translate/sorbet_sigs_to_rbs_comments.rb#354
sig { void }
def delete_extend_t_helpers; end
# source://spoom//lib/spoom/sorbet/translate/sorbet_sigs_to_rbs_comments.rb#344
# source://spoom//lib/spoom/sorbet/translate/sorbet_sigs_to_rbs_comments.rb#386
sig { params(indent: ::Integer, block: T.proc.params(arg0: ::RBI::RBSPrinter).void).returns(::String) }
def rbs_print(indent, &block); end
# source://spoom//lib/spoom/sorbet/translate/sorbet_sigs_to_rbs_comments.rb#151
# source://spoom//lib/spoom/sorbet/translate/sorbet_sigs_to_rbs_comments.rb#191
sig { params(node: ::Prism::CallNode).void }
def visit_attr(node); end
# @raise [Error]
#
# source://spoom//lib/spoom/sorbet/translate/sorbet_sigs_to_rbs_comments.rb#175
# source://spoom//lib/spoom/sorbet/translate/sorbet_sigs_to_rbs_comments.rb#215
sig { params(node: ::Prism::CallNode).void }
def visit_extend(node); end
# source://spoom//lib/spoom/sorbet/translate/sorbet_sigs_to_rbs_comments.rb#102
# source://spoom//lib/spoom/sorbet/translate/sorbet_sigs_to_rbs_comments.rb#138
sig do
params(
node: T.any(::Prism::ClassNode, ::Prism::ModuleNode, ::Prism::SingletonClassNode),
@ -4947,7 +4988,7 @@ class Spoom::Sorbet::Translate::SorbetSigsToRBSComments < ::Spoom::Sorbet::Trans
end
def visit_scope(node, &block); end
# source://spoom//lib/spoom/sorbet/translate/sorbet_sigs_to_rbs_comments.rb#139
# source://spoom//lib/spoom/sorbet/translate/sorbet_sigs_to_rbs_comments.rb#179
sig { params(node: ::Prism::CallNode).void }
def visit_sig(node); end
end
@ -5062,12 +5103,14 @@ class Spoom::Source::Edit
abstract!
# @abstract
# @raise [NotImplementedError]
#
# source://spoom//lib/spoom/source/rewriter.rb#32
sig { abstract.params(bytes: T::Array[::Integer]).void }
def apply(bytes); end
# @abstract
# @raise [NotImplementedError]
#
# source://spoom//lib/spoom/source/rewriter.rb#36
sig { abstract.returns([::Integer, ::Integer]) }

View File

@ -10,7 +10,7 @@ Homebrew::FastBootRequire.from_rubylibdir("English")
module Homebrew
# Keep in sync with the `Gemfile.lock`'s BUNDLED WITH.
# After updating this, run `brew vendor-gems --update=--bundler`.
HOMEBREW_BUNDLER_VERSION = "2.6.9"
HOMEBREW_BUNDLER_VERSION = "2.6.8" # Pinned to <2.6.9 until Ruby 3.5.
# Bump this whenever a committed vendored gem is later added to or exclusion removed from gitignore.
# This will trigger it to reinstall properly if `brew install-bundler-gems` needs it.

View File

@ -64,10 +64,10 @@ $:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/minitest-5.25.5/lib")
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/netrc-0.11.0/lib")
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/parallel-1.27.0/lib")
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/parallel_tests-5.3.0/lib")
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/parallel_tests-5.3.1/lib")
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/extensions/arm64-darwin-20/#{Gem.extension_api_version}/racc-1.8.1")
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/racc-1.8.1/lib")
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/parser-3.3.8.0/lib")
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/parser-3.3.9.0/lib")
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/patchelf-1.5.1/lib")
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/plist-3.7.2/lib")
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/extensions/arm64-darwin-20/#{Gem.extension_api_version}/prism-1.4.0")
@ -89,10 +89,10 @@ $:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/rspec-3.13.1/lib")
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/rspec-github-3.0.0/lib")
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/rspec-retry-0.6.2/lib")
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/sorbet-runtime-0.5.12230/lib")
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/sorbet-runtime-0.5.12357/lib")
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/rspec-sorbet-1.9.2/lib")
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/rspec_junit_formatter-0.6.0/lib")
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/rubocop-ast-1.45.1/lib")
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/rubocop-ast-1.46.0/lib")
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/ruby-progressbar-1.13.0/lib")
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/unicode-emoji-4.0.4/lib")
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/unicode-display_width-3.1.4/lib")
@ -109,11 +109,11 @@ $:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/simplecov_json_formatter-0.1.4/lib")
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/simplecov-0.22.0/lib")
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/simplecov-cobertura-2.1.0/lib")
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/sorbet-static-0.5.12230-universal-darwin/lib")
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/sorbet-0.5.12230/lib")
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/sorbet-static-and-runtime-0.5.12230/lib")
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/sorbet-static-0.5.12357-universal-darwin/lib")
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/sorbet-0.5.12357/lib")
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/sorbet-static-and-runtime-0.5.12357/lib")
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/thor-1.4.0/lib")
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/spoom-1.7.4/lib")
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/spoom-1.7.5/lib")
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/extensions/arm64-darwin-20/#{Gem.extension_api_version}/stackprof-0.2.27")
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/stackprof-0.2.27/lib")
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/yard-0.9.37/lib")

View File

@ -545,15 +545,15 @@ module T::Private::Methods
module MethodHooks
def method_added(name)
super(name)
::T::Private::Methods._on_method_added(self, self, name)
super(name)
end
end
module SingletonMethodHooks
def singleton_method_added(name)
super(name)
::T::Private::Methods._on_method_added(self, singleton_class, name)
super(name)
end
end

View File

@ -14,12 +14,28 @@ class T::Props::Decorator
DecoratedInstance = T.type_alias { Object } # Would be T::Props, but that produces circular reference errors in some circumstances
PropType = T.type_alias { T::Types::Base }
PropTypeOrClass = T.type_alias { T.any(PropType, Module) }
OverrideRules = T.type_alias { T::Hash[Symbol, {allow_incompatible: T::Boolean}] }
class NoRulesError < StandardError; end
EMPTY_PROPS = T.let({}.freeze, T::Hash[Symbol, Rules], checked: false)
private_constant :EMPTY_PROPS
OVERRIDE_TRUE = T.let({
reader: {allow_incompatible: false}.freeze,
writer: {allow_incompatible: false}.freeze,
}.freeze, OverrideRules)
OVERRIDE_READER = T.let({
reader: {allow_incompatible: false}.freeze,
}.freeze, OverrideRules)
OVERRIDE_WRITER = T.let({
writer: {allow_incompatible: false}.freeze,
}.freeze, OverrideRules)
OVERRIDE_EMPTY = T.let({}.freeze, OverrideRules)
sig { params(klass: T.untyped).void.checked(:never) }
def initialize(klass)
@class = T.let(klass, T.all(Module, T::Props::ClassMethods))
@ -45,17 +61,15 @@ class T::Props::Decorator
end
# checked(:never) - Rules hash is expensive to check
sig { params(prop: Symbol, rules: Rules).void.checked(:never) }
def add_prop_definition(prop, rules)
sig { params(name: Symbol, rules: Rules).void.checked(:never) }
def add_prop_definition(name, rules)
override = rules.delete(:override)
if props.include?(prop) && !override
raise ArgumentError.new("Attempted to redefine prop #{prop.inspect} on class #{@class} that's already defined without specifying :override => true: #{prop_rules(prop)}")
elsif !props.include?(prop) && override
raise ArgumentError.new("Attempted to override a prop #{prop.inspect} on class #{@class} that doesn't already exist")
if props.include?(name) && !override
raise ArgumentError.new("Attempted to redefine prop #{name.inspect} on class #{@class} that's already defined without specifying :override => true: #{prop_rules(name)}")
end
@props = @props.merge(prop => rules.freeze).freeze
@props = @props.merge(name => rules.freeze).freeze
end
# Heads up!
@ -302,6 +316,27 @@ class T::Props::Decorator
T::Utils::Nilable.is_union_with_nilclass(cls) || ((cls == T.untyped || cls == NilClass) && rules.key?(:default) && rules[:default].nil?)
end
sig(:final) { params(name: Symbol).returns(T::Boolean).checked(:never) }
private def method_defined_on_ancestor?(name)
@class.method_defined?(name) && !@class.method_defined?(name, false)
end
sig(:final) { params(name: Symbol, rules: Rules).void.checked(:never) }
private def validate_overrides(name, rules)
override = elaborate_override(name, rules[:override])
return if rules[:without_accessors]
if override[:reader] && !method_defined_on_ancestor?(name) && !props.include?(name)
raise ArgumentError.new("You marked the getter for prop #{name.inspect} as `override`, but the method `#{name}` doesn't exist to be overridden.")
end
# Properly, we should also check whether `props[name]` is immutable, but the old code didn't either.
if !rules[:immutable] && override[:writer] && !method_defined_on_ancestor?("#{name}=".to_sym) && !props.include?(name)
raise ArgumentError.new("You marked the setter for prop #{name.inspect} as `override`, but the method `#{name}=` doesn't exist to be overridden.")
end
end
# checked(:never) - Rules hash is expensive to check
sig do
params(
@ -381,6 +416,7 @@ class T::Props::Decorator
rules[:setter_proc] = setter_proc
rules[:value_validate_proc] = value_validate_proc
validate_overrides(name, rules)
add_prop_definition(name, rules)
# NB: using `without_accessors` doesn't make much sense unless you also define some other way to
@ -405,6 +441,7 @@ class T::Props::Decorator
# Fast path (~4x faster as of Ruby 2.6)
@class.send(:define_method, "#{name}=", &rules.fetch(:setter_proc))
end
end
if method(:prop_get).owner != T::Props::Decorator || rules.key?(:ifunset)
@ -627,7 +664,7 @@ class T::Props::Decorator
props.each do |name, rules|
copied_rules = rules.dup
# NB: Calling `child.decorator` here is a timb bomb that's going to give someone a really bad
# NB: Calling `child.decorator` here is a time bomb that's going to give someone a really bad
# time. Any class that defines props and also overrides the `decorator_class` method is going
# to reach this line before its override take effect, turning it into a no-op.
child.decorator.add_prop_definition(name, copied_rules)
@ -656,6 +693,52 @@ class T::Props::Decorator
end
end
sig(:final) do
params(key: Symbol, d: T.untyped, out: T::Hash[Symbol, {allow_incompatible: T::Boolean}])
.void
.checked(:never)
end
private def elaborate_override_entry(key, d, out)
# It's written this way so that `{reader: false}` will omit the entry for `reader` in the
# result entirely
case d[key]
when TrueClass
out[key] = {allow_incompatible: false}
when Hash
out[key] = {allow_incompatible: !!d[key][:allow_incompatible]}
end
end
sig(:final) do
params(name: Symbol, d: T.untyped)
.returns(T::Hash[Symbol, {allow_incompatible: T::Boolean}])
.checked(:never)
end
private def elaborate_override(name, d)
return OVERRIDE_TRUE if d == true
return OVERRIDE_READER if d == :reader
return OVERRIDE_WRITER if d == :writer
return OVERRIDE_EMPTY if d == false || d.nil?
unless d.is_a?(Hash)
raise ArgumentError.new("`override` only accepts `true`, `:reader`, `:writer`, or a Hash in prop #{@class.name}.#{name} (got #{d.class})")
end
# cwong: should we check for bad keys? `sig { override(not_real: true) }` on a normal function
# errors statically but not at runtime.
# XX cwong: this means {reader: false, allow_incompatible: true} will become {allow_incompatible: true},
# is that fine?
unless (allow_incompatible = d[:allow_incompatible]).nil?
return {reader: {allow_incompatible: !!allow_incompatible},
writer: {allow_incompatible: !!allow_incompatible}}.to_h
end
result = {}
elaborate_override_entry(:reader, d, result)
elaborate_override_entry(:writer, d, result)
result
end
sig { params(child: T.all(Module, T::Props::ClassMethods), prop: Symbol).returns(T::Boolean).checked(:never) }
private def clobber_getter?(child, prop)
!!(child.decorator.method(:prop_get).owner != method(:prop_get).owner &&