sorbet-runtime 0.5.10821 → 0.5.10826

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: 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