sorbet-runtime 0.4.4432 → 0.4.4433

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6744804eae6b958101222c2aae22da2d28359ac1
4
- data.tar.gz: a894a131db846cfadd6c9f8af031aea16797a26f
3
+ metadata.gz: 806ef6364f091901907ddc865da6bd63decebb6f
4
+ data.tar.gz: e0d3d1f61afacc778ad00ee195b5c46375690f62
5
5
  SHA512:
6
- metadata.gz: 21e1fdff93dd91f81c96214eec01b67764cf7789b7543e83095e0534376cb22dd049ad8e87f6362b0482886d063c50a06193779c7f78be0e7a7e7161215fbf05
7
- data.tar.gz: 6447af620de974c90e6410644f8ba2e1adbdaef113e2f0bebc42c90ea8ede2f8528f0de33219b5a80c1cdd3cf4d6142a2498b76d352829a1085d3d05f019eac1
6
+ metadata.gz: 8329ace77948ad758ce392d51b9d0103039d4a2a5d73b302e904542410e27f796c6cf16f596e1373d8c6c1048a44333a13a5157fe36d59f4a763b06460db7f6a
7
+ data.tar.gz: 2cc760a30cdd7b2218c2ce61f6e8a6e174ea60274881e1e22db16329c2a6537a8cfb41ca469283c0a3a6fffcd3c2082252e068bbe7d24cc664ea606d3171f972
@@ -333,6 +333,26 @@ module T::Configuration
333
333
  @scalar_types || @default_scalar_types
334
334
  end
335
335
 
336
+ # Temporarily disable ruby warnings while executing the given block. This is
337
+ # useful when doing something that would normally cause a warning to be
338
+ # emitted in Ruby verbose mode ($VERBOSE = true).
339
+ #
340
+ # @yield
341
+ #
342
+ def self.without_ruby_warnings
343
+ if $VERBOSE
344
+ begin
345
+ original_verbose = $VERBOSE
346
+ $VERBOSE = false
347
+ yield
348
+ ensure
349
+ $VERBOSE = original_verbose
350
+ end
351
+ else
352
+ yield
353
+ end
354
+ end
355
+
336
356
 
337
357
  private_class_method def self.validate_lambda_given!(value)
338
358
  if !value.nil? && !value.respond_to?(:call)
@@ -28,6 +28,9 @@ module T::Private::Abstract::Declare
28
28
  raise "You must call `abstract!` *before* defining an initialize method"
29
29
  end
30
30
 
31
+ # Don't need to silence warnings via without_ruby_warnings when calling
32
+ # define_method because of the guard above
33
+
31
34
  mod.send(:define_method, :initialize) do |*args, &blk|
32
35
  if self.class == mod
33
36
  raise "#{mod} is declared as abstract; it cannot be instantiated"
@@ -32,7 +32,9 @@ module T::Private::ClassUtils
32
32
 
33
33
  if @overwritten
34
34
  # The original method was overwritten. Overwrite again to restore it.
35
- @mod.send(:define_method, @old_method.name, @old_method) # rubocop:disable PrisonGuard/UsePublicSend
35
+ T::Configuration.without_ruby_warnings do
36
+ @mod.send(:define_method, @old_method.name, @old_method) # rubocop:disable PrisonGuard/UsePublicSend
37
+ end
36
38
  else
37
39
  # The original method was in an ancestor. Restore it by removing the overriding method.
38
40
  @mod.send(:remove_method, @old_method.name) # rubocop:disable PrisonGuard/UsePublicSend
@@ -93,8 +95,10 @@ module T::Private::ClassUtils
93
95
  end
94
96
 
95
97
  overwritten = original_owner == mod
96
- mod.send(:define_method, name, &blk) # rubocop:disable PrisonGuard/UsePublicSend
97
- mod.send(original_visibility, name) # rubocop:disable PrisonGuard/UsePublicSend
98
+ T::Configuration.without_ruby_warnings do
99
+ mod.send(:define_method, name, &blk) # rubocop:disable PrisonGuard/UsePublicSend
100
+ mod.send(original_visibility, name) # rubocop:disable PrisonGuard/UsePublicSend
101
+ end
98
102
  new_method = mod.instance_method(name)
99
103
 
100
104
  ReplacedMethod.new(mod, original_method, new_method, overwritten, original_visibility)
@@ -35,9 +35,11 @@ module T::Private::Methods::CallValidation
35
35
  elsif method_sig.check_level == :always || (method_sig.check_level == :tests && T::Private::RuntimeLevels.check_tests?)
36
36
  create_validator_method(mod, original_method, method_sig, original_visibility)
37
37
  else
38
- # get all the shims out of the way and put back the original method
39
- mod.send(:define_method, method_sig.method_name, original_method)
40
- mod.send(original_visibility, method_sig.method_name)
38
+ T::Configuration.without_ruby_warnings do
39
+ # get all the shims out of the way and put back the original method
40
+ mod.send(:define_method, method_sig.method_name, original_method)
41
+ mod.send(original_visibility, method_sig.method_name)
42
+ end
41
43
  end
42
44
  # Return the newly created method (or the original one if we didn't replace it)
43
45
  mod.instance_method(method_sig.method_name)
@@ -167,12 +169,14 @@ module T::Private::Methods::CallValidation
167
169
  has_simple_method_types = all_args_are_simple && method_sig.return_type.is_a?(T::Types::Simple)
168
170
  has_simple_procedure_types = all_args_are_simple && method_sig.return_type.is_a?(T::Private::Types::Void)
169
171
 
170
- if has_fixed_arity && has_simple_method_types && method_sig.arg_types.length < 5 && is_allowed_to_have_fast_path
171
- create_validator_method_fast(mod, original_method, method_sig)
172
- elsif has_fixed_arity && has_simple_procedure_types && method_sig.arg_types.length < 5 && is_allowed_to_have_fast_path
173
- create_validator_procedure_fast(mod, original_method, method_sig)
174
- else
175
- create_validator_slow(mod, original_method, method_sig)
172
+ T::Configuration.without_ruby_warnings do
173
+ if has_fixed_arity && has_simple_method_types && method_sig.arg_types.length < 5 && is_allowed_to_have_fast_path
174
+ create_validator_method_fast(mod, original_method, method_sig)
175
+ elsif has_fixed_arity && has_simple_procedure_types && method_sig.arg_types.length < 5 && is_allowed_to_have_fast_path
176
+ create_validator_procedure_fast(mod, original_method, method_sig)
177
+ else
178
+ create_validator_slow(mod, original_method, method_sig)
179
+ end
176
180
  end
177
181
  mod.send(original_visibility, method_sig.method_name)
178
182
  end
@@ -485,18 +485,20 @@ class T::Props::Decorator
485
485
 
486
486
  sig {params(name: Symbol, rules: Rules).void}
487
487
  private def define_getter_and_setter(name, rules)
488
- if rules[:immutable]
489
- @class.send(:define_method, "#{name}=") do |_x|
490
- raise T::Props::ImmutableProp.new("#{self.class}##{name} cannot be modified after creation.")
491
- end
492
- else
493
- @class.send(:define_method, "#{name}=") do |x|
494
- self.class.decorator.prop_set(self, name, x, rules)
488
+ T::Configuration.without_ruby_warnings do
489
+ if rules[:immutable]
490
+ @class.send(:define_method, "#{name}=") do |_x|
491
+ raise T::Props::ImmutableProp.new("#{self.class}##{name} cannot be modified after creation.")
492
+ end
493
+ else
494
+ @class.send(:define_method, "#{name}=") do |x|
495
+ self.class.decorator.prop_set(self, name, x, rules)
496
+ end
495
497
  end
496
- end
497
498
 
498
- @class.send(:define_method, name) do
499
- self.class.decorator.prop_get(self, name, rules)
499
+ @class.send(:define_method, name) do
500
+ self.class.decorator.prop_get(self, name, rules)
501
+ end
500
502
  end
501
503
  end
502
504
 
data/lib/types/sig.rb CHANGED
@@ -9,10 +9,15 @@ module T::Sig
9
9
  # as T::Sig#sig. Only use it in cases where you can't use T::Sig#sig.
10
10
  def self.sig(&blk); end # rubocop:disable PrisonGuard/BanBuiltinMethodOverride
11
11
 
12
+ original_verbose = $VERBOSE
13
+ $VERBOSE = false
14
+
12
15
  # At runtime, does nothing, but statically it is treated exactly the same
13
16
  # as T::Sig#sig. Only use it in cases where you can't use T::Sig#sig.
14
17
  T::Sig::WithoutRuntime.sig {params(blk: T.proc.bind(T::Private::Methods::DeclBuilder).void).void}
15
18
  def self.sig(&blk); end # rubocop:disable PrisonGuard/BanBuiltinMethodOverride, Lint/DuplicateMethods
19
+
20
+ $VERBOSE = original_verbose
16
21
  end
17
22
 
18
23
  # Declares a method with type signatures and/or
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sorbet-runtime
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.4432
4
+ version: 0.4.4433
5
5
  platform: ruby
6
6
  authors:
7
7
  - Stripe