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: 7e13d5fc2bb9079d78d348f97e5eac8e45f5b2ecd188bf5c6e6e0d6940f8a122
4
- data.tar.gz: ddbd220e571a1a02b846d187812e9f9d16ec8fba0466490920888cdd2d498397
3
+ metadata.gz: 9fc9a8079b59e3449f32ad7455bdb1fd82f8a63c333eedcfbb680599d6886180
4
+ data.tar.gz: 2ea971b7de47aabc186e3434d1f1099f30296f300da305edacc16225467c25cc
5
5
  SHA512:
6
- metadata.gz: 5e303d0e4648af91329be506f7430caaa246a75b34f677d1c1b1dfeea8ce0b8c8cabcd6b0267bd48b012bcd4ffd8b567f243819c88220f256f308d56d8aac864
7
- data.tar.gz: c834e47f42f5e69d987f7971f6bd46c76d0e067000ee649ed6f90920251bbc72875f64c68d4d231d22f983846d4a848071db4eb83293ea4450f4fe12158a55e2
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.implementation
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 any of `.override`, `.implementation`, or "\
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 any of `.abstract`, `.implementation`, or "\
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, Modes.override
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.implementation
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
- case decl.mode
198
- when Modes.abstract, Modes.override
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.overridable_implementation; 'overridable_implementation'; end
9
+ def self.overridable_override; 'overridable_override'; end
11
10
  def self.untyped; 'untyped'; end
12
- MODES = [self.standard, self.abstract, self.overridable, self.implementation, self.override, self.overridable_implementation, self.untyped]
11
+ MODES = [self.standard, self.abstract, self.overridable, self.override, self.overridable_override, self.untyped]
13
12
 
14
- IMPLEMENT_MODES = [self.implementation, self.overridable_implementation]
15
- OVERRIDABLE_MODES = [self.override, self.overridable, self.overridable_implementation, self.untyped]
16
- OVERRIDE_MODES = [self.override]
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.overridable_implementation
52
- '.overridable.implementation'
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 `.implementation` when overriding the abstract method `#{signature.method_name}`.\n" \
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 it doesn't match up with a corresponding abstract method.\n" \
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.4746
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-12 00:00:00.000000000 Z
11
+ date: 2019-09-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: minitest