sorbet-runtime 0.5.9807 → 0.5.9837

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: a651f66cb1753f5ab6baa5c8cac536e68f2ba9f6ade43dc15d07e7ec2dd020cb
4
- data.tar.gz: eff196864132917898e3745e0de01789fd669d4a2a790e44cfb57a8029957e15
3
+ metadata.gz: dc69d4350235a5989031adfc1ed393b3e0212d20697327520ede8b36444aebee
4
+ data.tar.gz: 3e93d339c008466e5c45536803fe05da0cbfcb6035ee42ab32de90b3ccabf30d
5
5
  SHA512:
6
- metadata.gz: a68c58a227c1681d26c913c95d5dd5e67cb79fe89bd371e723bb87f59619c4195b7c54b814ac3349fda0da29ff4b1a67d783544b96137ba54709d737d950ce10
7
- data.tar.gz: 111cb77a5920020b021421c63ce834ea073b34d7d40f1fa923bbd70c01736331e09efb4a13e6fc90454decf080f1596802ac0d0a4c2c0f8332d91668ea32d4b7
6
+ metadata.gz: 04056f6df343f01dbe6fc7d7db3beb7b77b07d2363af56e7e9627df6f3aad1038cbfd9b37f8a84416fd8a34e14c1b0a333b6d45c0b604a9aa7261987cbc009de
7
+ data.tar.gz: 887620f027745f04ea82e1756d2305575c3b6937a72f3e095aa506a9c1a72b057d3ff64f29c237d99538159b3063362ff81cc52d439b03077d65801f592b481f
@@ -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
@@ -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.9807
4
+ version: 0.5.9837
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-30 00:00:00.000000000 Z
11
+ date: 2022-04-02 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