sorbet-runtime 0.4.4746 → 0.4.4751

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: 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