sorbet-runtime 0.5.9301 → 0.5.9303

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: dd728139a89062f5b40b2405578ef9ef16ed829ec511271d5f3fb51898dce209
4
- data.tar.gz: 3e79a99f87f7ca6ca99da00fdb4c3fe3582bc6556ed2e64765d1d33ce9c13f46
3
+ metadata.gz: 626e90f89004840a204df1556fe761795ecff636928bb58b67062728f94bacbc
4
+ data.tar.gz: ee019780da14b37e6f4bb011a298974ac926206016d46b5555948a0079d65ecb
5
5
  SHA512:
6
- metadata.gz: c2e3109b34b36152c6a3e045ac63eb470c2655501b4ae9341492b62de824132a840cf6699e3b48456443dfb5c3580c063617730219d2d82ae7472e65a3819e53
7
- data.tar.gz: 78481eada93065d90119839f1499c484d9ca5a1b951a2031640100cfcc5f952127f444c3def7907130eb89aa01a6bd521f60b0051f1e0e50dfb426d2347d4651
6
+ metadata.gz: 1aa7b65d30f76f923f355b9ebd009ea50fe55d4c5fd2eee0fbbc7e3b3547932c289ad12777505ecf2d4f11ef27be1b2ff238869ba7167c3937013df72da4bb49
7
+ data.tar.gz: d5bf96d9fe43fb2518313403f2bac770e65cbbaeb610b4b3c1e8d2ac7434052b3cfe7a5777cd3b19b022316b03fbe96e763f8433b8ae8abbbb36a315ba514343
@@ -9,7 +9,7 @@ module T::Private::Methods
9
9
  # stores method names that were declared final without regard for where.
10
10
  # enables early rejection of names that we know can't induce final method violations.
11
11
  @was_ever_final_names = {}
12
- # maps from modules to the set of final methods declared in that module.
12
+ # maps from a module's object_id to the set of final methods declared in that module.
13
13
  # we also overload entries slightly: if the value is nil, that means that the
14
14
  # module has final methods somewhere along its ancestor chain, but does not itself
15
15
  # have any final methods.
@@ -127,7 +127,7 @@ module T::Private::Methods
127
127
  source_ancestors = nil
128
128
  # use reverse_each to check farther-up ancestors first, for better error messages.
129
129
  target_ancestors.reverse_each do |ancestor|
130
- final_methods = @modules_with_final.fetch(ancestor, nil)
130
+ final_methods = @modules_with_final.fetch(ancestor.object_id, nil)
131
131
  # In this case, either ancestor didn't have any final methods anywhere in its
132
132
  # ancestor chain, or ancestor did have final methods somewhere in its ancestor
133
133
  # chain, but no final methods defined in ancestor itself. Either way, there
@@ -145,13 +145,13 @@ module T::Private::Methods
145
145
  # filter out things without actual final methods just to make sure that
146
146
  # the below checks (which should be uncommon) go as quickly as possible.
147
147
  source_ancestors.select! do |a|
148
- @modules_with_final.fetch(a, nil)
148
+ @modules_with_final.fetch(a.object_id, nil)
149
149
  end
150
150
  end
151
151
  # final-ness means that there should be no more than one index for which
152
152
  # the below block returns true.
153
153
  defining_ancestor_idx = source_ancestors.index do |a|
154
- @modules_with_final.fetch(a).include?(method_name)
154
+ @modules_with_final.fetch(a.object_id).include?(method_name)
155
155
  end
156
156
  next if defining_ancestor_idx && source_ancestors[defining_ancestor_idx] == ancestor
157
157
  end
@@ -188,10 +188,11 @@ module T::Private::Methods
188
188
 
189
189
  def self.add_module_with_final_method(mod, method_name, is_singleton_method)
190
190
  m = is_singleton_method ? mod.singleton_class : mod
191
- methods = @modules_with_final[m]
191
+ mid = m.object_id
192
+ methods = @modules_with_final[mid]
192
193
  if methods.nil?
193
194
  methods = {}
194
- @modules_with_final[m] = methods
195
+ @modules_with_final[mid] = methods
195
196
  end
196
197
  methods[method_name] = true
197
198
  nil
@@ -199,8 +200,8 @@ module T::Private::Methods
199
200
 
200
201
  def self.note_module_deals_with_final(mod)
201
202
  # Side-effectfully initialize the value if it's not already there
202
- @modules_with_final[mod]
203
- @modules_with_final[mod.singleton_class]
203
+ @modules_with_final[mod.object_id]
204
+ @modules_with_final[mod.singleton_class.object_id]
204
205
  end
205
206
 
206
207
  # Only public because it needs to get called below inside the replace_method blocks below.
@@ -216,7 +217,7 @@ module T::Private::Methods
216
217
  raise "#{mod} was declared as final but its method `#{method_name}` was not declared as final"
217
218
  end
218
219
  # Don't compute mod.ancestors if we don't need to bother checking final-ness.
219
- if @was_ever_final_names.include?(method_name) && @modules_with_final.include?(mod)
220
+ if @was_ever_final_names.include?(method_name) && @modules_with_final.include?(mod.object_id)
220
221
  _check_final_ancestors(mod, mod.ancestors, [method_name], nil)
221
222
  # We need to fetch the active declaration again, as _check_final_ancestors
222
223
  # may have reset it (see the comment in that method for details).
@@ -466,8 +467,8 @@ module T::Private::Methods
466
467
  def self._hook_impl(target, singleton_class, source)
467
468
  # we do not need to call add_was_ever_final here, because we have already marked
468
469
  # any such methods when source was originally defined.
469
- if !@modules_with_final.include?(target)
470
- if !@modules_with_final.include?(source)
470
+ if !@modules_with_final.include?(target.object_id)
471
+ if !@modules_with_final.include?(source.object_id)
471
472
  return
472
473
  end
473
474
  note_module_deals_with_final(target)
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.9301
4
+ version: 0.5.9303
5
5
  platform: ruby
6
6
  authors:
7
7
  - Stripe
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-11-04 00:00:00.000000000 Z
11
+ date: 2021-11-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: minitest