sorbet-runtime 0.5.5956 → 0.5.5967

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/types/private/sealed.rb +15 -0
  3. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 569e1e784f7d9e4c911cc92571704e406dfe981df3285218ae06b245b2e113db
4
- data.tar.gz: 2d7b5f9878d6fe05add390255cdfe0dd70c69a77bbd06d5a32a1d02deec7f1b1
3
+ metadata.gz: 42f63317cef0402a5724af30535c848a16f290a3327d4d83c65d6e74cb390eba
4
+ data.tar.gz: b9925c4d8e5a035d532b4f7afe93a1ce914402f5dc4035546a0109f703384fa9
5
5
  SHA512:
6
- metadata.gz: e93ae059f1d875a26242803edbae96a335a179a3ef2862ad1c2ad9c1729cb8041ec44c8fcd4520a25e33de9ff421a7edd67032579a1d60b6e8d6c649f6b6d0a1
7
- data.tar.gz: 8b9b92b336911870b563666c7495b2f5ac52ddb3b2ec805dfcb1fbd48393dbfc63c89dd35c13f18ffeed04b7cdb9ff619591e011cf115975fc5392b6ab01be2b
6
+ metadata.gz: 9b2cb19a9c56190180e0d95c0e7719a965247c025524b286411807b8e69f816cfb1faf97effa75cfd83d901a90a9005451e88417b97e03d0b2cc63eaa80a267a
7
+ data.tar.gz: 5a6e323273d397d345624db5f4d80aa11742fb7efb912320e08afc39833bbb03d2f6b370ac82f41479720feb20868e5d52159c2d644a8a16a2e7e1b0157065d4
@@ -7,6 +7,11 @@ module T::Private::Sealed
7
7
  super
8
8
  this_line = Kernel.caller.find {|line| !line.match(/in `inherited'$/)}
9
9
  T::Private::Sealed.validate_inheritance(this_line, self, 'inherited')
10
+ @sorbet_sealed_module_all_subclasses << other
11
+ end
12
+
13
+ def sealed_subclasses
14
+ @sorbet_sealed_module_all_subclasses
10
15
  end
11
16
  end
12
17
 
@@ -15,12 +20,21 @@ module T::Private::Sealed
15
20
  super
16
21
  this_line = Kernel.caller.find {|line| !line.match(/in `included'$/)}
17
22
  T::Private::Sealed.validate_inheritance(this_line, self, 'included')
23
+ @sorbet_sealed_module_all_subclasses << other
18
24
  end
19
25
 
20
26
  def extended(other)
21
27
  super
22
28
  this_line = Kernel.caller.find {|line| !line.match(/in `extended'$/)}
23
29
  T::Private::Sealed.validate_inheritance(this_line, self, 'extended')
30
+ @sorbet_sealed_module_all_subclasses << other
31
+ end
32
+
33
+ def sealed_subclasses
34
+ # this will freeze the set so that you can never get into a
35
+ # state where you use the subclasses list and then something
36
+ # else will add to it
37
+ @sorbet_sealed_module_all_subclasses.freeze
24
38
  end
25
39
  end
26
40
 
@@ -39,6 +53,7 @@ module T::Private::Sealed
39
53
  raise "Couldn't determine declaration file for sealed class."
40
54
  end
41
55
  mod.instance_variable_set(:@sorbet_sealed_module_decl_file, decl_file)
56
+ mod.instance_variable_set(:@sorbet_sealed_module_all_subclasses, Set.new)
42
57
  end
43
58
 
44
59
  def self.sealed_module?(mod)
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.5956
4
+ version: 0.5.5967
5
5
  platform: ruby
6
6
  authors:
7
7
  - Stripe
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-10-17 00:00:00.000000000 Z
11
+ date: 2020-10-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: minitest