sorbet-runtime 0.5.9542 → 0.5.9553
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/types/props/decorator.rb +19 -1
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: c1b6f18726c84faa9de3b53ad9df01ae5d2ae62dd78d93387bc11c262c4d6570
|
|
4
|
+
data.tar.gz: 66f4b1d50ff078127761f03a3f7a8d1e6eeb1c9c5ea5849e1898fe0b72a0037a
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 18e67fbebd61d4f0db1c2337fe6802a55163ebb42f5041de1f7ee1ccc4d841d659b875a1593c32b3674ede6a3f1def09ad3b436c55b2381a1d65856814a04197
|
|
7
|
+
data.tar.gz: e9c66da71668aa973a740bf8af8a5c2bc8ba1e098ecb36e76d460e8c8041cf7b855b5b130609e33c7116e600c1c83d5cf2a0cc4ea5da5416a0fe9fdd0b40de3d
|
|
@@ -277,6 +277,24 @@ class T::Props::Decorator
|
|
|
277
277
|
end
|
|
278
278
|
end
|
|
279
279
|
|
|
280
|
+
# Returns `true` when the type of the prop is nilable, or the field is typed
|
|
281
|
+
# as `T.untyped`, a `:default` is present in the rules hash, and its value is
|
|
282
|
+
# `nil`. The latter case is a workaround for explicitly not supporting the use
|
|
283
|
+
# of `T.nilable(T.untyped)`.
|
|
284
|
+
#
|
|
285
|
+
# checked(:never) - Rules hash is expensive to check
|
|
286
|
+
sig do
|
|
287
|
+
params(
|
|
288
|
+
cls: PropTypeOrClass,
|
|
289
|
+
rules: Rules,
|
|
290
|
+
)
|
|
291
|
+
.void
|
|
292
|
+
.checked(:never)
|
|
293
|
+
end
|
|
294
|
+
private def prop_nilable?(cls, rules)
|
|
295
|
+
T::Utils::Nilable.is_union_with_nilclass(cls) || (cls == T.untyped && rules.key?(:default) && rules[:default].nil?)
|
|
296
|
+
end
|
|
297
|
+
|
|
280
298
|
# checked(:never) - Rules hash is expensive to check
|
|
281
299
|
sig do
|
|
282
300
|
params(
|
|
@@ -290,7 +308,7 @@ class T::Props::Decorator
|
|
|
290
308
|
def prop_defined(name, cls, rules={})
|
|
291
309
|
cls = T::Utils.resolve_alias(cls)
|
|
292
310
|
|
|
293
|
-
if
|
|
311
|
+
if prop_nilable?(cls, rules)
|
|
294
312
|
# :_tnilable is introduced internally for performance purpose so that clients do not need to call
|
|
295
313
|
# T::Utils::Nilable.is_tnilable(cls) again.
|
|
296
314
|
# It is strictly internal: clients should always use T::Props::Utils.required_prop?() or
|
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.5.
|
|
4
|
+
version: 0.5.9553
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Stripe
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2022-01-
|
|
11
|
+
date: 2022-01-25 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: minitest
|