sorbet-runtime 0.5.6403 → 0.5.6415
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/configuration.rb +10 -0
- data/lib/types/types/simple.rb +18 -3
- data/lib/types/types/union.rb +2 -2
- data/lib/types/utils.rb +0 -12
- 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: a2b0af998331ace72c37ec13afd9f4d95e52236ac1e7154f7f375db6bfe37b7f
|
4
|
+
data.tar.gz: e91cde474b0cd16cba07dbab3df0ea9b362b443347344d4df7c9191128e319a9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2000b036974c7bb5c5807f8d7cde86899136d5cd0dec02300c26a7f5c95f12598a9b921724dd35a7ba44f8be6801593f2d43a7713db0666d0b88225a3d2b3549
|
7
|
+
data.tar.gz: 334f74ac7bb639f04e10299289f6445bf875be7548f9a4ab1eaa05ff1b35313655686572eec3f013206e04049b9b5bf9bed33770b65714a41115f30c2e1b0bfd
|
data/lib/types/configuration.rb
CHANGED
@@ -73,6 +73,13 @@ module T::Configuration
|
|
73
73
|
@include_value_in_type_errors = true
|
74
74
|
end
|
75
75
|
|
76
|
+
# Whether VM-defined prop serialization/deserialization routines can be enabled.
|
77
|
+
#
|
78
|
+
# @return [T::Boolean]
|
79
|
+
def self.can_enable_vm_prop_serde?
|
80
|
+
T::Props::Private::DeserializerGenerator.respond_to?(:generate2)
|
81
|
+
end
|
82
|
+
|
76
83
|
# Whether to use VM-defined prop serialization/deserialization routines.
|
77
84
|
#
|
78
85
|
# The default is to use runtime codegen inside sorbet-runtime itself.
|
@@ -86,6 +93,9 @@ module T::Configuration
|
|
86
93
|
#
|
87
94
|
# This method is likely to break things outside of Stripe's systems.
|
88
95
|
def self.enable_vm_prop_serde
|
96
|
+
if !can_enable_vm_prop_serde?
|
97
|
+
hard_assert_handler('Ruby VM is not setup to use VM-defined prop serde')
|
98
|
+
end
|
89
99
|
@use_vm_prop_serde = true
|
90
100
|
end
|
91
101
|
|
data/lib/types/types/simple.rb
CHANGED
@@ -41,11 +41,26 @@ module T::Types
|
|
41
41
|
module Private
|
42
42
|
module Pool
|
43
43
|
def self.type_for_module(mod)
|
44
|
-
cached = mod.instance_variable_get(:@
|
44
|
+
cached = mod.instance_variable_get(:@__as_sorbet_type)
|
45
45
|
return cached if cached
|
46
46
|
|
47
|
-
type =
|
48
|
-
|
47
|
+
type = if mod == ::Array
|
48
|
+
T::Array[T.untyped]
|
49
|
+
elsif mod == ::Set
|
50
|
+
T::Set[T.untyped]
|
51
|
+
elsif mod == ::Hash
|
52
|
+
T::Hash[T.untyped, T.untyped]
|
53
|
+
elsif mod == ::Enumerable
|
54
|
+
T::Enumerable[T.untyped]
|
55
|
+
elsif mod == ::Enumerator
|
56
|
+
T::Enumerator[T.untyped]
|
57
|
+
elsif mod == ::Range
|
58
|
+
T::Range[T.untyped]
|
59
|
+
else
|
60
|
+
Simple.new(mod)
|
61
|
+
end
|
62
|
+
|
63
|
+
mod.instance_variable_set(:@__as_sorbet_type, type) unless mod.frozen?
|
49
64
|
type
|
50
65
|
end
|
51
66
|
end
|
data/lib/types/types/union.rb
CHANGED
@@ -8,12 +8,12 @@ module T::Types
|
|
8
8
|
|
9
9
|
def initialize(types)
|
10
10
|
@types = types.flat_map do |type|
|
11
|
-
type = T::Utils.
|
11
|
+
type = T::Utils.coerce(type)
|
12
12
|
if type.is_a?(Union)
|
13
13
|
# Simplify nested unions (mostly so `name` returns a nicer value)
|
14
14
|
type.types
|
15
15
|
else
|
16
|
-
|
16
|
+
type
|
17
17
|
end
|
18
18
|
end.uniq
|
19
19
|
end
|
data/lib/types/utils.rb
CHANGED
@@ -8,18 +8,6 @@ module T::Utils
|
|
8
8
|
val.aliased_type
|
9
9
|
elsif val.is_a?(T::Types::Base)
|
10
10
|
val
|
11
|
-
elsif val == ::Array
|
12
|
-
T::Array[T.untyped]
|
13
|
-
elsif val == ::Set
|
14
|
-
T::Set[T.untyped]
|
15
|
-
elsif val == ::Hash
|
16
|
-
T::Hash[T.untyped, T.untyped]
|
17
|
-
elsif val == ::Enumerable
|
18
|
-
T::Enumerable[T.untyped]
|
19
|
-
elsif val == ::Enumerator
|
20
|
-
T::Enumerator[T.untyped]
|
21
|
-
elsif val == ::Range
|
22
|
-
T::Range[T.untyped]
|
23
11
|
elsif val.is_a?(Module)
|
24
12
|
T::Types::Simple::Private::Pool.type_for_module(val)
|
25
13
|
elsif val.is_a?(::Array)
|
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.6415
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Stripe
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-05-
|
11
|
+
date: 2021-05-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: minitest
|