sorbet-runtime 0.5.10672 → 0.5.10676

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5bccbb8729d362e4f7baf45a69df1d628927c73ccda509e2afd79657c9ab5563
4
- data.tar.gz: 88eecc1e4cf6de6726bc85c27654f36c7036a8bc5bea401848ed7bf047c80fd7
3
+ metadata.gz: 7af4dd278e99d924889ddfc3e61d864a109755a805bd516a0ec94b9af59226fd
4
+ data.tar.gz: f09610bc852ac70b0fed6e6934b63c981aec7302e78cc1ae918c09018de6d062
5
5
  SHA512:
6
- metadata.gz: d63610594e239324c862c1f86e2d2d4ba7db74035e64af3f0c701bed333e000718dacc4cfc8198e1c9db5dc66112ff17f714fbca97ffd21ee256f701de519ae4
7
- data.tar.gz: 7f6298a6d1d0e297954b924d49f750142438114c072e5b39f171eafdd02da8e001853b76a7b7c418939d225102792a69c72c7154bb4b4addef45c476c8412cd6
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.10672
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-17 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