rigortype 0.0.7 → 0.0.9

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 (44) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +195 -21
  3. data/data/builtins/ruby_core/encoding.yml +210 -0
  4. data/data/builtins/ruby_core/exception.yml +641 -0
  5. data/data/builtins/ruby_core/numeric.yml +3 -2
  6. data/data/builtins/ruby_core/proc.yml +731 -0
  7. data/data/builtins/ruby_core/random.yml +166 -0
  8. data/data/builtins/ruby_core/re.yml +689 -0
  9. data/data/builtins/ruby_core/struct.yml +449 -0
  10. data/lib/rigor/analysis/diagnostic.rb +28 -2
  11. data/lib/rigor/analysis/runner.rb +19 -3
  12. data/lib/rigor/builtins/imported_refinements.rb +6 -1
  13. data/lib/rigor/cache/descriptor.rb +278 -0
  14. data/lib/rigor/cache/rbs_class_ancestor_table.rb +63 -0
  15. data/lib/rigor/cache/rbs_class_type_param_names.rb +60 -0
  16. data/lib/rigor/cache/rbs_constant_table.rb +47 -0
  17. data/lib/rigor/cache/rbs_descriptor.rb +53 -0
  18. data/lib/rigor/cache/rbs_environment.rb +52 -0
  19. data/lib/rigor/cache/rbs_environment_marshal_patch.rb +40 -0
  20. data/lib/rigor/cache/rbs_known_class_names.rb +43 -0
  21. data/lib/rigor/cache/store.rb +325 -0
  22. data/lib/rigor/cli.rb +88 -7
  23. data/lib/rigor/environment/rbs_hierarchy.rb +18 -5
  24. data/lib/rigor/environment/rbs_loader.rb +148 -25
  25. data/lib/rigor/environment.rb +11 -2
  26. data/lib/rigor/flow_contribution.rb +128 -0
  27. data/lib/rigor/inference/builtins/encoding_catalog.rb +67 -0
  28. data/lib/rigor/inference/builtins/exception_catalog.rb +92 -0
  29. data/lib/rigor/inference/builtins/proc_catalog.rb +122 -0
  30. data/lib/rigor/inference/builtins/random_catalog.rb +58 -0
  31. data/lib/rigor/inference/builtins/re_catalog.rb +81 -0
  32. data/lib/rigor/inference/builtins/struct_catalog.rb +55 -0
  33. data/lib/rigor/inference/expression_typer.rb +26 -1
  34. data/lib/rigor/inference/method_dispatcher/constant_folding.rb +16 -1
  35. data/lib/rigor/inference/method_dispatcher/literal_string_folding.rb +87 -0
  36. data/lib/rigor/inference/method_dispatcher.rb +2 -0
  37. data/lib/rigor/inference/narrowing.rb +29 -14
  38. data/lib/rigor/rbs_extended.rb +55 -0
  39. data/lib/rigor/type/combinator.rb +72 -0
  40. data/lib/rigor/type/refined.rb +50 -2
  41. data/lib/rigor/version.rb +1 -1
  42. data/lib/rigor.rb +9 -0
  43. data/sig/rigor.rbs +3 -1
  44. metadata +24 -1
@@ -0,0 +1,731 @@
1
+ # DO NOT EDIT — generated by tool/extract_builtin_catalog.rb
2
+ ---
3
+ schema_version: 1
4
+ generated_from:
5
+ ruby_init_c: references/ruby/proc.c
6
+ ruby_prelude:
7
+ rbs:
8
+ - references/rbs/core/proc.rbs
9
+ - references/rbs/core/method.rbs
10
+ - references/rbs/core/unbound_method.rbs
11
+ purity_levels:
12
+ leaf: Prelude :leaf marker (VM-enforced) or C body uses no dispatch/yield/mutation.
13
+ trivial: Prelude method body is a literal return (self/true/false/nil/Integer).
14
+ leaf_when_numeric: C body falls through to rb_num_coerce_* only when an operand
15
+ is non-numeric; safe to fold when every argument is a concrete numeric.
16
+ inline_block: Prelude method carries :inline_block or :use_block; block-dependent.
17
+ block_dependent: C body yields or checks rb_block_given_p.
18
+ mutates_self: C body checks rb_check_frozen — typically a prelude to mutation.
19
+ dispatch: C body calls user-redefinable methods (rb_funcall*, rb_equal, rb_Float,
20
+ num_funcall*, etc).
21
+ unknown: C body not located in indexed C files.
22
+ classes:
23
+ Proc:
24
+ parent: Object
25
+ defined_at: references/ruby/proc.c:4553
26
+ includes: []
27
+ constants: {}
28
+ aliases:
29
+ inspect:
30
+ old: to_s
31
+ source: c
32
+ defined_at: references/ruby/proc.c:4575
33
+ instance_methods:
34
+ call:
35
+ source: c
36
+ cfunc: proc_call
37
+ arity: -1
38
+ defined_at: references/ruby/proc.c:4563
39
+ c_body_at: references/ruby/proc.c:1104
40
+ c_effects: []
41
+ purity: leaf
42
+ rbs:
43
+ - "(?) -> untyped"
44
+ rbs_at: references/rbs/core/proc.rbs:624
45
+ "[]":
46
+ source: c
47
+ cfunc: proc_call
48
+ arity: -1
49
+ defined_at: references/ruby/proc.c:4564
50
+ c_body_at: references/ruby/proc.c:1104
51
+ c_effects: []
52
+ purity: leaf
53
+ "===":
54
+ source: c
55
+ cfunc: proc_call
56
+ arity: -1
57
+ defined_at: references/ruby/proc.c:4565
58
+ c_body_at: references/ruby/proc.c:1104
59
+ c_effects: []
60
+ purity: leaf
61
+ yield:
62
+ source: c
63
+ cfunc: proc_call
64
+ arity: -1
65
+ defined_at: references/ruby/proc.c:4566
66
+ c_body_at: references/ruby/proc.c:1104
67
+ c_effects: []
68
+ purity: leaf
69
+ to_proc:
70
+ source: c
71
+ cfunc: proc_to_proc
72
+ arity: 0
73
+ defined_at: references/ruby/proc.c:4569
74
+ c_body_at: references/ruby/proc.c:1776
75
+ c_effects: []
76
+ purity: leaf
77
+ rbs:
78
+ - "() -> self"
79
+ rbs_at: references/rbs/core/proc.rbs:889
80
+ arity:
81
+ source: c
82
+ cfunc: proc_arity
83
+ arity: 0
84
+ defined_at: references/ruby/proc.c:4570
85
+ c_body_at: references/ruby/proc.c:1212
86
+ c_effects: []
87
+ purity: leaf
88
+ rbs:
89
+ - "() -> Integer"
90
+ rbs_at: references/rbs/core/proc.rbs:575
91
+ clone:
92
+ source: c
93
+ cfunc: proc_clone
94
+ arity: 0
95
+ defined_at: references/ruby/proc.c:4571
96
+ c_body_at: references/ruby/proc.c:127
97
+ c_effects: []
98
+ purity: leaf
99
+ rbs:
100
+ - "() -> self"
101
+ rbs_at: references/rbs/core/proc.rbs:379
102
+ dup:
103
+ source: c
104
+ cfunc: proc_dup
105
+ arity: 0
106
+ defined_at: references/ruby/proc.c:4572
107
+ c_body_at: references/ruby/proc.c:135
108
+ c_effects: []
109
+ purity: leaf
110
+ hash:
111
+ source: c
112
+ cfunc: proc_hash
113
+ arity: 0
114
+ defined_at: references/ruby/proc.c:4573
115
+ c_body_at: references/ruby/proc.c:1710
116
+ c_effects: []
117
+ purity: leaf
118
+ rbs:
119
+ - "() -> Integer"
120
+ rbs_at: references/rbs/core/proc.rbs:710
121
+ to_s:
122
+ source: c
123
+ cfunc: proc_to_s
124
+ arity: 0
125
+ defined_at: references/ruby/proc.c:4574
126
+ c_body_at: references/ruby/proc.c:1760
127
+ c_effects: []
128
+ purity: leaf
129
+ rbs:
130
+ - "() -> String"
131
+ rbs_at: references/rbs/core/proc.rbs:898
132
+ lambda?:
133
+ source: c
134
+ cfunc: rb_proc_lambda_p
135
+ arity: 0
136
+ defined_at: references/ruby/proc.c:4576
137
+ c_body_at: references/ruby/proc.c:245
138
+ c_effects: []
139
+ purity: leaf
140
+ rbs:
141
+ - "() -> bool"
142
+ rbs_at: references/rbs/core/proc.rbs:813
143
+ binding:
144
+ source: c
145
+ cfunc: proc_binding
146
+ arity: 0
147
+ defined_at: references/ruby/proc.c:4577
148
+ c_body_at: references/ruby/proc.c:3683
149
+ c_effects:
150
+ - raises
151
+ purity: leaf
152
+ rbs:
153
+ - "() -> Binding"
154
+ rbs_at: references/rbs/core/proc.rbs:590
155
+ curry:
156
+ source: c
157
+ cfunc: proc_curry
158
+ arity: -1
159
+ defined_at: references/ruby/proc.c:4578
160
+ c_body_at: references/ruby/proc.c:3841
161
+ c_effects: []
162
+ purity: leaf
163
+ rbs:
164
+ - "(?int? arity) -> Proc"
165
+ rbs_at: references/rbs/core/proc.rbs:700
166
+ !!str '<<':
167
+ source: c
168
+ cfunc: proc_compose_to_left
169
+ arity: 1
170
+ defined_at: references/ruby/proc.c:4579
171
+ c_body_at: references/ruby/proc.c:3946
172
+ c_effects: []
173
+ purity: leaf
174
+ rbs:
175
+ - "(_Callable callable) -> Proc"
176
+ rbs_at: references/rbs/core/proc.rbs:453
177
+ ">>":
178
+ source: c
179
+ cfunc: proc_compose_to_right
180
+ arity: 1
181
+ defined_at: references/ruby/proc.c:4580
182
+ c_body_at: references/ruby/proc.c:4005
183
+ c_effects: []
184
+ purity: leaf
185
+ rbs:
186
+ - "(_Callable callable) -> Proc"
187
+ rbs_at: references/rbs/core/proc.rbs:481
188
+ "==":
189
+ source: c
190
+ cfunc: proc_eq
191
+ arity: 1
192
+ defined_at: references/ruby/proc.c:4581
193
+ c_body_at: references/ruby/proc.c:1449
194
+ c_effects: []
195
+ purity: leaf
196
+ rbs:
197
+ - "(untyped other) -> bool"
198
+ rbs_at: references/rbs/core/proc.rbs:510
199
+ eql?:
200
+ source: c
201
+ cfunc: proc_eq
202
+ arity: 1
203
+ defined_at: references/ruby/proc.c:4582
204
+ c_body_at: references/ruby/proc.c:1449
205
+ c_effects: []
206
+ purity: leaf
207
+ source_location:
208
+ source: c
209
+ cfunc: rb_proc_location
210
+ arity: 0
211
+ defined_at: references/ruby/proc.c:4583
212
+ c_body_at: references/ruby/proc.c:1545
213
+ c_effects: []
214
+ purity: leaf
215
+ rbs:
216
+ - "() -> [ String, Integer ]?"
217
+ rbs_at: references/rbs/core/proc.rbs:880
218
+ parameters:
219
+ source: c
220
+ cfunc: rb_proc_parameters
221
+ arity: -1
222
+ defined_at: references/ruby/proc.c:4584
223
+ c_body_at: references/ruby/proc.c:1588
224
+ c_effects: []
225
+ purity: leaf
226
+ rbs:
227
+ - "(?lambda: boolish) -> Method::param_types"
228
+ rbs_at: references/rbs/core/proc.rbs:832
229
+ ruby2_keywords:
230
+ source: c
231
+ cfunc: proc_ruby2_keywords
232
+ arity: 0
233
+ defined_at: references/ruby/proc.c:4585
234
+ c_body_at: references/ruby/proc.c:4110
235
+ c_effects:
236
+ - mutate
237
+ purity: mutates_self
238
+ rbs:
239
+ - "() -> self"
240
+ rbs_at: references/rbs/core/proc.rbs:864
241
+ singleton_methods:
242
+ new:
243
+ source: c
244
+ cfunc: rb_proc_s_new
245
+ arity: -1
246
+ defined_at: references/ruby/proc.c:4555
247
+ c_body_at: references/ruby/proc.c:974
248
+ c_effects: []
249
+ purity: leaf
250
+ rbs:
251
+ - "() { (?) -> untyped } -> instance"
252
+ rbs_at: references/rbs/core/proc.rbs:377
253
+ undefined: []
254
+ LocalJumpError:
255
+ parent: StandardError
256
+ defined_at: references/ruby/proc.c:4589
257
+ includes: []
258
+ constants: {}
259
+ aliases: {}
260
+ instance_methods:
261
+ exit_value:
262
+ source: c
263
+ cfunc: localjump_xvalue
264
+ arity: 0
265
+ defined_at: references/ruby/proc.c:4590
266
+ c_body_at: references/ruby/proc.c:3619
267
+ c_effects: []
268
+ purity: leaf
269
+ reason:
270
+ source: c
271
+ cfunc: localjump_reason
272
+ arity: 0
273
+ defined_at: references/ruby/proc.c:4591
274
+ c_body_at: references/ruby/proc.c:3633
275
+ c_effects: []
276
+ purity: leaf
277
+ singleton_methods: {}
278
+ undefined: []
279
+ SystemStackError:
280
+ parent: rb_eException
281
+ defined_at: references/ruby/proc.c:4593
282
+ includes: []
283
+ constants: {}
284
+ aliases: {}
285
+ instance_methods: {}
286
+ singleton_methods: {}
287
+ undefined: []
288
+ Method:
289
+ parent: Object
290
+ defined_at: references/ruby/proc.c:4601
291
+ includes: []
292
+ constants: {}
293
+ aliases: {}
294
+ instance_methods:
295
+ "==":
296
+ source: c
297
+ cfunc: method_eq
298
+ arity: 1
299
+ defined_at: references/ruby/proc.c:4604
300
+ c_body_at: references/ruby/proc.c:1983
301
+ c_effects: []
302
+ purity: leaf
303
+ rbs:
304
+ - "(untyped other) -> bool"
305
+ rbs_at: references/rbs/core/method.rbs:38
306
+ eql?:
307
+ source: c
308
+ cfunc: method_eq
309
+ arity: 1
310
+ defined_at: references/ruby/proc.c:4605
311
+ c_body_at: references/ruby/proc.c:1983
312
+ c_effects: []
313
+ purity: leaf
314
+ hash:
315
+ source: c
316
+ cfunc: method_hash
317
+ arity: 0
318
+ defined_at: references/ruby/proc.c:4606
319
+ c_body_at: references/ruby/proc.c:2038
320
+ c_effects: []
321
+ purity: leaf
322
+ rbs:
323
+ - "() -> Integer"
324
+ rbs_at: references/rbs/core/method.rbs:55
325
+ clone:
326
+ source: c
327
+ cfunc: method_clone
328
+ arity: 0
329
+ defined_at: references/ruby/proc.c:4607
330
+ c_body_at: references/ruby/proc.c:2613
331
+ c_effects: []
332
+ purity: leaf
333
+ rbs:
334
+ - "() -> self"
335
+ rbs_at: references/rbs/core/method.rbs:283
336
+ dup:
337
+ source: c
338
+ cfunc: method_dup
339
+ arity: 0
340
+ defined_at: references/ruby/proc.c:4608
341
+ c_body_at: references/ruby/proc.c:2631
342
+ c_effects: []
343
+ purity: leaf
344
+ call:
345
+ source: c
346
+ cfunc: rb_method_call_pass_called_kw
347
+ arity: -1
348
+ defined_at: references/ruby/proc.c:4609
349
+ c_body_at: references/ruby/proc.c:2672
350
+ c_effects: []
351
+ purity: leaf
352
+ rbs:
353
+ - "(?) -> untyped"
354
+ rbs_at: references/rbs/core/method.rbs:148
355
+ "===":
356
+ source: c
357
+ cfunc: rb_method_call_pass_called_kw
358
+ arity: -1
359
+ defined_at: references/ruby/proc.c:4610
360
+ c_body_at: references/ruby/proc.c:2672
361
+ c_effects: []
362
+ purity: leaf
363
+ curry:
364
+ source: c
365
+ cfunc: rb_method_curry
366
+ arity: -1
367
+ defined_at: references/ruby/proc.c:4611
368
+ c_body_at: references/ruby/proc.c:3892
369
+ c_effects: []
370
+ purity: leaf
371
+ rbs:
372
+ - "(?int? arity) -> Proc"
373
+ rbs_at: references/rbs/core/method.rbs:316
374
+ !!str '<<':
375
+ source: c
376
+ cfunc: rb_method_compose_to_left
377
+ arity: 1
378
+ defined_at: references/ruby/proc.c:4612
379
+ c_body_at: references/ruby/proc.c:4047
380
+ c_effects: []
381
+ purity: leaf
382
+ rbs:
383
+ - "(Proc::_Callable g) -> Proc"
384
+ rbs_at: references/rbs/core/method.rbs:165
385
+ ">>":
386
+ source: c
387
+ cfunc: rb_method_compose_to_right
388
+ arity: 1
389
+ defined_at: references/ruby/proc.c:4613
390
+ c_body_at: references/ruby/proc.c:4070
391
+ c_effects: []
392
+ purity: leaf
393
+ rbs:
394
+ - "(Proc::_Callable g) -> Proc"
395
+ rbs_at: references/rbs/core/method.rbs:202
396
+ "[]":
397
+ source: c
398
+ cfunc: rb_method_call_pass_called_kw
399
+ arity: -1
400
+ defined_at: references/ruby/proc.c:4614
401
+ c_body_at: references/ruby/proc.c:2672
402
+ c_effects: []
403
+ purity: leaf
404
+ arity:
405
+ source: c
406
+ cfunc: method_arity_m
407
+ arity: 0
408
+ defined_at: references/ruby/proc.c:4615
409
+ c_body_at: references/ruby/proc.c:3050
410
+ c_effects: []
411
+ purity: leaf
412
+ rbs:
413
+ - "() -> Integer"
414
+ rbs_at: references/rbs/core/method.rbs:265
415
+ inspect:
416
+ source: c
417
+ cfunc: method_inspect
418
+ arity: 0
419
+ defined_at: references/ruby/proc.c:4616
420
+ c_body_at: references/ruby/proc.c:3334
421
+ c_effects:
422
+ - mutate
423
+ - dispatch
424
+ purity: mutates_self
425
+ rbs:
426
+ - "() -> String"
427
+ rbs_at: references/rbs/core/method.rbs:87
428
+ to_s:
429
+ source: c
430
+ cfunc: method_inspect
431
+ arity: 0
432
+ defined_at: references/ruby/proc.c:4617
433
+ c_body_at: references/ruby/proc.c:3334
434
+ c_effects:
435
+ - mutate
436
+ - dispatch
437
+ purity: mutates_self
438
+ to_proc:
439
+ source: c
440
+ cfunc: method_to_proc
441
+ arity: 0
442
+ defined_at: references/ruby/proc.c:4618
443
+ c_body_at: references/ruby/proc.c:3556
444
+ c_effects:
445
+ - block
446
+ purity: block_dependent
447
+ rbs:
448
+ - "() -> Proc"
449
+ rbs_at: references/rbs/core/method.rbs:123
450
+ receiver:
451
+ source: c
452
+ cfunc: method_receiver
453
+ arity: 0
454
+ defined_at: references/ruby/proc.c:4619
455
+ c_body_at: references/ruby/proc.c:2088
456
+ c_effects: []
457
+ purity: leaf
458
+ rbs:
459
+ - "() -> untyped"
460
+ rbs_at: references/rbs/core/method.rbs:386
461
+ name:
462
+ source: c
463
+ cfunc: method_name
464
+ arity: 0
465
+ defined_at: references/ruby/proc.c:4620
466
+ c_body_at: references/ruby/proc.c:2104
467
+ c_effects: []
468
+ purity: leaf
469
+ rbs:
470
+ - "() -> Symbol"
471
+ rbs_at: references/rbs/core/method.rbs:324
472
+ original_name:
473
+ source: c
474
+ cfunc: method_original_name
475
+ arity: 0
476
+ defined_at: references/ruby/proc.c:4621
477
+ c_body_at: references/ruby/proc.c:2126
478
+ c_effects: []
479
+ purity: leaf
480
+ rbs:
481
+ - "() -> Symbol"
482
+ rbs_at: references/rbs/core/method.rbs:338
483
+ owner:
484
+ source: c
485
+ cfunc: method_owner
486
+ arity: 0
487
+ defined_at: references/ruby/proc.c:4622
488
+ c_body_at: references/ruby/proc.c:2153
489
+ c_effects: []
490
+ purity: leaf
491
+ rbs:
492
+ - "() -> (Class | Module)"
493
+ rbs_at: references/rbs/core/method.rbs:356
494
+ unbind:
495
+ source: c
496
+ cfunc: method_unbind
497
+ arity: 0
498
+ defined_at: references/ruby/proc.c:4623
499
+ c_body_at: references/ruby/proc.c:2061
500
+ c_effects: []
501
+ purity: leaf
502
+ rbs:
503
+ - "() -> UnboundMethod"
504
+ rbs_at: references/rbs/core/method.rbs:421
505
+ source_location:
506
+ source: c
507
+ cfunc: rb_method_location
508
+ arity: 0
509
+ defined_at: references/ruby/proc.c:4624
510
+ c_body_at: references/ruby/proc.c:3207
511
+ c_effects: []
512
+ purity: leaf
513
+ rbs:
514
+ - "() -> [ String, Integer ]?"
515
+ rbs_at: references/rbs/core/method.rbs:403
516
+ parameters:
517
+ source: c
518
+ cfunc: rb_method_parameters
519
+ arity: 0
520
+ defined_at: references/ruby/proc.c:4625
521
+ c_body_at: references/ruby/proc.c:3295
522
+ c_effects: []
523
+ purity: leaf
524
+ rbs:
525
+ - "() -> param_types"
526
+ rbs_at: references/rbs/core/method.rbs:376
527
+ super_method:
528
+ source: c
529
+ cfunc: method_super_method
530
+ arity: 0
531
+ defined_at: references/ruby/proc.c:4626
532
+ c_body_at: references/ruby/proc.c:3587
533
+ c_effects: []
534
+ purity: leaf
535
+ rbs:
536
+ - "() -> Method?"
537
+ rbs_at: references/rbs/core/method.rbs:412
538
+ box:
539
+ source: c
540
+ cfunc: method_box
541
+ arity: 0
542
+ defined_at: references/ruby/proc.c:4631
543
+ c_body_at: references/ruby/proc.c:2167
544
+ c_effects:
545
+ - raises
546
+ purity: leaf
547
+ singleton_methods: {}
548
+ undefined:
549
+ - new
550
+ UnboundMethod:
551
+ parent: Object
552
+ defined_at: references/ruby/proc.c:4634
553
+ includes: []
554
+ constants: {}
555
+ aliases: {}
556
+ instance_methods:
557
+ "==":
558
+ source: c
559
+ cfunc: unbound_method_eq
560
+ arity: 1
561
+ defined_at: references/ruby/proc.c:4637
562
+ c_body_at: references/ruby/proc.c:1983
563
+ c_effects: []
564
+ purity: leaf
565
+ rbs:
566
+ - "(untyped other) -> bool"
567
+ rbs_at: references/rbs/core/unbound_method.rbs:63
568
+ eql?:
569
+ source: c
570
+ cfunc: unbound_method_eq
571
+ arity: 1
572
+ defined_at: references/ruby/proc.c:4638
573
+ c_body_at: references/ruby/proc.c:1983
574
+ c_effects: []
575
+ purity: leaf
576
+ hash:
577
+ source: c
578
+ cfunc: method_hash
579
+ arity: 0
580
+ defined_at: references/ruby/proc.c:4639
581
+ c_body_at: references/ruby/proc.c:2038
582
+ c_effects: []
583
+ purity: leaf
584
+ rbs:
585
+ - "() -> Integer"
586
+ rbs_at: references/rbs/core/unbound_method.rbs:85
587
+ clone:
588
+ source: c
589
+ cfunc: method_clone
590
+ arity: 0
591
+ defined_at: references/ruby/proc.c:4640
592
+ c_body_at: references/ruby/proc.c:2613
593
+ c_effects: []
594
+ purity: leaf
595
+ rbs:
596
+ - "() -> self"
597
+ rbs_at: references/rbs/core/unbound_method.rbs:103
598
+ dup:
599
+ source: c
600
+ cfunc: method_dup
601
+ arity: 0
602
+ defined_at: references/ruby/proc.c:4641
603
+ c_body_at: references/ruby/proc.c:2631
604
+ c_effects: []
605
+ purity: leaf
606
+ arity:
607
+ source: c
608
+ cfunc: method_arity_m
609
+ arity: 0
610
+ defined_at: references/ruby/proc.c:4642
611
+ c_body_at: references/ruby/proc.c:3050
612
+ c_effects: []
613
+ purity: leaf
614
+ rbs:
615
+ - "() -> Integer"
616
+ rbs_at: references/rbs/core/unbound_method.rbs:146
617
+ inspect:
618
+ source: c
619
+ cfunc: method_inspect
620
+ arity: 0
621
+ defined_at: references/ruby/proc.c:4643
622
+ c_body_at: references/ruby/proc.c:3334
623
+ c_effects:
624
+ - mutate
625
+ - dispatch
626
+ purity: mutates_self
627
+ rbs:
628
+ - "() -> String"
629
+ rbs_at: references/rbs/core/unbound_method.rbs:212
630
+ to_s:
631
+ source: c
632
+ cfunc: method_inspect
633
+ arity: 0
634
+ defined_at: references/ruby/proc.c:4644
635
+ c_body_at: references/ruby/proc.c:3334
636
+ c_effects:
637
+ - mutate
638
+ - dispatch
639
+ purity: mutates_self
640
+ name:
641
+ source: c
642
+ cfunc: method_name
643
+ arity: 0
644
+ defined_at: references/ruby/proc.c:4645
645
+ c_body_at: references/ruby/proc.c:2104
646
+ c_effects: []
647
+ purity: leaf
648
+ rbs:
649
+ - "() -> Symbol"
650
+ rbs_at: references/rbs/core/unbound_method.rbs:248
651
+ original_name:
652
+ source: c
653
+ cfunc: method_original_name
654
+ arity: 0
655
+ defined_at: references/ruby/proc.c:4646
656
+ c_body_at: references/ruby/proc.c:2126
657
+ c_effects: []
658
+ purity: leaf
659
+ rbs:
660
+ - "() -> Symbol"
661
+ rbs_at: references/rbs/core/unbound_method.rbs:326
662
+ owner:
663
+ source: c
664
+ cfunc: method_owner
665
+ arity: 0
666
+ defined_at: references/ruby/proc.c:4647
667
+ c_body_at: references/ruby/proc.c:2153
668
+ c_effects: []
669
+ purity: leaf
670
+ rbs:
671
+ - "() -> (Class | Module)"
672
+ rbs_at: references/rbs/core/unbound_method.rbs:266
673
+ bind:
674
+ source: c
675
+ cfunc: umethod_bind
676
+ arity: 1
677
+ defined_at: references/ruby/proc.c:4648
678
+ c_body_at: references/ruby/proc.c:2870
679
+ c_effects: []
680
+ purity: leaf
681
+ rbs:
682
+ - "(untyped obj) -> Method"
683
+ rbs_at: references/rbs/core/unbound_method.rbs:180
684
+ bind_call:
685
+ source: c
686
+ cfunc: umethod_bind_call
687
+ arity: -1
688
+ defined_at: references/ruby/proc.c:4649
689
+ c_body_at: references/ruby/proc.c:2898
690
+ c_effects:
691
+ - block
692
+ purity: block_dependent
693
+ rbs:
694
+ - "(untyped recv, *untyped, **untyped) ?{ (?) -> untyped } -> untyped"
695
+ rbs_at: references/rbs/core/unbound_method.rbs:336
696
+ source_location:
697
+ source: c
698
+ cfunc: rb_method_location
699
+ arity: 0
700
+ defined_at: references/ruby/proc.c:4650
701
+ c_body_at: references/ruby/proc.c:3207
702
+ c_effects: []
703
+ purity: leaf
704
+ rbs:
705
+ - "() -> [ String, Integer ]?"
706
+ rbs_at: references/rbs/core/unbound_method.rbs:303
707
+ parameters:
708
+ source: c
709
+ cfunc: rb_method_parameters
710
+ arity: 0
711
+ defined_at: references/ruby/proc.c:4651
712
+ c_body_at: references/ruby/proc.c:3295
713
+ c_effects: []
714
+ purity: leaf
715
+ rbs:
716
+ - "() -> Method::param_types"
717
+ rbs_at: references/rbs/core/unbound_method.rbs:286
718
+ super_method:
719
+ source: c
720
+ cfunc: method_super_method
721
+ arity: 0
722
+ defined_at: references/ruby/proc.c:4652
723
+ c_body_at: references/ruby/proc.c:3587
724
+ c_effects: []
725
+ purity: leaf
726
+ rbs:
727
+ - "() -> UnboundMethod?"
728
+ rbs_at: references/rbs/core/unbound_method.rbs:312
729
+ singleton_methods: {}
730
+ undefined:
731
+ - new