sorbet-runtime 0.5.9818 → 0.5.9851

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: bf831162d6c98d19f1d5b53e08c37a74a2687022c8228a85ea7461cd42abd5ca
4
- data.tar.gz: 6ffce1bcc22581c6a6da04b70aebce695381c621d1a565ba3104fceba4ed572b
3
+ metadata.gz: d5bb209171fe9f62448395495960f197705f0ca4e629c04600ca1feb41814282
4
+ data.tar.gz: a28c1b716c33294028907827445a4c5c42100c77e408ae4acdb0d26b73fe39b0
5
5
  SHA512:
6
- metadata.gz: ee46a7e96776cfa3a6cc43c6d1f9021e93b581279755fb64ba577838d6cbe9d6b79d6ec97e0b34530e33c8f49be774678d12b03ee34003c442a0a3e9560de8c4
7
- data.tar.gz: ae68ac285f4c19ff474ad7d7dd747b96c8b3b5368571f9a6573107c4895515f90c0641f5e76c4b60234bd542007b510189b6e6bf7ab8f815baf85a88b132f1d3
6
+ metadata.gz: 25f91e6835ee70376421259f918dfe9ba2f633865f92c3474afe7e5de4e01fe3e886253e73b4ca85687d2dcee9517705df308c1819c039aa800f5bcd0a73012e
7
+ data.tar.gz: 8575393589c6463c94d3bc2f7614554b142ed3d941dafe444b0690e8aaeece8d6433d88fb21ac9aff6c5f307b452481db9c72524781679aff5d31097ce7dbc8c
@@ -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.9818
4
+ version: 0.5.9851
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-31 00:00:00.000000000 Z
11
+ date: 2022-04-05 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