sorbet 0.5.5909 → 0.5.5911

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/serialize.rb +13 -0
  3. metadata +4 -4
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a1da582954e20553fa37ab829084978dad14a82c
4
- data.tar.gz: 798359035ba490650b526bc6dc16b013f98d51d8
3
+ metadata.gz: 99f5b8075a52d56e557975a588e9ba7cc76f9b91
4
+ data.tar.gz: dedf65d5cb8ec95461a4935d1d079c8fe3eaffc5
5
5
  SHA512:
6
- metadata.gz: 12705953ed45b30e0bee7b6c50f80ec5948331530394c062ab7f3d8cc7311f2426bb9bf82954bfd685b1d7317ddc58f73ca19b5de14e63419e1dd47729c21d16
7
- data.tar.gz: 419c0e63f7e968599706af233aa9194e1cacc6ac2c695c1bae7e7d011e156c5a738344eb9a350b5cb71dcc568bb6b5f5428a74ed68cf7aca04234961d32eb768
6
+ metadata.gz: 865cf32843ab8c98b171317fb9c2725b52c275fc7d746801aa29698c6100473b13ebf070d414f9bddbe9b0cc676e40fb8444225cd16fcef9a62e64c01b4a5c23
7
+ data.tar.gz: c7ad8a9d0ebf91388ff143061022411525f8cc85e7d6f494375c05952b001baea36d71f46e951584b88968e370b13b9d32b5469d6a1d0b0d97944fe5394c23f9
@@ -337,6 +337,19 @@ class Sorbet::Private::Serialize
337
337
  uniq += 1
338
338
  end
339
339
  end
340
+
341
+ # Sanitize parameter names that are not valid.
342
+ # Ruby 2.7+ argument forwarding works by expanding `foo(...)`
343
+ # to `foo(**, ****, &&)`, in other words, to a rest parameter named
344
+ # `*`, a keyword rest parameter named `**` and a block argument named
345
+ # `&`. Those are all illegal parameter names which we should NOT
346
+ # generate. (Coincidentally, that is why Ruby 2.7+ uses those names,
347
+ # so that user code cannot mess with the forwarded arguments)
348
+ if ["*", "**", "&"].include?(name.to_s)
349
+ name = '_' + (uniq == 0 ? '' : uniq.to_s)
350
+ uniq += 1
351
+ end
352
+
340
353
  [kind, name]
341
354
  end
342
355
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sorbet
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.5909
4
+ version: 0.5.5911
5
5
  platform: ruby
6
6
  authors:
7
7
  - Stripe
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-09-12 00:00:00.000000000 Z
11
+ date: 2020-09-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: sorbet-static
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - '='
18
18
  - !ruby/object:Gem::Version
19
- version: 0.5.5909
19
+ version: 0.5.5911
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - '='
25
25
  - !ruby/object:Gem::Version
26
- version: 0.5.5909
26
+ version: 0.5.5911
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: minitest
29
29
  requirement: !ruby/object:Gem::Requirement