sorbet-runtime 0.5.10821 → 0.5.10826

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: dfcdb76f9a4e54f46ef08810a43d8ca559424d56ac63730edaab5e038066557d
4
- data.tar.gz: f2ce020987d48dd63749cd055cfe0f4de986ef0c5cb7e426db0a29087b8ff288
3
+ metadata.gz: 83d8c00fb7a6c1d54bb78a6320bcbf0414beaf5c4cc576df245532ca5661cf5c
4
+ data.tar.gz: 2638c56f59fe4fadfd6bddb1093e56563cb6fdbd6e0c10b8e4fa80bcf05eb176
5
5
  SHA512:
6
- metadata.gz: c3feb72864dd0cf97dfe67f4dbc311d91ab28cc0c3564f0f24127c5cacc6971e9b25110015fe5cb1c309fb6ead68f9414363d14b9cd5ce1b6dd92b7f43a9e475
7
- data.tar.gz: 92ce344f56cf89dd177f5ac4b8055c5e50aef0312fee0e0cb34afc65ff43f1381eb17bc3b644a6d9c5618c5d87092886266c4d29d40cfa299a59fbb23efc3dd5
6
+ metadata.gz: e3e3b76c9d9e2c3b5de8b4f487409714162ed6677a6ab898e0ca7c3445cc623941cd799a77b6c649c9361546d1ffdd7a43e53d321d8a7a7f514b944c8e7f2044
7
+ data.tar.gz: fbe6f5a117611ce224f5ad9a791779733df74d9424fb228a5e295f680d7b0e59f98ac42bfc7560ea455173706a55af1bd46c5f63e07b919fcf66acd9f067c5c1
data/lib/types/_types.rb CHANGED
@@ -123,7 +123,7 @@ module T
123
123
  # .returns(T::Array[T.type_parameter(:U)])
124
124
  # def map(&blk); end
125
125
  def self.type_parameter(name)
126
- T::Types::TypeParameter.new(name)
126
+ T::Types::TypeParameter.make(name)
127
127
  end
128
128
 
129
129
  # Tells the typechecker that `value` is of type `type`. Use this to get additional checking after
@@ -3,11 +3,30 @@
3
3
 
4
4
  module T::Types
5
5
  class TypeParameter < Base
6
+ module Private
7
+ @pool = {}
8
+
9
+ def self.cached_entry(name)
10
+ @pool[name]
11
+ end
12
+
13
+ def self.set_entry_for(name, type)
14
+ @pool[name] = type
15
+ end
16
+ end
17
+
6
18
  def initialize(name)
7
19
  raise ArgumentError.new("not a symbol: #{name}") unless name.is_a?(Symbol)
8
20
  @name = name
9
21
  end
10
22
 
23
+ def self.make(name)
24
+ cached = Private.cached_entry(name)
25
+ return cached if cached
26
+
27
+ Private.set_entry_for(name, new(name))
28
+ end
29
+
11
30
  def valid?(obj)
12
31
  true
13
32
  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.10821
4
+ version: 0.5.10826
5
5
  platform: ruby
6
6
  authors:
7
7
  - Stripe
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-05-12 00:00:00.000000000 Z
11
+ date: 2023-05-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: minitest