sorbet-runtime 0.5.10672 → 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: 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