sorbet-runtime 0.5.10667 → 0.5.10676

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: 997ac6053599176a3816f0b57c3e082cb152fa25bad8999f92ebc9dfddf51e07
4
- data.tar.gz: ec6f718036f9707a5b3c8d5c8b0dd26e11171be416b9e4617110d360ec641868
3
+ metadata.gz: 7af4dd278e99d924889ddfc3e61d864a109755a805bd516a0ec94b9af59226fd
4
+ data.tar.gz: f09610bc852ac70b0fed6e6934b63c981aec7302e78cc1ae918c09018de6d062
5
5
  SHA512:
6
- metadata.gz: d0685e05e3fd9d297d19f86a2e3488f5db55b5384b120cb2e2dee7129cdd0bfad9f55a125da7ca0b31e75ed03efb53dbc35e039944ab9bfb3d3013a76adc50b0
7
- data.tar.gz: 7be6241bc4274f0c7f8ca6b9aac81240a321f071623a5844929c6580a11e9d62c34e60f33de8589cb5fa1d8f57229debcf12fa7b8532fcac48499126983469bd
6
+ metadata.gz: 6c3b30eeaa8b157178a64a1c479e372e767baa2932d4da6e78ae0322fdb1691b82d28628f17f3a5f976ce25326fa77e0b14eb5390d075c9dac47ac57db2f55a1
7
+ data.tar.gz: 4de95cdb730556c7401ab29b012b150e1a787cbe4e9fd65365f1d604f4c96d7375364eb31c5f85f2c84aa3ba5fba3a35056b8aebed270b138aec4c8945732c1e
@@ -59,6 +59,19 @@ module T::Types
59
59
  @types.size == other.types.size && @types.zip(other.types).all? do |t1, t2|
60
60
  t1.subtype_of?(t2)
61
61
  end
62
+ when TypedArray
63
+ # warning: covariant arrays
64
+
65
+ value1, value2, *values_rest = types
66
+ value_type = if !value2.nil?
67
+ T::Types::Union::Private::Pool.union_of_types(value1, value2, values_rest)
68
+ elsif value1.nil?
69
+ T.untyped
70
+ else
71
+ value1
72
+ end
73
+
74
+ T::Types::TypedArray.new(value_type).subtype_of?(other)
62
75
  else
63
76
  false
64
77
  end
@@ -38,6 +38,28 @@ module T::Types
38
38
  when FixedHash
39
39
  # Using `subtype_of?` here instead of == would be unsound
40
40
  @types == other.types
41
+ when TypedHash
42
+ # warning: covariant hashes
43
+
44
+ key1, key2, *keys_rest = types.keys.map {|key| T::Utils.coerce(key.class)}
45
+ key_type = if !key2.nil?
46
+ T::Types::Union::Private::Pool.union_of_types(key1, key2, keys_rest)
47
+ elsif key1.nil?
48
+ T.untyped
49
+ else
50
+ key1
51
+ end
52
+
53
+ value1, value2, *values_rest = types.values
54
+ value_type = if !value2.nil?
55
+ T::Types::Union::Private::Pool.union_of_types(value1, value2, values_rest)
56
+ elsif value1.nil?
57
+ T.untyped
58
+ else
59
+ value1
60
+ end
61
+
62
+ T::Types::TypedHash.new(keys: key_type, values: value_type).subtype_of?(other)
41
63
  else
42
64
  false
43
65
  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.10667
4
+ version: 0.5.10676
5
5
  platform: ruby
6
6
  authors:
7
7
  - Stripe
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-02-16 00:00:00.000000000 Z
11
+ date: 2023-02-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: minitest