sorbet-runtime 0.4.4746 → 0.4.4751
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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9fc9a8079b59e3449f32ad7455bdb1fd82f8a63c333eedcfbb680599d6886180
|
4
|
+
data.tar.gz: 2ea971b7de47aabc186e3434d1f1099f30296f300da305edacc16225467c25cc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1cdf121434e68095f82d49903881a4a653db48d05a3b214a45ee71128c32a173a6ca96750ea7be5f9b2b788219414d77c71dd16abe02101739e3cf74d7bbbd30
|
7
|
+
data.tar.gz: 85bd0b9ab445f93cb2e8ed650edde297080bf67aabdc5ff3aa86a3b8c0068c11a41a57e4f750f21607acd9262894547b9588eac046dfb6f2cee2296195bcf2f0
|
@@ -61,7 +61,7 @@ module T::Private::Abstract::Validate
|
|
61
61
|
# In that case, get its untyped signature.
|
62
62
|
implementation_signature ||= Methods::Signature.new_untyped(
|
63
63
|
method: implementation_method,
|
64
|
-
mode: Methods::Modes.
|
64
|
+
mode: Methods::Modes.override
|
65
65
|
)
|
66
66
|
SignatureValidation.validate_override_shape(implementation_signature, abstract_signature)
|
67
67
|
SignatureValidation.validate_override_types(implementation_signature, abstract_signature)
|
@@ -145,8 +145,7 @@ module T::Private::Methods
|
|
145
145
|
when Modes.abstract
|
146
146
|
raise BuilderError.new(".abstract cannot be repeated in a single signature")
|
147
147
|
else
|
148
|
-
raise BuilderError.new("`.abstract` cannot be combined with
|
149
|
-
"`.overridable`.")
|
148
|
+
raise BuilderError.new("`.abstract` cannot be combined with `.override` or `.overridable`.")
|
150
149
|
end
|
151
150
|
|
152
151
|
self
|
@@ -164,11 +163,12 @@ module T::Private::Methods
|
|
164
163
|
when Modes.standard
|
165
164
|
decl.mode = Modes.override
|
166
165
|
decl.override_allow_incompatible = allow_incompatible
|
167
|
-
when Modes.override
|
166
|
+
when Modes.override, Modes.overridable_override
|
168
167
|
raise BuilderError.new(".override cannot be repeated in a single signature")
|
168
|
+
when Modes.overridable
|
169
|
+
decl.mode = Modes.overridable_override
|
169
170
|
else
|
170
|
-
raise BuilderError.new("`.override` cannot be combined with
|
171
|
-
"`.overridable`.")
|
171
|
+
raise BuilderError.new("`.override` cannot be combined with `.abstract`.")
|
172
172
|
end
|
173
173
|
|
174
174
|
self
|
@@ -178,13 +178,13 @@ module T::Private::Methods
|
|
178
178
|
check_live!
|
179
179
|
|
180
180
|
case decl.mode
|
181
|
-
when Modes.abstract
|
181
|
+
when Modes.abstract
|
182
182
|
raise BuilderError.new("`.overridable` cannot be combined with `.#{decl.mode}`")
|
183
|
+
when Modes.override
|
184
|
+
decl.mode = Modes.overridable_override
|
183
185
|
when Modes.standard
|
184
186
|
decl.mode = Modes.overridable
|
185
|
-
when Modes.
|
186
|
-
decl.mode = Modes.overridable_implementation
|
187
|
-
when Modes.overridable, Modes.overridable_implementation
|
187
|
+
when Modes.overridable, Modes.overridable_override
|
188
188
|
raise BuilderError.new(".overridable cannot be repeated in a single signature")
|
189
189
|
end
|
190
190
|
|
@@ -194,16 +194,8 @@ module T::Private::Methods
|
|
194
194
|
def implementation
|
195
195
|
check_live!
|
196
196
|
|
197
|
-
|
198
|
-
|
199
|
-
raise BuilderError.new("`.implementation` cannot be combined with `.#{decl.mode}`")
|
200
|
-
when Modes.standard
|
201
|
-
decl.mode = Modes.implementation
|
202
|
-
when Modes.overridable
|
203
|
-
decl.mode = Modes.overridable_implementation
|
204
|
-
when Modes.implementation, Modes.overridable_implementation
|
205
|
-
raise BuilderError.new(".implementation cannot be repeated in a single signature")
|
206
|
-
end
|
197
|
+
# TODO: remove this
|
198
|
+
override
|
207
199
|
|
208
200
|
self
|
209
201
|
end
|
@@ -5,14 +5,12 @@ module T::Private::Methods::Modes
|
|
5
5
|
def self.standard; 'standard'; end
|
6
6
|
def self.abstract; 'abstract'; end
|
7
7
|
def self.overridable; 'overridable'; end
|
8
|
-
def self.implementation; 'implementation'; end
|
9
8
|
def self.override; 'override'; end
|
10
|
-
def self.
|
9
|
+
def self.overridable_override; 'overridable_override'; end
|
11
10
|
def self.untyped; 'untyped'; end
|
12
|
-
MODES = [self.standard, self.abstract, self.overridable, self.
|
11
|
+
MODES = [self.standard, self.abstract, self.overridable, self.override, self.overridable_override, self.untyped]
|
13
12
|
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
NON_OVERRIDE_MODES = MODES - OVERRIDE_MODES - IMPLEMENT_MODES
|
13
|
+
OVERRIDABLE_MODES = [self.override, self.overridable, self.overridable_override, self.untyped, self.abstract]
|
14
|
+
OVERRIDE_MODES = [self.override, self.overridable_override]
|
15
|
+
NON_OVERRIDE_MODES = MODES - OVERRIDE_MODES
|
18
16
|
end
|
@@ -48,8 +48,8 @@ module T::Private::Methods::SignatureValidation
|
|
48
48
|
end
|
49
49
|
|
50
50
|
private_class_method def self.pretty_mode(signature)
|
51
|
-
if signature.mode == Modes.
|
52
|
-
'.overridable.
|
51
|
+
if signature.mode == Modes.overridable_override
|
52
|
+
'.overridable.override'
|
53
53
|
else
|
54
54
|
".#{signature.mode}"
|
55
55
|
end
|
@@ -59,21 +59,15 @@ module T::Private::Methods::SignatureValidation
|
|
59
59
|
case signature.mode
|
60
60
|
when *Modes::OVERRIDE_MODES
|
61
61
|
if !Modes::OVERRIDABLE_MODES.include?(super_signature.mode)
|
62
|
-
raise "You declared `#{signature.method_name}` as #{pretty_mode(signature)}, but the method it overrides is not declared as `overridable`.\n" \
|
62
|
+
raise "You declared `#{signature.method_name}` as #{pretty_mode(signature)}, but the method it overrides is not declared as `overridable` or `abstract`.\n" \
|
63
63
|
" Parent definition: #{method_loc_str(super_signature.method)}\n" \
|
64
64
|
" Child definition: #{method_loc_str(signature.method)}\n"
|
65
65
|
end
|
66
|
-
when *Modes::IMPLEMENT_MODES
|
67
|
-
if super_signature.mode != Modes.abstract
|
68
|
-
raise "You declared `#{signature.method_name}` as #{pretty_mode(signature)}, but the method it overrides is not declared as abstract.\n" \
|
69
|
-
" Either mark #{super_signature.method_name} as `abstract.` in the parent: #{method_loc_str(super_signature.method)}\n" \
|
70
|
-
" ... or mark #{signature.method_name} as `override.` in the child: #{method_loc_str(signature.method)}\n"
|
71
|
-
end
|
72
66
|
when *Modes::NON_OVERRIDE_MODES
|
73
67
|
if super_signature.mode == Modes.standard
|
74
68
|
# Peaceful
|
75
69
|
elsif super_signature.mode == Modes.abstract
|
76
|
-
raise "You must use `.
|
70
|
+
raise "You must use `.override` when overriding the abstract method `#{signature.method_name}`.\n" \
|
77
71
|
" Abstract definition: #{method_loc_str(super_signature.method)}\n" \
|
78
72
|
" Implementation definition: #{method_loc_str(signature.method)}\n"
|
79
73
|
elsif super_signature.mode != Modes.untyped
|
@@ -89,13 +83,6 @@ module T::Private::Methods::SignatureValidation
|
|
89
83
|
def self.validate_non_override_mode(signature)
|
90
84
|
case signature.mode
|
91
85
|
when Modes.override
|
92
|
-
raise "You marked `#{signature.method_name}` as #{pretty_mode(signature)}, but that method doesn't already exist in this class/module to be overriden.\n" \
|
93
|
-
" Either check for typos and for missing includes or super classes to make the parent method shows up\n" \
|
94
|
-
" ... or remove #{pretty_mode(signature)} here: #{method_loc_str(signature.method)}\n"
|
95
|
-
when Modes.standard, *Modes::NON_OVERRIDE_MODES
|
96
|
-
# Peaceful
|
97
|
-
nil
|
98
|
-
when *Modes::IMPLEMENT_MODES
|
99
86
|
if signature.method_name == :each && signature.method.owner < Enumerable
|
100
87
|
# Enumerable#each is the only method in Sorbet's RBI payload that defines an abstract method.
|
101
88
|
# Enumerable#each does not actually exist at runtime, but it is required to be implemented by
|
@@ -106,10 +93,13 @@ module T::Private::Methods::SignatureValidation
|
|
106
93
|
# This is a one-off hack, and we should think carefully before adding more methods here.
|
107
94
|
nil
|
108
95
|
else
|
109
|
-
raise "You marked `#{signature.method_name}` as #{pretty_mode(signature)}, but
|
96
|
+
raise "You marked `#{signature.method_name}` as #{pretty_mode(signature)}, but that method doesn't already exist in this class/module to be overriden.\n" \
|
110
97
|
" Either check for typos and for missing includes or super classes to make the parent method shows up\n" \
|
111
98
|
" ... or remove #{pretty_mode(signature)} here: #{method_loc_str(signature.method)}\n"
|
112
99
|
end
|
100
|
+
when Modes.standard, *Modes::NON_OVERRIDE_MODES
|
101
|
+
# Peaceful
|
102
|
+
nil
|
113
103
|
else
|
114
104
|
raise "Unexpected mode: #{signature.mode}. Please report to #dev-productivity."
|
115
105
|
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.4.
|
4
|
+
version: 0.4.4751
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Stripe
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-09-
|
11
|
+
date: 2019-09-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: minitest
|