sorbet-runtime 0.4.4355 → 0.4.4356

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: c20d0628aa85a684b88e4737a8e717fe91a7f15d
4
- data.tar.gz: a5af90068a95344d3beeac78c6ad8d3ba334ad88
3
+ metadata.gz: f53453a8bb9889d7255ac1fce598d398e42999f1
4
+ data.tar.gz: 91640395de6736f36d8b75e83dabf103ad1c5096
5
5
  SHA512:
6
- metadata.gz: 85dd318b56ab855f315742cbd5e3ea380990aa6a377be7d6fee40f0ac7fa5ac8f388abfb51fa0b2aea8af0c89c7df15857983bd3c799f281ccf7b20557832c4b
7
- data.tar.gz: 3f8f068484b137a255cf122a5e94c36799410d4207f352e6ba881d7cd1d58b9f11d2f7b52a6f32cee52fa41cd69c40d2fa60f0cec75c538582c01e39e5a476d0
6
+ metadata.gz: a13c99bed5334298bc15ba453c957e5d6c2622510612c5f95455b2b16f131cec338bc2eb63914ee6dfbaa1e2cf9801da0043be134c673b1e9eecb19db277aa91
7
+ data.tar.gz: 867411d64dbf0e23bc81a6fb453ad954711d9545441f5c301af516f4df034a3923e0006b535c3dda0d3116cd5cd1bb05adf58958e35185dc7cad4c2d99ffb217
@@ -17,6 +17,19 @@ module T::Configuration
17
17
  T::Private::RuntimeLevels.enable_checking_in_tests
18
18
  end
19
19
 
20
+ # Configure the default checked level for a sig with no explicit `.checked`
21
+ # builder. When unset, the default checked level is `:always`.
22
+ #
23
+ # Note: setting this option is potentially dangerous! Sorbet can't check all
24
+ # code statically. The runtime checks complement the checks that Sorbet does
25
+ # statically, so that methods don't have to guard themselves from being
26
+ # called incorrectly by untyped code.
27
+ #
28
+ # @param [:never, :tests, :always] default_checked_level
29
+ def self.default_checked_level=(default_checked_level)
30
+ T::Private::RuntimeLevels.default_checked_level = default_checked_level
31
+ end
32
+
20
33
  # Set a handler to handle `TypeError`s raised by any in-line type assertions,
21
34
  # including `T.must`, `T.let`, `T.cast`, and `T.assert_type!`.
22
35
  #
@@ -249,7 +249,7 @@ module T::Private::Methods
249
249
  decl.bind = nil
250
250
  end
251
251
  if decl.checked.equal?(ARG_NOT_PROVIDED)
252
- decl.checked = :always
252
+ decl.checked = T::Private::RuntimeLevels.default_checked_level
253
253
  end
254
254
  if decl.soft_notify.equal?(ARG_NOT_PROVIDED)
255
255
  decl.soft_notify = nil
@@ -17,6 +17,9 @@ module T::Private::RuntimeLevels
17
17
  @check_tests = false
18
18
  @wrapped_tests_with_validation = false
19
19
 
20
+ @has_read_default_checked_level = false
21
+ @default_checked_level = :always
22
+
20
23
  def self.check_tests?
21
24
  # Assume that this code path means that some `sig.checked(:tests)`
22
25
  # has been wrapped (or not wrapped) already, which is a trapdoor
@@ -35,6 +38,18 @@ module T::Private::RuntimeLevels
35
38
  _toggle_checking_tests(true)
36
39
  end
37
40
 
41
+ def self.default_checked_level
42
+ @has_read_default_checked_level = true
43
+ @default_checked_level
44
+ end
45
+
46
+ def self.default_checked_level=(default_checked_level)
47
+ if @has_read_default_checked_level
48
+ raise "Set the default checked level earlier. There are already some methods whose sig blocks have evaluated which would not be affected by the new default."
49
+ end
50
+ @default_checked_level = default_checked_level
51
+ end
52
+
38
53
  def self._toggle_checking_tests(checked)
39
54
  @check_tests = checked
40
55
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sorbet-runtime
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.4355
4
+ version: 0.4.4356
5
5
  platform: ruby
6
6
  authors:
7
7
  - Stripe
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-06-28 00:00:00.000000000 Z
11
+ date: 2019-06-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: minitest