sorbet-runtime 0.5.6401 → 0.5.6412

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
  SHA256:
3
- metadata.gz: 3baf5e6dbee3cab2198e345e42c1875e2336646b30a189992a9c2e3e129ca53b
4
- data.tar.gz: c6a0eca3846188cc89e8ec44474907b27cb29fa6281fd2a93719e488a776697b
3
+ metadata.gz: b6cc7193592a0c4f40642b63c04e258fe0703b27522ab2d12fc9f28d21a1216f
4
+ data.tar.gz: 304cba770dcbea50f978c1cd2020561e0a8e69d3c860d42e6cfe706b7e582cf2
5
5
  SHA512:
6
- metadata.gz: 7250061e134ee0d2ae8ccf0162610491853702164a02698962c09ba13246bc2aa779d676e95090e21338a0be22a159245d53414f95bd9186a096131736c1d7ba
7
- data.tar.gz: 1a26c625cbd6f7a3621c6d1a715182ca7b487485aa822de10f5f32d659ce4b743bb44ce14ae0596a9e788c68398f9ac36ab2bb3445b88c5f670912708fd76b17
6
+ metadata.gz: 1968cfc217f9a96e3c9cd72c93a586ffe5b1151b26640ce38579bb44efff504682c1de4ba845a83446c0be21c4b929b8e6755c057372803443e285c662c791cb
7
+ data.tar.gz: 6badc2dc4f2aab45c57f9eb7fdb7a43e091ae71a099ce5e5bf3576e289a424dda2ceb81e64f90e52eeaec5d92e8b141397df085517a5670ed105804bc6ea5fbd
@@ -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
 
@@ -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(:@__as_sorbet_simple_type)
44
+ cached = mod.instance_variable_get(:@__as_sorbet_type)
45
45
  return cached if cached
46
46
 
47
- type = Simple.new(mod)
48
- mod.instance_variable_set(:@__as_sorbet_simple_type, type) unless mod.frozen?
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
@@ -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.resolve_alias(type)
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
- T::Utils.coerce(type)
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.6401
4
+ version: 0.5.6412
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-06 00:00:00.000000000 Z
11
+ date: 2021-05-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: minitest