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.
- checksums.yaml +4 -4
- data/lib/types/private/sealed.rb +15 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 42f63317cef0402a5724af30535c848a16f290a3327d4d83c65d6e74cb390eba
|
4
|
+
data.tar.gz: b9925c4d8e5a035d532b4f7afe93a1ce914402f5dc4035546a0109f703384fa9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9b2cb19a9c56190180e0d95c0e7719a965247c025524b286411807b8e69f816cfb1faf97effa75cfd83d901a90a9005451e88417b97e03d0b2cc63eaa80a267a
|
7
|
+
data.tar.gz: 5a6e323273d397d345624db5f4d80aa11742fb7efb912320e08afc39833bbb03d2f6b370ac82f41479720feb20868e5d52159c2d644a8a16a2e7e1b0157065d4
|
data/lib/types/private/sealed.rb
CHANGED
@@ -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.
|
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-
|
11
|
+
date: 2020-10-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: minitest
|