sorbet-runtime 0.6.13256 → 0.6.13258

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: e1169c978578eea0ccb2d0da7d75e92fbbbb18044bc6933e73e951b11f4c47c4
4
- data.tar.gz: dcf7dd8578b17bf97775560d8a8316e68dadccdb4c7abff1cccff989f084f89a
3
+ metadata.gz: f1f96e18b171fe61567c35fd4a5dc5a12b0cd94cfb3df8855237557c4d125b24
4
+ data.tar.gz: cc38050090b08d0ffe16eaa41cacd8d37d500c95593ac699a46836341ea24e7f
5
5
  SHA512:
6
- metadata.gz: 0ff5a3414fd326e6a3ec49edba2f0a408bae275d64801dc6864ee465e21f8d6108162ac8d515c8231267126baba08e2c502b2338ee561e2cfcb13f8e1db53460
7
- data.tar.gz: 323f0f4e11f390dde2936f564c8cd82a413710c72e105467f6fda71fe2d6d589d6f266dcef2418971a6cf0ad083ed6927bdbc395e8838ec0a6680527667a7e55
6
+ metadata.gz: 45b877512b1af1af599c7b4d6879b35e5bc04205c8cb81a4ba8af5091992b5c86aa470d68896e73f8cfe8ed8f0f30fc22f600c25096dfbcde1dcb62572bf653c
7
+ data.tar.gz: a8c74b733ebb4dd5687d3fcdc1675fc42b2e2beb67c7664b5dc0bbd5027043783c3166b4687819f595a3524f777191c8d027f69eed89912baebae0223504ae41
@@ -246,12 +246,16 @@ class T::Private::Methods::Signature
246
246
  end
247
247
 
248
248
  def method_desc
249
- loc = if (source_loc = @method.source_location)
249
+ self.class.method_desc(@method, @method_name)
250
+ end
251
+
252
+ def self.method_desc(method, method_name, source_loc=method.source_location)
253
+ loc = if source_loc
250
254
  source_loc.join(':')
251
255
  else
252
256
  "<unknown location>"
253
257
  end
254
- "#{@method.owner}##{@method_name} at #{loc}"
258
+ "#{method.owner}##{method_name} at #{loc}"
255
259
  end
256
260
 
257
261
  def force_type_init
@@ -92,15 +92,15 @@ module T::Private::Methods::SignatureValidation
92
92
  validate_override_visibility(signature, super_signature)
93
93
  end
94
94
  else
95
- validate_non_override_mode(signature)
95
+ validate_non_override_mode(signature.mode, signature.method_name, signature.method)
96
96
  end
97
97
  end
98
98
 
99
- private_class_method def self.pretty_mode(signature)
100
- if signature.mode == Modes.overridable_override
101
- '.overridable.override'
99
+ private_class_method def self.pretty_mode(mode)
100
+ if mode == Modes.overridable_override
101
+ 'overridable.override'
102
102
  else
103
- ".#{signature.mode}"
103
+ mode
104
104
  end
105
105
  end
106
106
 
@@ -138,10 +138,10 @@ module T::Private::Methods::SignatureValidation
138
138
  end
139
139
  end
140
140
 
141
- def self.validate_non_override_mode(signature)
142
- case signature.mode
141
+ def self.validate_non_override_mode(mode, method_name, method, source_loc=method.source_location)
142
+ case mode
143
143
  when Modes.override
144
- if signature.method_name == :each && signature.method.owner < Enumerable
144
+ if method_name == :each && method.owner < Enumerable
145
145
  # Enumerable#each is the only method in Sorbet's RBI payload that defines an abstract method.
146
146
  # Enumerable#each does not actually exist at runtime, but it is required to be implemented by
147
147
  # any class which includes Enumerable. We want to declare Enumerable#each as abstract so that
@@ -151,25 +151,25 @@ module T::Private::Methods::SignatureValidation
151
151
  # This is a one-off hack, and we should think carefully before adding more methods here.
152
152
  nil
153
153
  else
154
- raise "You marked `#{signature.method_name}` as #{pretty_mode(signature)}, but that method doesn't already exist in this class/module to be overridden.\n" \
154
+ raise "You marked `#{method_name}` as #{pretty_mode(mode)}, but that method doesn't already exist in this class/module to be overridden.\n" \
155
155
  " Either check for typos and for missing includes or super classes to make the parent method shows up\n" \
156
- " ... or remove #{pretty_mode(signature)} here: #{signature.method_desc}\n"
156
+ " ... or remove #{pretty_mode(mode)} here: #{T::Private::Methods::Signature.method_desc(method, method_name, source_loc)}\n"
157
157
  end
158
158
  when Modes.standard, *Modes::NON_OVERRIDE_MODES
159
159
  # Peaceful
160
160
  nil
161
161
  else
162
- raise "Unexpected mode: #{signature.mode}. Please report this bug at https://github.com/sorbet/sorbet/issues"
162
+ raise "Unexpected mode: #{mode}. Please report this bug at https://github.com/sorbet/sorbet/issues"
163
163
  end
164
164
 
165
165
  # Given a singleton class, we can check if it belongs to a
166
166
  # module by looking at its superclass; given `module M`,
167
167
  # `M.singleton_class.superclass == Module`, which is not true
168
168
  # for any class.
169
- owner = signature.method.owner
170
- if (signature.mode == Modes.abstract || Modes::OVERRIDABLE_MODES.include?(signature.mode)) &&
169
+ owner = method.owner
170
+ if (mode == Modes.abstract || Modes::OVERRIDABLE_MODES.include?(mode)) &&
171
171
  owner.singleton_class? && Class === owner && owner.superclass == Module
172
- raise "Defining an overridable class method (via #{pretty_mode(signature)}) " \
172
+ raise "Defining an overridable class method (via #{pretty_mode(mode)}) " \
173
173
  "on a module is not allowed. Class methods on " \
174
174
  "modules do not get inherited and thus cannot be overridden."
175
175
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sorbet-runtime
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.13256
4
+ version: 0.6.13258
5
5
  platform: ruby
6
6
  authors:
7
7
  - Stripe