rbs 0.14.0 → 0.15.0

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.
Files changed (50) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +11 -0
  3. data/docs/syntax.md +50 -6
  4. data/lib/rbs/definition_builder.rb +2 -2
  5. data/lib/rbs/parser.rb +98 -96
  6. data/lib/rbs/parser.y +3 -1
  7. data/lib/rbs/prototype/rb.rb +38 -6
  8. data/lib/rbs/prototype/runtime.rb +17 -7
  9. data/lib/rbs/test/hook.rb +2 -0
  10. data/lib/rbs/test/tester.rb +4 -1
  11. data/lib/rbs/test/type_check.rb +10 -4
  12. data/lib/rbs/version.rb +1 -1
  13. data/sig/constant_table.rbs +1 -1
  14. data/sig/declarations.rbs +1 -1
  15. data/sig/definition.rbs +1 -1
  16. data/sig/environment_loader.rbs +3 -3
  17. data/sig/members.rbs +2 -2
  18. data/sig/method_types.rbs +1 -1
  19. data/sig/namespace.rbs +1 -1
  20. data/stdlib/base64/base64.rbs +1 -1
  21. data/stdlib/builtin/array.rbs +124 -120
  22. data/stdlib/builtin/builtin.rbs +28 -0
  23. data/stdlib/builtin/enumerable.rbs +26 -20
  24. data/stdlib/builtin/errors.rbs +1 -1
  25. data/stdlib/builtin/gc.rbs +2 -2
  26. data/stdlib/builtin/hash.rbs +7 -7
  27. data/stdlib/builtin/io.rbs +5 -5
  28. data/stdlib/builtin/kernel.rbs +1 -85
  29. data/stdlib/builtin/module.rbs +13 -13
  30. data/stdlib/builtin/object.rbs +1 -1
  31. data/stdlib/builtin/random.rbs +1 -1
  32. data/stdlib/builtin/range.rbs +2 -2
  33. data/stdlib/builtin/string.rbs +6 -6
  34. data/stdlib/builtin/string_io.rbs +7 -7
  35. data/stdlib/builtin/struct.rbs +1 -1
  36. data/stdlib/builtin/symbol.rbs +1 -1
  37. data/stdlib/builtin/thread.rbs +4 -4
  38. data/stdlib/builtin/true_class.rbs +1 -1
  39. data/stdlib/coverage/coverage.rbs +2 -2
  40. data/stdlib/csv/csv.rbs +1 -1
  41. data/stdlib/date/date.rbs +2 -2
  42. data/stdlib/date/date_time.rbs +1 -1
  43. data/stdlib/find/find.rbs +2 -2
  44. data/stdlib/logger/log_device.rbs +1 -1
  45. data/stdlib/logger/logger.rbs +1 -1
  46. data/stdlib/pathname/pathname.rbs +39 -39
  47. data/stdlib/pstore/pstore.rbs +287 -0
  48. data/stdlib/pty/pty.rbs +1 -1
  49. data/stdlib/uri/generic.rbs +1 -1
  50. metadata +3 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 391c185c91da1e233ce83cf4c9cd37f3624bfef9fbb96aa636bf9b42348bd62a
4
- data.tar.gz: 21163b54afaf9e6d5a4b7638e29433511bbb3b26c62892ca4a22053d64675baa
3
+ metadata.gz: 5348f41dbf169228104d4ba79ad88098ec3e8e83656b48b0b1c5877fab2e8cb7
4
+ data.tar.gz: c79ce48144a85642f974b0973e22f8ed97a072d98ce98e2b62aebf639c8d04f7
5
5
  SHA512:
6
- metadata.gz: 19aa7220827ebae3cbc653622a1041d3a65b463edacd045800d5247e2a3e30cd30cfcd5ce9296abeb03232a0497693803ed84c3e910cd9c62d104a0f59097043
7
- data.tar.gz: 8eebfa6339124dc466c23a75fe6b1a90728ce916e8eab4dd8d7442055d2d2bf22fafb696ace169202b6a15888e1a059ac2f6dca25db3953e75b6e88f2b729934
6
+ metadata.gz: efb99d0e6476b83dbd1994a71526adab4b5b6aab2fc231a1685407739bb9a3e2f1268fb3effcbe701fa033608a0b872fd3f0011d046c599457bf47a3c3fcdb97
7
+ data.tar.gz: 87d13112f6abce7b7ead4e95302978d17c7c08eaf94485bf27c00c5d91e08f8c10458344661b73d518caff095787323d3694512d76796f2d20da8c2bad2e101f
@@ -2,6 +2,17 @@
2
2
 
3
3
  ## master
4
4
 
5
+ ## 0.15.0 (2020-11-2)
6
+
7
+ * Signature updates for `Kernel`, `PStore`, `Enumerable`, and `Array` ([#450](https://github.com/ruby/rbs/pull/450), [#443](https://github.com/ruby/rbs/pull/443), [#438](https://github.com/ruby/rbs/pull/438), [#437](https://github.com/ruby/rbs/pull/437), [#433](https://github.com/ruby/rbs/pull/433), [#432](https://github.com/ruby/rbs/pull/432))
8
+ * Add helper interfaces ([#434](https://github.com/ruby/rbs/pull/434), [#428](https://github.com/ruby/rbs/pull/428))
9
+ * Change `bool` type semantics ([#456](https://github.com/ruby/rbs/pull/456))
10
+ * Support alias in `rbs prototype rb` ([#457](https://github.com/ruby/rbs/pull/457))
11
+ * Runtime testing improvements ([#455](https://github.com/ruby/rbs/pull/455), [#447](https://github.com/ruby/rbs/pull/447), [#444](https://github.com/ruby/rbs/pull/444), [#431](https://github.com/ruby/rbs/pull/431))
12
+ * Fix proc type parsing ([#451](https://github.com/ruby/rbs/pull/451))
13
+ * Fix type variable parsing ([#442](https://github.com/ruby/rbs/pull/442))
14
+
15
+
5
16
  ## 0.14.0 (2020-10-17)
6
17
 
7
18
  * Allow keyword names ending with `?` and `!` ([#417](https://github.com/ruby/rbs/pull/417))
@@ -179,7 +179,7 @@ Proc type denotes type of procedures, `Proc` instances.
179
179
 
180
180
  `instance` denotes the type of instance of the class. `class` is the singleton of the class.
181
181
 
182
- `bool` is an abstract type for truth value.
182
+ `bool` is an alias of `true | false`.
183
183
 
184
184
  `untyped` is for _a type without type checking_. It is `?` in gradual typing, _dynamic_ in some languages like C#, and _any_ in TypeScript. It is both subtype _and_ supertype of all of the types. (The type was `any` but renamed to `untyped`.)
185
185
 
@@ -193,15 +193,34 @@ Proc type denotes type of procedures, `Proc` instances.
193
193
 
194
194
  We recommend using `nil`.
195
195
 
196
- #### `bool` or `TrueClass | FalseClass`
196
+ #### `bool` or `boolish`
197
197
 
198
- We recommend using `bool` because it is more close to Ruby's semantics. If the type of a parameter of a method is `bool`, we usually pass `true` and `false`, and also `nil` or any other values. `TrueClass | FalseClass` rejects other values than `true` and `false`.
198
+ We have a builtin type alias called `boolish`.
199
+ It is an alias of `top` type, and you can use `boolish` if we want to allow any object of any type.
199
200
 
200
- #### `void`, `bool`, or `top`?
201
+ We can see an example at the definition of `Enumerable#find`:
202
+
203
+ ```
204
+ module Enumerable[Elem, Return]
205
+ def find: () { (Elem) -> boolish } -> Elem?
206
+ ...
207
+ end
208
+ ```
209
+
210
+ We want to write something like:
211
+
212
+ ```
213
+ array.find {|x| x && x.some_test? } # The block will return (bool | nil)
214
+ ```
215
+
216
+ We recommend using `boolish` for method arguments and block return values, if you only use the values for conditions.
217
+ You can write `bool` if you strictly want `true | false`.
218
+
219
+ #### `void`, `boolish`, or `top`?
201
220
 
202
221
  They are all equivalent for the type system; they are all _top type_.
203
222
 
204
- `void` tells developers a hint that _the value should not be used_. `bool` implies the value is used as a truth value. `top` is anything else.
223
+ `void` tells developers a hint that _the value should not be used_. `boolish` implies the value is used as a truth value. `top` is anything else.
205
224
 
206
225
  ## Method Types
207
226
 
@@ -433,8 +452,10 @@ _global-name_ ::= /$[a-zA-Z]\w+/ | ...
433
452
  _module-type-parameters_ ::= # Empty
434
453
  | `[` _module-type-parameter_ `,` ... `]`
435
454
 
436
- _module-type-parameter_ ::= _variance_ _type-variable_
455
+ _module-type-parameter_ ::= _check_ _variance_ _type-variable_
437
456
  _variance_ ::= `out` | `in`
457
+ _check_ ::= # Empty
458
+ | `unchecked`
438
459
  ```
439
460
 
440
461
  ### Class declaration
@@ -448,6 +469,29 @@ class Ref[A] < Object
448
469
  end
449
470
  ```
450
471
 
472
+ For classes with type parameters, you may specify if they are "invariant" (default), "covariant" (`out`) or "contravariant" (`in`). See [this definition of covariance and contravariance](https://en.wikipedia.org/wiki/Covariance_and_contravariance_(computer_science)).
473
+
474
+ For example, an `Array` of `String` can almost be considered to be an `Array` of `Object`, but not the reverse, so we can think of:
475
+
476
+ ```
477
+ class Array[out T]
478
+ # ...
479
+ end
480
+ ```
481
+
482
+ There's a limitation with this is for mutable objects (like arrays): a mutation could invalidate this.
483
+ If an array of String is passed to a method as an array of Objects, and that method adds an Integer to the array, the promise is broken.
484
+
485
+ In those cases, one must use the `unchecked` keyword:
486
+
487
+ ```
488
+ class Array[unchecked out T]
489
+ # ...
490
+ end
491
+ ```
492
+
493
+ This is how `Array` is actually defined in RBS.
494
+
451
495
  ### Module declaration
452
496
 
453
497
  Module declaration takes optional _self type_ parameter, which defines a constraint about a class when the module is mixed.
@@ -940,8 +940,8 @@ module RBS
940
940
  Definition::Method::TypeDef.new(
941
941
  type: method_type,
942
942
  member: initialize_def.member,
943
- defined_in: nil,
944
- implemented_in: nil
943
+ defined_in: initialize_def.defined_in,
944
+ implemented_in: initialize_def.implemented_in
945
945
  )
946
946
  end,
947
947
  accessibility: :public,
@@ -8,7 +8,7 @@ require 'racc/parser.rb'
8
8
  module RBS
9
9
  class Parser < Racc::Parser
10
10
 
11
- module_eval(<<'...end parser.y/module_eval...', 'parser.y', 1042)
11
+ module_eval(<<'...end parser.y/module_eval...', 'parser.y', 1044)
12
12
 
13
13
  Types = RBS::Types
14
14
  Namespace = RBS::Namespace
@@ -2067,7 +2067,9 @@ module_eval(<<'.,.,', 'parser.y', 472)
2067
2067
 
2068
2068
  module_eval(<<'.,.,', 'parser.y', 477)
2069
2069
  def _reduce_81(val, _values, result)
2070
- location = (val[1] || val[2] || val[3] || val[4]).location + val[5].location
2070
+ reset_variable_scope
2071
+
2072
+ location = (val[1] || val[2] || val[3] || val[4]).location + val[5].location
2071
2073
  type_params = val[1]&.value || []
2072
2074
 
2073
2075
  params = val[2]&.value || empty_params_result
@@ -2094,14 +2096,14 @@ module_eval(<<'.,.,', 'parser.y', 477)
2094
2096
  end
2095
2097
  .,.,
2096
2098
 
2097
- module_eval(<<'.,.,', 'parser.y', 502)
2099
+ module_eval(<<'.,.,', 'parser.y', 504)
2098
2100
  def _reduce_82(val, _values, result)
2099
2101
  result = nil
2100
2102
  result
2101
2103
  end
2102
2104
  .,.,
2103
2105
 
2104
- module_eval(<<'.,.,', 'parser.y', 504)
2106
+ module_eval(<<'.,.,', 'parser.y', 506)
2105
2107
  def _reduce_83(val, _values, result)
2106
2108
  result = LocatedValue.new(value: val[1], location: val[0].location + val[2].location)
2107
2109
 
@@ -2109,14 +2111,14 @@ module_eval(<<'.,.,', 'parser.y', 504)
2109
2111
  end
2110
2112
  .,.,
2111
2113
 
2112
- module_eval(<<'.,.,', 'parser.y', 508)
2114
+ module_eval(<<'.,.,', 'parser.y', 510)
2113
2115
  def _reduce_84(val, _values, result)
2114
2116
  result = nil
2115
2117
  result
2116
2118
  end
2117
2119
  .,.,
2118
2120
 
2119
- module_eval(<<'.,.,', 'parser.y', 510)
2121
+ module_eval(<<'.,.,', 'parser.y', 512)
2120
2122
  def _reduce_85(val, _values, result)
2121
2123
  block = MethodType::Block.new(type: val[1].value, required: true)
2122
2124
  result = LocatedValue.new(value: block, location: val[0].location + val[2].location)
@@ -2125,7 +2127,7 @@ module_eval(<<'.,.,', 'parser.y', 510)
2125
2127
  end
2126
2128
  .,.,
2127
2129
 
2128
- module_eval(<<'.,.,', 'parser.y', 514)
2130
+ module_eval(<<'.,.,', 'parser.y', 516)
2129
2131
  def _reduce_86(val, _values, result)
2130
2132
  block = MethodType::Block.new(type: val[2].value, required: false)
2131
2133
  result = LocatedValue.new(value: block, location: val[0].location + val[3].location)
@@ -2136,7 +2138,7 @@ module_eval(<<'.,.,', 'parser.y', 514)
2136
2138
 
2137
2139
  # reduce 87 omitted
2138
2140
 
2139
- module_eval(<<'.,.,', 'parser.y', 521)
2141
+ module_eval(<<'.,.,', 'parser.y', 523)
2140
2142
  def _reduce_88(val, _values, result)
2141
2143
  result = LocatedValue.new(value: val[0].value.to_sym,
2142
2144
  location: val[0].location + val[1].location)
@@ -2163,7 +2165,7 @@ module_eval(<<'.,.,', 'parser.y', 521)
2163
2165
 
2164
2166
  # reduce 97 omitted
2165
2167
 
2166
- module_eval(<<'.,.,', 'parser.y', 530)
2168
+ module_eval(<<'.,.,', 'parser.y', 532)
2167
2169
  def _reduce_98(val, _values, result)
2168
2170
  unless val[0].location.pred?(val[1].location)
2169
2171
  raise SyntaxError.new(token_str: "kQUESTION", error_value: val[1])
@@ -2176,7 +2178,7 @@ module_eval(<<'.,.,', 'parser.y', 530)
2176
2178
  end
2177
2179
  .,.,
2178
2180
 
2179
- module_eval(<<'.,.,', 'parser.y', 538)
2181
+ module_eval(<<'.,.,', 'parser.y', 540)
2180
2182
  def _reduce_99(val, _values, result)
2181
2183
  unless val[0].location.pred?(val[1].location)
2182
2184
  raise SyntaxError.new(token_str: "kEXCLAMATION", error_value: val[1])
@@ -2269,14 +2271,14 @@ module_eval(<<'.,.,', 'parser.y', 538)
2269
2271
 
2270
2272
  # reduce 139 omitted
2271
2273
 
2272
- module_eval(<<'.,.,', 'parser.y', 558)
2274
+ module_eval(<<'.,.,', 'parser.y', 560)
2273
2275
  def _reduce_140(val, _values, result)
2274
2276
  result = nil
2275
2277
  result
2276
2278
  end
2277
2279
  .,.,
2278
2280
 
2279
- module_eval(<<'.,.,', 'parser.y', 560)
2281
+ module_eval(<<'.,.,', 'parser.y', 562)
2280
2282
  def _reduce_141(val, _values, result)
2281
2283
  val[1].each {|p| insert_bound_variable(p.name) }
2282
2284
 
@@ -2286,7 +2288,7 @@ module_eval(<<'.,.,', 'parser.y', 560)
2286
2288
  end
2287
2289
  .,.,
2288
2290
 
2289
- module_eval(<<'.,.,', 'parser.y', 567)
2291
+ module_eval(<<'.,.,', 'parser.y', 569)
2290
2292
  def _reduce_142(val, _values, result)
2291
2293
  result = Declarations::ModuleTypeParams.new()
2292
2294
  result.add(val[0])
@@ -2295,7 +2297,7 @@ module_eval(<<'.,.,', 'parser.y', 567)
2295
2297
  end
2296
2298
  .,.,
2297
2299
 
2298
- module_eval(<<'.,.,', 'parser.y', 571)
2300
+ module_eval(<<'.,.,', 'parser.y', 573)
2299
2301
  def _reduce_143(val, _values, result)
2300
2302
  result = val[0].add(val[2])
2301
2303
 
@@ -2303,7 +2305,7 @@ module_eval(<<'.,.,', 'parser.y', 571)
2303
2305
  end
2304
2306
  .,.,
2305
2307
 
2306
- module_eval(<<'.,.,', 'parser.y', 576)
2308
+ module_eval(<<'.,.,', 'parser.y', 578)
2307
2309
  def _reduce_144(val, _values, result)
2308
2310
  result = Declarations::ModuleTypeParams::TypeParam.new(name: val[2].value.to_sym,
2309
2311
  variance: val[1],
@@ -2313,49 +2315,49 @@ module_eval(<<'.,.,', 'parser.y', 576)
2313
2315
  end
2314
2316
  .,.,
2315
2317
 
2316
- module_eval(<<'.,.,', 'parser.y', 582)
2318
+ module_eval(<<'.,.,', 'parser.y', 584)
2317
2319
  def _reduce_145(val, _values, result)
2318
2320
  result = :invariant
2319
2321
  result
2320
2322
  end
2321
2323
  .,.,
2322
2324
 
2323
- module_eval(<<'.,.,', 'parser.y', 583)
2325
+ module_eval(<<'.,.,', 'parser.y', 585)
2324
2326
  def _reduce_146(val, _values, result)
2325
2327
  result = :covariant
2326
2328
  result
2327
2329
  end
2328
2330
  .,.,
2329
2331
 
2330
- module_eval(<<'.,.,', 'parser.y', 584)
2332
+ module_eval(<<'.,.,', 'parser.y', 586)
2331
2333
  def _reduce_147(val, _values, result)
2332
2334
  result = :contravariant
2333
2335
  result
2334
2336
  end
2335
2337
  .,.,
2336
2338
 
2337
- module_eval(<<'.,.,', 'parser.y', 587)
2339
+ module_eval(<<'.,.,', 'parser.y', 589)
2338
2340
  def _reduce_148(val, _values, result)
2339
2341
  result = false
2340
2342
  result
2341
2343
  end
2342
2344
  .,.,
2343
2345
 
2344
- module_eval(<<'.,.,', 'parser.y', 588)
2346
+ module_eval(<<'.,.,', 'parser.y', 590)
2345
2347
  def _reduce_149(val, _values, result)
2346
2348
  result = true
2347
2349
  result
2348
2350
  end
2349
2351
  .,.,
2350
2352
 
2351
- module_eval(<<'.,.,', 'parser.y', 591)
2353
+ module_eval(<<'.,.,', 'parser.y', 593)
2352
2354
  def _reduce_150(val, _values, result)
2353
2355
  result = nil
2354
2356
  result
2355
2357
  end
2356
2358
  .,.,
2357
2359
 
2358
- module_eval(<<'.,.,', 'parser.y', 593)
2360
+ module_eval(<<'.,.,', 'parser.y', 595)
2359
2361
  def _reduce_151(val, _values, result)
2360
2362
  val[1].each {|var| insert_bound_variable(var) }
2361
2363
 
@@ -2366,7 +2368,7 @@ module_eval(<<'.,.,', 'parser.y', 593)
2366
2368
  end
2367
2369
  .,.,
2368
2370
 
2369
- module_eval(<<'.,.,', 'parser.y', 601)
2371
+ module_eval(<<'.,.,', 'parser.y', 603)
2370
2372
  def _reduce_152(val, _values, result)
2371
2373
  result = [val[0].value.to_sym]
2372
2374
 
@@ -2374,7 +2376,7 @@ module_eval(<<'.,.,', 'parser.y', 601)
2374
2376
  end
2375
2377
  .,.,
2376
2378
 
2377
- module_eval(<<'.,.,', 'parser.y', 604)
2379
+ module_eval(<<'.,.,', 'parser.y', 606)
2378
2380
  def _reduce_153(val, _values, result)
2379
2381
  result = val[0].push(val[2].value.to_sym)
2380
2382
 
@@ -2382,7 +2384,7 @@ module_eval(<<'.,.,', 'parser.y', 604)
2382
2384
  end
2383
2385
  .,.,
2384
2386
 
2385
- module_eval(<<'.,.,', 'parser.y', 609)
2387
+ module_eval(<<'.,.,', 'parser.y', 611)
2386
2388
  def _reduce_154(val, _values, result)
2387
2389
  location = val[1].location + val[3].location
2388
2390
  result = Members::Alias.new(
@@ -2398,7 +2400,7 @@ module_eval(<<'.,.,', 'parser.y', 609)
2398
2400
  end
2399
2401
  .,.,
2400
2402
 
2401
- module_eval(<<'.,.,', 'parser.y', 620)
2403
+ module_eval(<<'.,.,', 'parser.y', 622)
2402
2404
  def _reduce_155(val, _values, result)
2403
2405
  location = val[1].location + val[7].location
2404
2406
  result = Members::Alias.new(
@@ -2414,7 +2416,7 @@ module_eval(<<'.,.,', 'parser.y', 620)
2414
2416
  end
2415
2417
  .,.,
2416
2418
 
2417
- module_eval(<<'.,.,', 'parser.y', 633)
2419
+ module_eval(<<'.,.,', 'parser.y', 635)
2418
2420
  def _reduce_156(val, _values, result)
2419
2421
  location = val[1].location + val[4].location
2420
2422
  result = Declarations::Alias.new(name: val[2].value,
@@ -2427,7 +2429,7 @@ module_eval(<<'.,.,', 'parser.y', 633)
2427
2429
  end
2428
2430
  .,.,
2429
2431
 
2430
- module_eval(<<'.,.,', 'parser.y', 643)
2432
+ module_eval(<<'.,.,', 'parser.y', 645)
2431
2433
  def _reduce_157(val, _values, result)
2432
2434
  location = val[0].location + val[2].location
2433
2435
  result = Declarations::Constant.new(name: val[0].value,
@@ -2439,7 +2441,7 @@ module_eval(<<'.,.,', 'parser.y', 643)
2439
2441
  end
2440
2442
  .,.,
2441
2443
 
2442
- module_eval(<<'.,.,', 'parser.y', 650)
2444
+ module_eval(<<'.,.,', 'parser.y', 652)
2443
2445
  def _reduce_158(val, _values, result)
2444
2446
  location = (val[0] || val[1]).location + val[2].location
2445
2447
  name = TypeName.new(name: val[1].value, namespace: val[0]&.value || Namespace.empty)
@@ -2452,7 +2454,7 @@ module_eval(<<'.,.,', 'parser.y', 650)
2452
2454
  end
2453
2455
  .,.,
2454
2456
 
2455
- module_eval(<<'.,.,', 'parser.y', 660)
2457
+ module_eval(<<'.,.,', 'parser.y', 662)
2456
2458
  def _reduce_159(val, _values, result)
2457
2459
  location = val[0].location + val[2].location
2458
2460
  result = Declarations::Global.new(name: val[0].value.to_sym,
@@ -2466,7 +2468,7 @@ module_eval(<<'.,.,', 'parser.y', 660)
2466
2468
 
2467
2469
  # reduce 160 omitted
2468
2470
 
2469
- module_eval(<<'.,.,', 'parser.y', 670)
2471
+ module_eval(<<'.,.,', 'parser.y', 672)
2470
2472
  def _reduce_161(val, _values, result)
2471
2473
  types = case l = val[0]
2472
2474
  when Types::Union
@@ -2481,7 +2483,7 @@ module_eval(<<'.,.,', 'parser.y', 670)
2481
2483
  end
2482
2484
  .,.,
2483
2485
 
2484
- module_eval(<<'.,.,', 'parser.y', 680)
2486
+ module_eval(<<'.,.,', 'parser.y', 682)
2485
2487
  def _reduce_162(val, _values, result)
2486
2488
  types = case l = val[0]
2487
2489
  when Types::Intersection
@@ -2497,7 +2499,7 @@ module_eval(<<'.,.,', 'parser.y', 680)
2497
2499
  end
2498
2500
  .,.,
2499
2501
 
2500
- module_eval(<<'.,.,', 'parser.y', 693)
2502
+ module_eval(<<'.,.,', 'parser.y', 695)
2501
2503
  def _reduce_163(val, _values, result)
2502
2504
  result = Types::Bases::Void.new(location: val[0].location)
2503
2505
 
@@ -2505,7 +2507,7 @@ module_eval(<<'.,.,', 'parser.y', 693)
2505
2507
  end
2506
2508
  .,.,
2507
2509
 
2508
- module_eval(<<'.,.,', 'parser.y', 696)
2510
+ module_eval(<<'.,.,', 'parser.y', 698)
2509
2511
  def _reduce_164(val, _values, result)
2510
2512
  RBS.logger.warn "`any` type is deprecated. Use `untyped` instead. (#{val[0].location.to_s})"
2511
2513
  result = Types::Bases::Any.new(location: val[0].location)
@@ -2514,7 +2516,7 @@ module_eval(<<'.,.,', 'parser.y', 696)
2514
2516
  end
2515
2517
  .,.,
2516
2518
 
2517
- module_eval(<<'.,.,', 'parser.y', 700)
2519
+ module_eval(<<'.,.,', 'parser.y', 702)
2518
2520
  def _reduce_165(val, _values, result)
2519
2521
  result = Types::Bases::Any.new(location: val[0].location)
2520
2522
 
@@ -2522,7 +2524,7 @@ module_eval(<<'.,.,', 'parser.y', 700)
2522
2524
  end
2523
2525
  .,.,
2524
2526
 
2525
- module_eval(<<'.,.,', 'parser.y', 703)
2527
+ module_eval(<<'.,.,', 'parser.y', 705)
2526
2528
  def _reduce_166(val, _values, result)
2527
2529
  result = Types::Bases::Bool.new(location: val[0].location)
2528
2530
 
@@ -2530,7 +2532,7 @@ module_eval(<<'.,.,', 'parser.y', 703)
2530
2532
  end
2531
2533
  .,.,
2532
2534
 
2533
- module_eval(<<'.,.,', 'parser.y', 706)
2535
+ module_eval(<<'.,.,', 'parser.y', 708)
2534
2536
  def _reduce_167(val, _values, result)
2535
2537
  result = Types::Bases::Nil.new(location: val[0].location)
2536
2538
 
@@ -2538,7 +2540,7 @@ module_eval(<<'.,.,', 'parser.y', 706)
2538
2540
  end
2539
2541
  .,.,
2540
2542
 
2541
- module_eval(<<'.,.,', 'parser.y', 709)
2543
+ module_eval(<<'.,.,', 'parser.y', 711)
2542
2544
  def _reduce_168(val, _values, result)
2543
2545
  result = Types::Bases::Top.new(location: val[0].location)
2544
2546
 
@@ -2546,7 +2548,7 @@ module_eval(<<'.,.,', 'parser.y', 709)
2546
2548
  end
2547
2549
  .,.,
2548
2550
 
2549
- module_eval(<<'.,.,', 'parser.y', 712)
2551
+ module_eval(<<'.,.,', 'parser.y', 714)
2550
2552
  def _reduce_169(val, _values, result)
2551
2553
  result = Types::Bases::Bottom.new(location: val[0].location)
2552
2554
 
@@ -2554,7 +2556,7 @@ module_eval(<<'.,.,', 'parser.y', 712)
2554
2556
  end
2555
2557
  .,.,
2556
2558
 
2557
- module_eval(<<'.,.,', 'parser.y', 715)
2559
+ module_eval(<<'.,.,', 'parser.y', 717)
2558
2560
  def _reduce_170(val, _values, result)
2559
2561
  result = Types::Bases::Self.new(location: val[0].location)
2560
2562
 
@@ -2562,7 +2564,7 @@ module_eval(<<'.,.,', 'parser.y', 715)
2562
2564
  end
2563
2565
  .,.,
2564
2566
 
2565
- module_eval(<<'.,.,', 'parser.y', 718)
2567
+ module_eval(<<'.,.,', 'parser.y', 720)
2566
2568
  def _reduce_171(val, _values, result)
2567
2569
  result = Types::Optional.new(type: Types::Bases::Self.new(location: val[0].location),
2568
2570
  location: val[0].location)
@@ -2571,7 +2573,7 @@ module_eval(<<'.,.,', 'parser.y', 718)
2571
2573
  end
2572
2574
  .,.,
2573
2575
 
2574
- module_eval(<<'.,.,', 'parser.y', 722)
2576
+ module_eval(<<'.,.,', 'parser.y', 724)
2575
2577
  def _reduce_172(val, _values, result)
2576
2578
  result = Types::Bases::Instance.new(location: val[0].location)
2577
2579
 
@@ -2579,7 +2581,7 @@ module_eval(<<'.,.,', 'parser.y', 722)
2579
2581
  end
2580
2582
  .,.,
2581
2583
 
2582
- module_eval(<<'.,.,', 'parser.y', 725)
2584
+ module_eval(<<'.,.,', 'parser.y', 727)
2583
2585
  def _reduce_173(val, _values, result)
2584
2586
  result = Types::Bases::Class.new(location: val[0].location)
2585
2587
 
@@ -2587,7 +2589,7 @@ module_eval(<<'.,.,', 'parser.y', 725)
2587
2589
  end
2588
2590
  .,.,
2589
2591
 
2590
- module_eval(<<'.,.,', 'parser.y', 728)
2592
+ module_eval(<<'.,.,', 'parser.y', 730)
2591
2593
  def _reduce_174(val, _values, result)
2592
2594
  result = Types::Literal.new(literal: true, location: val[0].location)
2593
2595
 
@@ -2595,7 +2597,7 @@ module_eval(<<'.,.,', 'parser.y', 728)
2595
2597
  end
2596
2598
  .,.,
2597
2599
 
2598
- module_eval(<<'.,.,', 'parser.y', 731)
2600
+ module_eval(<<'.,.,', 'parser.y', 733)
2599
2601
  def _reduce_175(val, _values, result)
2600
2602
  result = Types::Literal.new(literal: false, location: val[0].location)
2601
2603
 
@@ -2603,7 +2605,7 @@ module_eval(<<'.,.,', 'parser.y', 731)
2603
2605
  end
2604
2606
  .,.,
2605
2607
 
2606
- module_eval(<<'.,.,', 'parser.y', 734)
2608
+ module_eval(<<'.,.,', 'parser.y', 736)
2607
2609
  def _reduce_176(val, _values, result)
2608
2610
  result = Types::Literal.new(literal: val[0].value, location: val[0].location)
2609
2611
 
@@ -2611,7 +2613,7 @@ module_eval(<<'.,.,', 'parser.y', 734)
2611
2613
  end
2612
2614
  .,.,
2613
2615
 
2614
- module_eval(<<'.,.,', 'parser.y', 737)
2616
+ module_eval(<<'.,.,', 'parser.y', 739)
2615
2617
  def _reduce_177(val, _values, result)
2616
2618
  result = Types::Literal.new(literal: val[0].value, location: val[0].location)
2617
2619
 
@@ -2619,7 +2621,7 @@ module_eval(<<'.,.,', 'parser.y', 737)
2619
2621
  end
2620
2622
  .,.,
2621
2623
 
2622
- module_eval(<<'.,.,', 'parser.y', 740)
2624
+ module_eval(<<'.,.,', 'parser.y', 742)
2623
2625
  def _reduce_178(val, _values, result)
2624
2626
  result = Types::Literal.new(literal: val[0].value, location: val[0].location)
2625
2627
 
@@ -2627,7 +2629,7 @@ module_eval(<<'.,.,', 'parser.y', 740)
2627
2629
  end
2628
2630
  .,.,
2629
2631
 
2630
- module_eval(<<'.,.,', 'parser.y', 743)
2632
+ module_eval(<<'.,.,', 'parser.y', 745)
2631
2633
  def _reduce_179(val, _values, result)
2632
2634
  name = val[0].value
2633
2635
  args = []
@@ -2650,7 +2652,7 @@ module_eval(<<'.,.,', 'parser.y', 743)
2650
2652
  end
2651
2653
  .,.,
2652
2654
 
2653
- module_eval(<<'.,.,', 'parser.y', 761)
2655
+ module_eval(<<'.,.,', 'parser.y', 763)
2654
2656
  def _reduce_180(val, _values, result)
2655
2657
  name = val[0].value
2656
2658
  args = val[2]
@@ -2672,7 +2674,7 @@ module_eval(<<'.,.,', 'parser.y', 761)
2672
2674
  end
2673
2675
  .,.,
2674
2676
 
2675
- module_eval(<<'.,.,', 'parser.y', 778)
2677
+ module_eval(<<'.,.,', 'parser.y', 780)
2676
2678
  def _reduce_181(val, _values, result)
2677
2679
  location = val[0].location + val[1].location
2678
2680
  result = Types::Tuple.new(types: [], location: location)
@@ -2681,7 +2683,7 @@ module_eval(<<'.,.,', 'parser.y', 778)
2681
2683
  end
2682
2684
  .,.,
2683
2685
 
2684
- module_eval(<<'.,.,', 'parser.y', 782)
2686
+ module_eval(<<'.,.,', 'parser.y', 784)
2685
2687
  def _reduce_182(val, _values, result)
2686
2688
  location = val[0].location + val[2].location
2687
2689
  types = val[1]
@@ -2691,7 +2693,7 @@ module_eval(<<'.,.,', 'parser.y', 782)
2691
2693
  end
2692
2694
  .,.,
2693
2695
 
2694
- module_eval(<<'.,.,', 'parser.y', 787)
2696
+ module_eval(<<'.,.,', 'parser.y', 789)
2695
2697
  def _reduce_183(val, _values, result)
2696
2698
  type = val[1].dup
2697
2699
  type.instance_eval do
@@ -2703,7 +2705,7 @@ module_eval(<<'.,.,', 'parser.y', 787)
2703
2705
  end
2704
2706
  .,.,
2705
2707
 
2706
- module_eval(<<'.,.,', 'parser.y', 794)
2708
+ module_eval(<<'.,.,', 'parser.y', 796)
2707
2709
  def _reduce_184(val, _values, result)
2708
2710
  result = Types::ClassSingleton.new(name: val[2].value,
2709
2711
  location: val[0].location + val[3].location)
@@ -2712,7 +2714,7 @@ module_eval(<<'.,.,', 'parser.y', 794)
2712
2714
  end
2713
2715
  .,.,
2714
2716
 
2715
- module_eval(<<'.,.,', 'parser.y', 798)
2717
+ module_eval(<<'.,.,', 'parser.y', 800)
2716
2718
  def _reduce_185(val, _values, result)
2717
2719
  result = Types::Proc.new(type: val[1].value, location: val[0].location + val[1].location)
2718
2720
 
@@ -2720,7 +2722,7 @@ module_eval(<<'.,.,', 'parser.y', 798)
2720
2722
  end
2721
2723
  .,.,
2722
2724
 
2723
- module_eval(<<'.,.,', 'parser.y', 801)
2725
+ module_eval(<<'.,.,', 'parser.y', 803)
2724
2726
  def _reduce_186(val, _values, result)
2725
2727
  result = Types::Optional.new(type: val[0], location: val[0].location + val[1].location)
2726
2728
 
@@ -2730,7 +2732,7 @@ module_eval(<<'.,.,', 'parser.y', 801)
2730
2732
 
2731
2733
  # reduce 187 omitted
2732
2734
 
2733
- module_eval(<<'.,.,', 'parser.y', 807)
2735
+ module_eval(<<'.,.,', 'parser.y', 809)
2734
2736
  def _reduce_188(val, _values, result)
2735
2737
  result = [val[0]]
2736
2738
 
@@ -2738,7 +2740,7 @@ module_eval(<<'.,.,', 'parser.y', 807)
2738
2740
  end
2739
2741
  .,.,
2740
2742
 
2741
- module_eval(<<'.,.,', 'parser.y', 810)
2743
+ module_eval(<<'.,.,', 'parser.y', 812)
2742
2744
  def _reduce_189(val, _values, result)
2743
2745
  result = val[0] + [val[2]]
2744
2746
 
@@ -2746,7 +2748,7 @@ module_eval(<<'.,.,', 'parser.y', 810)
2746
2748
  end
2747
2749
  .,.,
2748
2750
 
2749
- module_eval(<<'.,.,', 'parser.y', 815)
2751
+ module_eval(<<'.,.,', 'parser.y', 817)
2750
2752
  def _reduce_190(val, _values, result)
2751
2753
  result = Types::Record.new(
2752
2754
  fields: val[1],
@@ -2757,7 +2759,7 @@ module_eval(<<'.,.,', 'parser.y', 815)
2757
2759
  end
2758
2760
  .,.,
2759
2761
 
2760
- module_eval(<<'.,.,', 'parser.y', 823)
2762
+ module_eval(<<'.,.,', 'parser.y', 825)
2761
2763
  def _reduce_191(val, _values, result)
2762
2764
  result = val[0]
2763
2765
 
@@ -2765,7 +2767,7 @@ module_eval(<<'.,.,', 'parser.y', 823)
2765
2767
  end
2766
2768
  .,.,
2767
2769
 
2768
- module_eval(<<'.,.,', 'parser.y', 826)
2770
+ module_eval(<<'.,.,', 'parser.y', 828)
2769
2771
  def _reduce_192(val, _values, result)
2770
2772
  result = val[0].merge!(val[2])
2771
2773
 
@@ -2773,7 +2775,7 @@ module_eval(<<'.,.,', 'parser.y', 826)
2773
2775
  end
2774
2776
  .,.,
2775
2777
 
2776
- module_eval(<<'.,.,', 'parser.y', 831)
2778
+ module_eval(<<'.,.,', 'parser.y', 833)
2777
2779
  def _reduce_193(val, _values, result)
2778
2780
  result = { val[0].value => val[2] }
2779
2781
 
@@ -2781,7 +2783,7 @@ module_eval(<<'.,.,', 'parser.y', 831)
2781
2783
  end
2782
2784
  .,.,
2783
2785
 
2784
- module_eval(<<'.,.,', 'parser.y', 834)
2786
+ module_eval(<<'.,.,', 'parser.y', 836)
2785
2787
  def _reduce_194(val, _values, result)
2786
2788
  result = { val[0].value => val[2] }
2787
2789
 
@@ -2789,7 +2791,7 @@ module_eval(<<'.,.,', 'parser.y', 834)
2789
2791
  end
2790
2792
  .,.,
2791
2793
 
2792
- module_eval(<<'.,.,', 'parser.y', 837)
2794
+ module_eval(<<'.,.,', 'parser.y', 839)
2793
2795
  def _reduce_195(val, _values, result)
2794
2796
  result = { val[0].value => val[2] }
2795
2797
 
@@ -2797,7 +2799,7 @@ module_eval(<<'.,.,', 'parser.y', 837)
2797
2799
  end
2798
2800
  .,.,
2799
2801
 
2800
- module_eval(<<'.,.,', 'parser.y', 840)
2802
+ module_eval(<<'.,.,', 'parser.y', 842)
2801
2803
  def _reduce_196(val, _values, result)
2802
2804
  result = { val[0].value => val[1] }
2803
2805
 
@@ -2807,7 +2809,7 @@ module_eval(<<'.,.,', 'parser.y', 840)
2807
2809
 
2808
2810
  # reduce 197 omitted
2809
2811
 
2810
- module_eval(<<'.,.,', 'parser.y', 846)
2812
+ module_eval(<<'.,.,', 'parser.y', 848)
2811
2813
  def _reduce_198(val, _values, result)
2812
2814
  result = val[0]
2813
2815
 
@@ -2823,7 +2825,7 @@ module_eval(<<'.,.,', 'parser.y', 846)
2823
2825
 
2824
2826
  # reduce 202 omitted
2825
2827
 
2826
- module_eval(<<'.,.,', 'parser.y', 853)
2828
+ module_eval(<<'.,.,', 'parser.y', 855)
2827
2829
  def _reduce_203(val, _values, result)
2828
2830
  location = val[0].location + val[4].location
2829
2831
  type = Types::Function.new(
@@ -2843,7 +2845,7 @@ module_eval(<<'.,.,', 'parser.y', 853)
2843
2845
  end
2844
2846
  .,.,
2845
2847
 
2846
- module_eval(<<'.,.,', 'parser.y', 868)
2848
+ module_eval(<<'.,.,', 'parser.y', 870)
2847
2849
  def _reduce_204(val, _values, result)
2848
2850
  location = val[0].location + val[1].location
2849
2851
  type = Types::Function.new(
@@ -2854,7 +2856,7 @@ module_eval(<<'.,.,', 'parser.y', 868)
2854
2856
  required_keywords: {},
2855
2857
  optional_keywords: {},
2856
2858
  rest_keywords: nil,
2857
- return_type: val[2]
2859
+ return_type: val[1]
2858
2860
  )
2859
2861
 
2860
2862
  result = LocatedValue.new(value: type, location: location)
@@ -2863,7 +2865,7 @@ module_eval(<<'.,.,', 'parser.y', 868)
2863
2865
  end
2864
2866
  .,.,
2865
2867
 
2866
- module_eval(<<'.,.,', 'parser.y', 885)
2868
+ module_eval(<<'.,.,', 'parser.y', 887)
2867
2869
  def _reduce_205(val, _values, result)
2868
2870
  result = val[2]
2869
2871
  result[0].unshift(val[0])
@@ -2872,7 +2874,7 @@ module_eval(<<'.,.,', 'parser.y', 885)
2872
2874
  end
2873
2875
  .,.,
2874
2876
 
2875
- module_eval(<<'.,.,', 'parser.y', 889)
2877
+ module_eval(<<'.,.,', 'parser.y', 891)
2876
2878
  def _reduce_206(val, _values, result)
2877
2879
  result = empty_params_result
2878
2880
  result[0].unshift(val[0])
@@ -2883,7 +2885,7 @@ module_eval(<<'.,.,', 'parser.y', 889)
2883
2885
 
2884
2886
  # reduce 207 omitted
2885
2887
 
2886
- module_eval(<<'.,.,', 'parser.y', 896)
2888
+ module_eval(<<'.,.,', 'parser.y', 898)
2887
2889
  def _reduce_208(val, _values, result)
2888
2890
  result = val[2]
2889
2891
  result[1].unshift(val[0])
@@ -2892,7 +2894,7 @@ module_eval(<<'.,.,', 'parser.y', 896)
2892
2894
  end
2893
2895
  .,.,
2894
2896
 
2895
- module_eval(<<'.,.,', 'parser.y', 900)
2897
+ module_eval(<<'.,.,', 'parser.y', 902)
2896
2898
  def _reduce_209(val, _values, result)
2897
2899
  result = empty_params_result
2898
2900
  result[1].unshift(val[0])
@@ -2903,7 +2905,7 @@ module_eval(<<'.,.,', 'parser.y', 900)
2903
2905
 
2904
2906
  # reduce 210 omitted
2905
2907
 
2906
- module_eval(<<'.,.,', 'parser.y', 907)
2908
+ module_eval(<<'.,.,', 'parser.y', 909)
2907
2909
  def _reduce_211(val, _values, result)
2908
2910
  result = val[2]
2909
2911
  result[2] = val[0]
@@ -2912,7 +2914,7 @@ module_eval(<<'.,.,', 'parser.y', 907)
2912
2914
  end
2913
2915
  .,.,
2914
2916
 
2915
- module_eval(<<'.,.,', 'parser.y', 911)
2917
+ module_eval(<<'.,.,', 'parser.y', 913)
2916
2918
  def _reduce_212(val, _values, result)
2917
2919
  result = empty_params_result
2918
2920
  result[2] = val[0]
@@ -2923,7 +2925,7 @@ module_eval(<<'.,.,', 'parser.y', 911)
2923
2925
 
2924
2926
  # reduce 213 omitted
2925
2927
 
2926
- module_eval(<<'.,.,', 'parser.y', 918)
2928
+ module_eval(<<'.,.,', 'parser.y', 920)
2927
2929
  def _reduce_214(val, _values, result)
2928
2930
  result = val[2]
2929
2931
  result[3].unshift(val[0])
@@ -2932,7 +2934,7 @@ module_eval(<<'.,.,', 'parser.y', 918)
2932
2934
  end
2933
2935
  .,.,
2934
2936
 
2935
- module_eval(<<'.,.,', 'parser.y', 922)
2937
+ module_eval(<<'.,.,', 'parser.y', 924)
2936
2938
  def _reduce_215(val, _values, result)
2937
2939
  result = empty_params_result
2938
2940
  result[3].unshift(val[0])
@@ -2943,7 +2945,7 @@ module_eval(<<'.,.,', 'parser.y', 922)
2943
2945
 
2944
2946
  # reduce 216 omitted
2945
2947
 
2946
- module_eval(<<'.,.,', 'parser.y', 929)
2948
+ module_eval(<<'.,.,', 'parser.y', 931)
2947
2949
  def _reduce_217(val, _values, result)
2948
2950
  result = empty_params_result
2949
2951
 
@@ -2951,7 +2953,7 @@ module_eval(<<'.,.,', 'parser.y', 929)
2951
2953
  end
2952
2954
  .,.,
2953
2955
 
2954
- module_eval(<<'.,.,', 'parser.y', 932)
2956
+ module_eval(<<'.,.,', 'parser.y', 934)
2955
2957
  def _reduce_218(val, _values, result)
2956
2958
  result = val[2]
2957
2959
  result[4].merge!(val[0])
@@ -2960,7 +2962,7 @@ module_eval(<<'.,.,', 'parser.y', 932)
2960
2962
  end
2961
2963
  .,.,
2962
2964
 
2963
- module_eval(<<'.,.,', 'parser.y', 936)
2965
+ module_eval(<<'.,.,', 'parser.y', 938)
2964
2966
  def _reduce_219(val, _values, result)
2965
2967
  result = empty_params_result
2966
2968
  result[4].merge!(val[0])
@@ -2969,7 +2971,7 @@ module_eval(<<'.,.,', 'parser.y', 936)
2969
2971
  end
2970
2972
  .,.,
2971
2973
 
2972
- module_eval(<<'.,.,', 'parser.y', 940)
2974
+ module_eval(<<'.,.,', 'parser.y', 942)
2973
2975
  def _reduce_220(val, _values, result)
2974
2976
  result = val[2]
2975
2977
  result[5].merge!(val[0])
@@ -2978,7 +2980,7 @@ module_eval(<<'.,.,', 'parser.y', 940)
2978
2980
  end
2979
2981
  .,.,
2980
2982
 
2981
- module_eval(<<'.,.,', 'parser.y', 944)
2983
+ module_eval(<<'.,.,', 'parser.y', 946)
2982
2984
  def _reduce_221(val, _values, result)
2983
2985
  result = empty_params_result
2984
2986
  result[5].merge!(val[0])
@@ -2987,7 +2989,7 @@ module_eval(<<'.,.,', 'parser.y', 944)
2987
2989
  end
2988
2990
  .,.,
2989
2991
 
2990
- module_eval(<<'.,.,', 'parser.y', 948)
2992
+ module_eval(<<'.,.,', 'parser.y', 950)
2991
2993
  def _reduce_222(val, _values, result)
2992
2994
  result = empty_params_result
2993
2995
  result[6] = val[0]
@@ -2996,7 +2998,7 @@ module_eval(<<'.,.,', 'parser.y', 948)
2996
2998
  end
2997
2999
  .,.,
2998
3000
 
2999
- module_eval(<<'.,.,', 'parser.y', 954)
3001
+ module_eval(<<'.,.,', 'parser.y', 956)
3000
3002
  def _reduce_223(val, _values, result)
3001
3003
  result = Types::Function::Param.new(type: val[0],
3002
3004
  name: val[1]&.value&.to_sym)
@@ -3005,7 +3007,7 @@ module_eval(<<'.,.,', 'parser.y', 954)
3005
3007
  end
3006
3008
  .,.,
3007
3009
 
3008
- module_eval(<<'.,.,', 'parser.y', 960)
3010
+ module_eval(<<'.,.,', 'parser.y', 962)
3009
3011
  def _reduce_224(val, _values, result)
3010
3012
  result = Types::Function::Param.new(type: val[1],
3011
3013
  name: val[2]&.value&.to_sym)
@@ -3014,7 +3016,7 @@ module_eval(<<'.,.,', 'parser.y', 960)
3014
3016
  end
3015
3017
  .,.,
3016
3018
 
3017
- module_eval(<<'.,.,', 'parser.y', 966)
3019
+ module_eval(<<'.,.,', 'parser.y', 968)
3018
3020
  def _reduce_225(val, _values, result)
3019
3021
  result = Types::Function::Param.new(type: val[1],
3020
3022
  name: val[2]&.value&.to_sym)
@@ -3023,7 +3025,7 @@ module_eval(<<'.,.,', 'parser.y', 966)
3023
3025
  end
3024
3026
  .,.,
3025
3027
 
3026
- module_eval(<<'.,.,', 'parser.y', 972)
3028
+ module_eval(<<'.,.,', 'parser.y', 974)
3027
3029
  def _reduce_226(val, _values, result)
3028
3030
  param = Types::Function::Param.new(type: val[1],
3029
3031
  name: val[2]&.value&.to_sym)
@@ -3033,7 +3035,7 @@ module_eval(<<'.,.,', 'parser.y', 972)
3033
3035
  end
3034
3036
  .,.,
3035
3037
 
3036
- module_eval(<<'.,.,', 'parser.y', 979)
3038
+ module_eval(<<'.,.,', 'parser.y', 981)
3037
3039
  def _reduce_227(val, _values, result)
3038
3040
  param = Types::Function::Param.new(type: val[2],
3039
3041
  name: val[3]&.value&.to_sym)
@@ -3043,7 +3045,7 @@ module_eval(<<'.,.,', 'parser.y', 979)
3043
3045
  end
3044
3046
  .,.,
3045
3047
 
3046
- module_eval(<<'.,.,', 'parser.y', 986)
3048
+ module_eval(<<'.,.,', 'parser.y', 988)
3047
3049
  def _reduce_228(val, _values, result)
3048
3050
  result = Types::Function::Param.new(type: val[1],
3049
3051
  name: val[2]&.value&.to_sym)
@@ -3060,7 +3062,7 @@ module_eval(<<'.,.,', 'parser.y', 986)
3060
3062
 
3061
3063
  # reduce 232 omitted
3062
3064
 
3063
- module_eval(<<'.,.,', 'parser.y', 995)
3065
+ module_eval(<<'.,.,', 'parser.y', 997)
3064
3066
  def _reduce_233(val, _values, result)
3065
3067
  namespace = val[0]&.value || Namespace.empty
3066
3068
  name = val[1].value.to_sym
@@ -3078,7 +3080,7 @@ module_eval(<<'.,.,', 'parser.y', 995)
3078
3080
 
3079
3081
  # reduce 236 omitted
3080
3082
 
3081
- module_eval(<<'.,.,', 'parser.y', 1007)
3083
+ module_eval(<<'.,.,', 'parser.y', 1009)
3082
3084
  def _reduce_237(val, _values, result)
3083
3085
  namespace = val[0]&.value || Namespace.empty
3084
3086
  name = val[1].value.to_sym
@@ -3090,7 +3092,7 @@ module_eval(<<'.,.,', 'parser.y', 1007)
3090
3092
  end
3091
3093
  .,.,
3092
3094
 
3093
- module_eval(<<'.,.,', 'parser.y', 1016)
3095
+ module_eval(<<'.,.,', 'parser.y', 1018)
3094
3096
  def _reduce_238(val, _values, result)
3095
3097
  namespace = val[0]&.value || Namespace.empty
3096
3098
  name = val[1].value.to_sym
@@ -3102,7 +3104,7 @@ module_eval(<<'.,.,', 'parser.y', 1016)
3102
3104
  end
3103
3105
  .,.,
3104
3106
 
3105
- module_eval(<<'.,.,', 'parser.y', 1025)
3107
+ module_eval(<<'.,.,', 'parser.y', 1027)
3106
3108
  def _reduce_239(val, _values, result)
3107
3109
  result = nil
3108
3110
 
@@ -3110,7 +3112,7 @@ module_eval(<<'.,.,', 'parser.y', 1025)
3110
3112
  end
3111
3113
  .,.,
3112
3114
 
3113
- module_eval(<<'.,.,', 'parser.y', 1028)
3115
+ module_eval(<<'.,.,', 'parser.y', 1030)
3114
3116
  def _reduce_240(val, _values, result)
3115
3117
  result = LocatedValue.new(value: Namespace.root, location: val[0].location)
3116
3118
 
@@ -3118,7 +3120,7 @@ module_eval(<<'.,.,', 'parser.y', 1028)
3118
3120
  end
3119
3121
  .,.,
3120
3122
 
3121
- module_eval(<<'.,.,', 'parser.y', 1031)
3123
+ module_eval(<<'.,.,', 'parser.y', 1033)
3122
3124
  def _reduce_241(val, _values, result)
3123
3125
  namespace = Namespace.parse(val[1].value).absolute!
3124
3126
  result = LocatedValue.new(value: namespace, location: val[0].location + val[1].location)
@@ -3127,7 +3129,7 @@ module_eval(<<'.,.,', 'parser.y', 1031)
3127
3129
  end
3128
3130
  .,.,
3129
3131
 
3130
- module_eval(<<'.,.,', 'parser.y', 1035)
3132
+ module_eval(<<'.,.,', 'parser.y', 1037)
3131
3133
  def _reduce_242(val, _values, result)
3132
3134
  namespace = Namespace.parse(val[0].value)
3133
3135
  result = LocatedValue.new(value: namespace, location: val[0].location)