sorbet-runtime 0.5.10821 → 0.5.10827

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: 386cb71ce7752282ab02db9ef6cb0c2666c85dd2a39ec0d685fbf17b579d388b
4
+ data.tar.gz: a05e632c01a3248493c4fdc9f0ce86b3ff5e13bca688ef6fd7f419334859ed2b
5
5
  SHA512:
6
- metadata.gz: c3feb72864dd0cf97dfe67f4dbc311d91ab28cc0c3564f0f24127c5cacc6971e9b25110015fe5cb1c309fb6ead68f9414363d14b9cd5ce1b6dd92b7f43a9e475
7
- data.tar.gz: 92ce344f56cf89dd177f5ac4b8055c5e50aef0312fee0e0cb34afc65ff43f1381eb17bc3b644a6d9c5618c5d87092886266c4d29d40cfa299a59fbb23efc3dd5
6
+ metadata.gz: ab0a059b6028792de25854e64f5c62c800e7e4aae76b2bb474ca22133b57a635b8b62bbdf04afed4ab5d602a20423dbbd03baa1d1c7ac3b24f22248d5f5c1f3e
7
+ data.tar.gz: a8d299a98040bac45f503184ce53dbaef13cbd775bfd8807ba8e40ff86ecac5bdea409b19835e2b1721953280661c509b689a10a3f756cff5967c6660224dace
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.10827
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-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: minitest