sorbet-runtime 0.5.9798 → 0.5.9827

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: 2cee0128ad0f039b2647a8bbf698a35d06ff35f50da121eb41c03cbaf7e17f14
4
- data.tar.gz: 79c5c32499a43dd654243cef7e0ab40a953c575b85a87de24222c9159afd6398
3
+ metadata.gz: 9f740868f3b5e872601f01934763bf10255d56d738d50334cfcf96b3a7583bf6
4
+ data.tar.gz: 90edadbf0782f42a9e2450894936e59be59c7ba19379d8a9000e79a90f34b2a6
5
5
  SHA512:
6
- metadata.gz: 4d19a8f90ff477a4e73b1e17efeb242cdd2dedac874de4408e6d0ed3db0b38ae75248f1170071d79c36a5a34236f99c3e1d837f9b69e7986431b3b5b1b148f97
7
- data.tar.gz: 7bfdde6a4a62362ab8102c4c69d32bbd267c1396cb5baeaea5802147e22d28662b35f888c55b41b90f0042bc67b73ff70308c5052b5d3d86c803d2ae68202242
6
+ metadata.gz: 8185e90e25e5ae3764443743f2180870d0f04f72d0aa2c6e18fabd679708446c1904579b0f7a424e51831e4e6af685622bcbc23c203e523771af6eb1f5057faa
7
+ data.tar.gz: 1509840bbbbee014740b3fe1029bdb3aea29446a9182adf9b8d7a2dbf63dfd6b9d6128f48870b7804093f4e443f64cb756048ce1b080b11a238ddec5671e5cd7
@@ -45,6 +45,7 @@ require_relative 'types/types/t_enum'
45
45
  require_relative 'types/types/type_parameter'
46
46
  require_relative 'types/types/typed_array'
47
47
  require_relative 'types/types/typed_enumerator'
48
+ require_relative 'types/types/typed_enumerator_lazy'
48
49
  require_relative 'types/types/typed_hash'
49
50
  require_relative 'types/types/typed_range'
50
51
  require_relative 'types/types/typed_set'
data/lib/types/_types.rb CHANGED
@@ -286,6 +286,16 @@ module T
286
286
  T::Types::TypedEnumerator.new(type)
287
287
  end
288
288
  end
289
+
290
+ module Lazy
291
+ def self.[](type)
292
+ if type.is_a?(T::Types::Untyped)
293
+ T::Types::TypedEnumeratorLazy::Untyped.new
294
+ else
295
+ T::Types::TypedEnumeratorLazy.new(type)
296
+ end
297
+ end
298
+ end
289
299
  end
290
300
 
291
301
  module Range
@@ -324,9 +324,9 @@ module T::Props::Serializable::DecoratorMethods
324
324
 
325
325
  def extra_props(instance)
326
326
  if instance.instance_variable_defined?(:@_extra_props)
327
- instance.instance_variable_get(:@_extra_props)
327
+ instance.instance_variable_get(:@_extra_props) || EMPTY_EXTRA_PROPS
328
328
  else
329
- instance.instance_variable_set(:@_extra_props, EMPTY_EXTRA_PROPS)
329
+ EMPTY_EXTRA_PROPS
330
330
  end
331
331
  end
332
332
 
@@ -51,6 +51,9 @@ module T::Types
51
51
  return false if !key_type.recursively_valid?(key) || !value_type.recursively_valid?(val)
52
52
  end
53
53
  true
54
+ when Enumerator::Lazy
55
+ # Enumerators can be unbounded: see `[:foo, :bar].cycle`
56
+ true
54
57
  when Enumerator
55
58
  # Enumerators can be unbounded: see `[:foo, :bar].cycle`
56
59
  true
@@ -140,6 +143,8 @@ module T::Types
140
143
  else
141
144
  T::Range[type_from_instances(typeable_objects)]
142
145
  end
146
+ when Enumerator::Lazy
147
+ T::Enumerator::Lazy[type_from_instances(obj)]
143
148
  when Enumerator
144
149
  T::Enumerator[type_from_instances(obj)]
145
150
  when Set
@@ -0,0 +1,41 @@
1
+ # frozen_string_literal: true
2
+ # typed: true
3
+
4
+ module T::Types
5
+ class TypedEnumeratorLazy < TypedEnumerable
6
+ attr_reader :type
7
+
8
+ def underlying_class
9
+ Enumerator::Lazy
10
+ end
11
+
12
+ # overrides Base
13
+ def name
14
+ "T::Enumerator::Lazy[#{@type.name}]"
15
+ end
16
+
17
+ # overrides Base
18
+ def recursively_valid?(obj)
19
+ obj.is_a?(Enumerator::Lazy) && super
20
+ end
21
+
22
+ # overrides Base
23
+ def valid?(obj)
24
+ obj.is_a?(Enumerator::Lazy)
25
+ end
26
+
27
+ def new(*args, &blk)
28
+ T.unsafe(Enumerator::Lazy).new(*args, &blk)
29
+ end
30
+
31
+ class Untyped < TypedEnumeratorLazy
32
+ def initialize
33
+ super(T.untyped)
34
+ end
35
+
36
+ def valid?(obj)
37
+ obj.is_a?(Enumerator::Lazy)
38
+ end
39
+ end
40
+ end
41
+ 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.5.9798
4
+ version: 0.5.9827
5
5
  platform: ruby
6
6
  authors:
7
7
  - Stripe
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-03-29 00:00:00.000000000 Z
11
+ date: 2022-04-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: minitest
@@ -233,6 +233,7 @@ files:
233
233
  - lib/types/types/typed_array.rb
234
234
  - lib/types/types/typed_enumerable.rb
235
235
  - lib/types/types/typed_enumerator.rb
236
+ - lib/types/types/typed_enumerator_lazy.rb
236
237
  - lib/types/types/typed_hash.rb
237
238
  - lib/types/types/typed_range.rb
238
239
  - lib/types/types/typed_set.rb