Merge pull request #17080 from Homebrew/dependabot/bundler/Library/Homebrew/multi-59c509f7da
This commit is contained in:
commit
17d5ab381b
@ -122,15 +122,15 @@ GEM
|
|||||||
simplecov_json_formatter (0.1.4)
|
simplecov_json_formatter (0.1.4)
|
||||||
simpleidn (0.2.1)
|
simpleidn (0.2.1)
|
||||||
unf (~> 0.1.4)
|
unf (~> 0.1.4)
|
||||||
sorbet (0.5.11340)
|
sorbet (0.5.11342)
|
||||||
sorbet-static (= 0.5.11340)
|
sorbet-static (= 0.5.11342)
|
||||||
sorbet-runtime (0.5.11340)
|
sorbet-runtime (0.5.11342)
|
||||||
sorbet-static (0.5.11340-aarch64-linux)
|
sorbet-static (0.5.11342-aarch64-linux)
|
||||||
sorbet-static (0.5.11340-universal-darwin)
|
sorbet-static (0.5.11342-universal-darwin)
|
||||||
sorbet-static (0.5.11340-x86_64-linux)
|
sorbet-static (0.5.11342-x86_64-linux)
|
||||||
sorbet-static-and-runtime (0.5.11340)
|
sorbet-static-and-runtime (0.5.11342)
|
||||||
sorbet (= 0.5.11340)
|
sorbet (= 0.5.11342)
|
||||||
sorbet-runtime (= 0.5.11340)
|
sorbet-runtime (= 0.5.11342)
|
||||||
spoom (1.3.0)
|
spoom (1.3.0)
|
||||||
erubi (>= 1.10.0)
|
erubi (>= 1.10.0)
|
||||||
prism (>= 0.19.0)
|
prism (>= 0.19.0)
|
||||||
|
@ -65,7 +65,7 @@ $:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version
|
|||||||
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/racc-1.7.3/lib")
|
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/racc-1.7.3/lib")
|
||||||
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/parser-3.3.0.5/lib")
|
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/parser-3.3.0.5/lib")
|
||||||
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/rainbow-3.1.1/lib")
|
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/rainbow-3.1.1/lib")
|
||||||
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/sorbet-runtime-0.5.11340/lib")
|
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/sorbet-runtime-0.5.11342/lib")
|
||||||
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/parlour-8.1.0/lib")
|
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/parlour-8.1.0/lib")
|
||||||
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/patchelf-1.5.0/lib")
|
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/patchelf-1.5.0/lib")
|
||||||
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/plist-3.7.1/lib")
|
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/plist-3.7.1/lib")
|
||||||
@ -100,9 +100,9 @@ $:.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_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-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/simplecov-cobertura-2.1.0/lib")
|
||||||
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/sorbet-static-0.5.11340-universal-darwin/lib")
|
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/sorbet-static-0.5.11342-universal-darwin/lib")
|
||||||
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/sorbet-0.5.11340/lib")
|
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/sorbet-0.5.11342/lib")
|
||||||
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/sorbet-static-and-runtime-0.5.11340/lib")
|
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/sorbet-static-and-runtime-0.5.11342/lib")
|
||||||
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/thor-1.3.1/lib")
|
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/thor-1.3.1/lib")
|
||||||
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/spoom-1.3.0/lib")
|
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/spoom-1.3.0/lib")
|
||||||
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/extensions/arm64-darwin-20/#{Gem.extension_api_version}/stackprof-0.2.26")
|
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/extensions/arm64-darwin-20/#{Gem.extension_api_version}/stackprof-0.2.26")
|
||||||
|
@ -536,6 +536,7 @@ module T::Configuration
|
|||||||
|
|
||||||
@legacy_t_enum_migration_mode = false
|
@legacy_t_enum_migration_mode = false
|
||||||
def self.enable_legacy_t_enum_migration_mode
|
def self.enable_legacy_t_enum_migration_mode
|
||||||
|
T::Enum.include(T::Enum::LegacyMigrationMode)
|
||||||
@legacy_t_enum_migration_mode = true
|
@legacy_t_enum_migration_mode = true
|
||||||
end
|
end
|
||||||
def self.disable_legacy_t_enum_migration_mode
|
def self.disable_legacy_t_enum_migration_mode
|
@ -185,79 +185,92 @@ class T::Enum
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
# NB: Do not call this method. This exists to allow for a safe migration path in places where enum
|
module LegacyMigrationMode
|
||||||
# values are compared directly against string values.
|
include Kernel
|
||||||
#
|
extend T::Helpers
|
||||||
# Ruby's string has a weird quirk where `'my_string' == obj` calls obj.==('my_string') if obj
|
abstract!
|
||||||
# responds to the `to_str` method. It does not actually call `to_str` however.
|
|
||||||
#
|
if T.unsafe(false)
|
||||||
# See https://ruby-doc.org/core-2.4.0/String.html#method-i-3D-3D
|
# Declare to the type system that the `serialize` method for sure exists
|
||||||
T::Sig::WithoutRuntime.sig {returns(String)}
|
# on whatever we mix this into.
|
||||||
def to_str
|
T::Sig::WithoutRuntime.sig {abstract.returns(T.untyped)}
|
||||||
msg = 'Implicit conversion of Enum instances to strings is not allowed. Call #serialize instead.'
|
def serialize; end
|
||||||
if T::Configuration.legacy_t_enum_migration_mode?
|
end
|
||||||
|
|
||||||
|
# NB: Do not call this method. This exists to allow for a safe migration path in places where enum
|
||||||
|
# values are compared directly against string values.
|
||||||
|
#
|
||||||
|
# Ruby's string has a weird quirk where `'my_string' == obj` calls obj.==('my_string') if obj
|
||||||
|
# responds to the `to_str` method. It does not actually call `to_str` however.
|
||||||
|
#
|
||||||
|
# See https://ruby-doc.org/core-2.4.0/String.html#method-i-3D-3D
|
||||||
|
T::Sig::WithoutRuntime.sig {returns(String)}
|
||||||
|
def to_str
|
||||||
|
msg = 'Implicit conversion of Enum instances to strings is not allowed. Call #serialize instead.'
|
||||||
|
if T::Configuration.legacy_t_enum_migration_mode?
|
||||||
|
T::Configuration.soft_assert_handler(
|
||||||
|
msg,
|
||||||
|
storytime: {
|
||||||
|
class: self.class.name,
|
||||||
|
caller_location: Kernel.caller_locations(1..1)&.[](0)&.then {"#{_1.path}:#{_1.lineno}"},
|
||||||
|
},
|
||||||
|
)
|
||||||
|
serialize.to_s
|
||||||
|
else
|
||||||
|
Kernel.raise NoMethodError.new(msg)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
# WithoutRuntime so that comparison_assertion_failed can assume a constant stack depth
|
||||||
|
T::Sig::WithoutRuntime.sig {params(other: BasicObject).returns(T::Boolean)}
|
||||||
|
def ==(other)
|
||||||
|
case other
|
||||||
|
when String
|
||||||
|
if T::Configuration.legacy_t_enum_migration_mode?
|
||||||
|
comparison_assertion_failed(:==, other)
|
||||||
|
self.serialize == other
|
||||||
|
else
|
||||||
|
false
|
||||||
|
end
|
||||||
|
else
|
||||||
|
super(other)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
# WithoutRuntime so that comparison_assertion_failed can assume a constant stack depth
|
||||||
|
T::Sig::WithoutRuntime.sig {params(other: BasicObject).returns(T::Boolean)}
|
||||||
|
def ===(other)
|
||||||
|
case other
|
||||||
|
when String
|
||||||
|
if T::Configuration.legacy_t_enum_migration_mode?
|
||||||
|
comparison_assertion_failed(:===, other)
|
||||||
|
self.serialize == other
|
||||||
|
else
|
||||||
|
false
|
||||||
|
end
|
||||||
|
else
|
||||||
|
super(other)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
# WithoutRuntime so that caller_locations can assume a constant stack depth
|
||||||
|
# (Otherwise, the first call would be the method with the wrapping, which would have a different stack depth.)
|
||||||
|
T::Sig::WithoutRuntime.sig {params(method: Symbol, other: T.untyped).void}
|
||||||
|
private def comparison_assertion_failed(method, other)
|
||||||
T::Configuration.soft_assert_handler(
|
T::Configuration.soft_assert_handler(
|
||||||
msg,
|
'Enum to string comparison not allowed. Compare to the Enum instance directly instead. See go/enum-migration',
|
||||||
storytime: {
|
storytime: {
|
||||||
class: self.class.name,
|
class: self.class.name,
|
||||||
caller_location: caller_locations(1..1)&.[](0)&.then {"#{_1.path}:#{_1.lineno}"},
|
self: self.inspect,
|
||||||
},
|
other: other,
|
||||||
|
other_class: other.class.name,
|
||||||
|
method: method,
|
||||||
|
caller_location: Kernel.caller_locations(2..2)&.[](0)&.then {"#{_1.path}:#{_1.lineno}"},
|
||||||
|
}
|
||||||
)
|
)
|
||||||
serialize.to_s
|
|
||||||
else
|
|
||||||
raise NoMethodError.new(msg)
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
# WithoutRuntime so that comparison_assertion_failed can assume a constant stack depth
|
|
||||||
T::Sig::WithoutRuntime.sig {params(other: BasicObject).returns(T::Boolean)}
|
|
||||||
def ==(other)
|
|
||||||
case other
|
|
||||||
when String
|
|
||||||
if T::Configuration.legacy_t_enum_migration_mode?
|
|
||||||
comparison_assertion_failed(:==, other)
|
|
||||||
self.serialize == other
|
|
||||||
else
|
|
||||||
false
|
|
||||||
end
|
|
||||||
else
|
|
||||||
super(other)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
# WithoutRuntime so that comparison_assertion_failed can assume a constant stack depth
|
|
||||||
T::Sig::WithoutRuntime.sig {params(other: BasicObject).returns(T::Boolean)}
|
|
||||||
def ===(other)
|
|
||||||
case other
|
|
||||||
when String
|
|
||||||
if T::Configuration.legacy_t_enum_migration_mode?
|
|
||||||
comparison_assertion_failed(:===, other)
|
|
||||||
self.serialize == other
|
|
||||||
else
|
|
||||||
false
|
|
||||||
end
|
|
||||||
else
|
|
||||||
super(other)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
# WithoutRuntime so that caller_locations can assume a constant stack depth
|
|
||||||
# (Otherwise, the first call would be the method with the wrapping, which would have a different stack depth.)
|
|
||||||
T::Sig::WithoutRuntime.sig {params(method: Symbol, other: T.untyped).void}
|
|
||||||
private def comparison_assertion_failed(method, other)
|
|
||||||
T::Configuration.soft_assert_handler(
|
|
||||||
'Enum to string comparison not allowed. Compare to the Enum instance directly instead. See go/enum-migration',
|
|
||||||
storytime: {
|
|
||||||
class: self.class.name,
|
|
||||||
self: self.inspect,
|
|
||||||
other: other,
|
|
||||||
other_class: other.class.name,
|
|
||||||
method: method,
|
|
||||||
caller_location: caller_locations(2..2)&.[](0)&.then {"#{_1.path}:#{_1.lineno}"},
|
|
||||||
}
|
|
||||||
)
|
|
||||||
end
|
|
||||||
|
|
||||||
### Private implementation ###
|
### Private implementation ###
|
||||||
|
|
||||||
sig {params(serialized_val: SerializedVal).void}
|
sig {params(serialized_val: SerializedVal).void}
|
Loading…
x
Reference in New Issue
Block a user