rigortype 0.0.1 → 0.0.3

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 (42) hide show
  1. checksums.yaml +4 -4
  2. data/data/builtins/ruby_core/array.yml +1470 -0
  3. data/data/builtins/ruby_core/file.yml +501 -0
  4. data/data/builtins/ruby_core/io.yml +1594 -0
  5. data/data/builtins/ruby_core/numeric.yml +1809 -0
  6. data/data/builtins/ruby_core/string.yml +1850 -0
  7. data/lib/rigor/analysis/check_rules.rb +297 -5
  8. data/lib/rigor/analysis/diagnostic.rb +13 -2
  9. data/lib/rigor/analysis/runner.rb +52 -5
  10. data/lib/rigor/builtins/imported_refinements.rb +69 -0
  11. data/lib/rigor/cli/type_of_command.rb +11 -5
  12. data/lib/rigor/cli/type_scan_command.rb +13 -8
  13. data/lib/rigor/cli.rb +26 -6
  14. data/lib/rigor/configuration.rb +18 -2
  15. data/lib/rigor/environment.rb +3 -1
  16. data/lib/rigor/inference/acceptance.rb +180 -0
  17. data/lib/rigor/inference/builtins/array_catalog.rb +46 -0
  18. data/lib/rigor/inference/builtins/method_catalog.rb +90 -0
  19. data/lib/rigor/inference/builtins/numeric_catalog.rb +93 -0
  20. data/lib/rigor/inference/builtins/string_catalog.rb +39 -0
  21. data/lib/rigor/inference/expression_typer.rb +151 -0
  22. data/lib/rigor/inference/method_dispatcher/constant_folding.rb +650 -16
  23. data/lib/rigor/inference/method_dispatcher/file_folding.rb +144 -0
  24. data/lib/rigor/inference/method_dispatcher/iterator_dispatch.rb +113 -0
  25. data/lib/rigor/inference/method_dispatcher/rbs_dispatch.rb +4 -0
  26. data/lib/rigor/inference/method_dispatcher/shape_dispatch.rb +107 -0
  27. data/lib/rigor/inference/method_dispatcher.rb +28 -21
  28. data/lib/rigor/inference/narrowing.rb +471 -10
  29. data/lib/rigor/inference/scope_indexer.rb +66 -0
  30. data/lib/rigor/inference/statement_evaluator.rb +305 -2
  31. data/lib/rigor/rbs_extended.rb +174 -14
  32. data/lib/rigor/scope.rb +44 -5
  33. data/lib/rigor/type/combinator.rb +69 -1
  34. data/lib/rigor/type/difference.rb +155 -0
  35. data/lib/rigor/type/integer_range.rb +137 -0
  36. data/lib/rigor/type.rb +2 -0
  37. data/lib/rigor/version.rb +1 -1
  38. data/sig/rigor/inference.rbs +5 -2
  39. data/sig/rigor/rbs_extended.rbs +25 -1
  40. data/sig/rigor/scope.rbs +4 -0
  41. data/sig/rigor/type.rbs +51 -1
  42. metadata +15 -1
@@ -0,0 +1,1470 @@
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/array.c
6
+ ruby_prelude: references/ruby/array.rb
7
+ rbs:
8
+ - references/rbs/core/array.rbs
9
+ purity_levels:
10
+ leaf: Prelude :leaf marker (VM-enforced) or C body uses no dispatch/yield/mutation.
11
+ trivial: Prelude method body is a literal return (self/true/false/nil/Integer).
12
+ leaf_when_numeric: C body falls through to rb_num_coerce_* only when an operand
13
+ is non-numeric; safe to fold when every argument is a concrete numeric.
14
+ inline_block: Prelude method carries :inline_block or :use_block; block-dependent.
15
+ block_dependent: C body yields or checks rb_block_given_p.
16
+ mutates_self: C body checks rb_check_frozen — typically a prelude to mutation.
17
+ dispatch: C body calls user-redefinable methods (rb_funcall*, rb_equal, rb_Float,
18
+ num_funcall*, etc).
19
+ unknown: C body not located in indexed C files.
20
+ classes:
21
+ Array:
22
+ parent: Object
23
+ defined_at: references/ruby/array.c:8865
24
+ includes:
25
+ - module: Enumerable
26
+ defined_at: references/ruby/array.c:8866
27
+ constants: {}
28
+ aliases:
29
+ to_s:
30
+ old: inspect
31
+ source: c
32
+ defined_at: references/ruby/array.c:8876
33
+ append:
34
+ old: push
35
+ source: c
36
+ defined_at: references/ruby/array.c:8896
37
+ prepend:
38
+ old: unshift
39
+ source: c
40
+ defined_at: references/ruby/array.c:8900
41
+ instance_methods:
42
+ initialize:
43
+ source: c
44
+ cfunc: rb_ary_initialize
45
+ arity: -1
46
+ defined_at: references/ruby/array.c:8872
47
+ c_body_at: references/ruby/array.c:1147
48
+ c_effects:
49
+ - block
50
+ - mutate
51
+ - raises
52
+ purity: block_dependent
53
+ rbs:
54
+ - "() -> void"
55
+ - "(::Array[Elem] ary) -> void"
56
+ - "(int size, ?Elem val) -> void"
57
+ - "(int size) { (::Integer index) -> Elem } -> void"
58
+ rbs_at: references/rbs/core/array.rbs:606
59
+ initialize_copy:
60
+ source: c
61
+ cfunc: rb_ary_replace
62
+ arity: 1
63
+ defined_at: references/ruby/array.c:8873
64
+ c_body_at: references/ruby/array.c:4796
65
+ c_effects:
66
+ - mutate
67
+ purity: mutates_self
68
+ rbs:
69
+ - "(self other_ary) -> void"
70
+ rbs_at: references/rbs/core/array.rbs:4133
71
+ inspect:
72
+ source: c
73
+ cfunc: rb_ary_inspect
74
+ arity: 0
75
+ defined_at: references/ruby/array.c:8875
76
+ c_body_at: references/ruby/array.c:3118
77
+ c_effects:
78
+ - dispatch
79
+ purity: dispatch
80
+ rbs:
81
+ - "() -> String"
82
+ rbs_at: references/rbs/core/array.rbs:2296
83
+ to_a:
84
+ source: c
85
+ cfunc: rb_ary_to_a
86
+ arity: 0
87
+ defined_at: references/ruby/array.c:8877
88
+ c_body_at: references/ruby/array.c:3148
89
+ c_effects:
90
+ - mutate
91
+ purity: mutates_self
92
+ rbs:
93
+ - "() -> ::Array[Elem]"
94
+ rbs_at: references/rbs/core/array.rbs:3738
95
+ to_h:
96
+ source: c
97
+ cfunc: rb_ary_to_h
98
+ arity: 0
99
+ defined_at: references/ruby/array.c:8878
100
+ c_body_at: references/ruby/array.c:3184
101
+ c_effects:
102
+ - block
103
+ - mutate
104
+ - raises
105
+ purity: block_dependent
106
+ rbs:
107
+ - "() -> Hash[untyped, untyped]"
108
+ - "[T, S] () { (Elem) -> [ T, S ] } -> Hash[T, S]"
109
+ rbs_at: references/rbs/core/array.rbs:3772
110
+ to_ary:
111
+ source: c
112
+ cfunc: rb_ary_to_ary_m
113
+ arity: 0
114
+ defined_at: references/ruby/array.c:8879
115
+ c_body_at: references/ruby/array.c:3215
116
+ c_effects: []
117
+ purity: leaf
118
+ rbs:
119
+ - "() -> self"
120
+ rbs_at: references/rbs/core/array.rbs:3746
121
+ "==":
122
+ source: c
123
+ cfunc: rb_ary_equal
124
+ arity: 1
125
+ defined_at: references/ruby/array.c:8881
126
+ c_body_at: references/ruby/array.c:5382
127
+ c_effects:
128
+ - dispatch
129
+ purity: dispatch
130
+ rbs:
131
+ - "(untyped other) -> bool"
132
+ rbs_at: references/rbs/core/array.rbs:797
133
+ eql?:
134
+ source: c
135
+ cfunc: rb_ary_eql
136
+ arity: 1
137
+ defined_at: references/ruby/array.c:8882
138
+ c_body_at: references/ruby/array.c:5429
139
+ c_effects:
140
+ - dispatch
141
+ purity: dispatch
142
+ rbs:
143
+ - "(untyped other) -> bool"
144
+ rbs_at: references/rbs/core/array.rbs:1730
145
+ hash:
146
+ source: c
147
+ cfunc: rb_ary_hash
148
+ arity: 0
149
+ defined_at: references/ruby/array.c:8883
150
+ c_body_at: references/ruby/array.c:5481
151
+ c_effects: []
152
+ purity: leaf
153
+ rbs:
154
+ - "() -> ::Integer"
155
+ rbs_at: references/rbs/core/array.rbs:2203
156
+ "[]":
157
+ source: c
158
+ cfunc: rb_ary_aref
159
+ arity: -1
160
+ defined_at: references/ruby/array.c:8885
161
+ c_body_at: references/ruby/array.c:1913
162
+ c_effects: []
163
+ purity: leaf
164
+ rbs:
165
+ - "(int index) -> Elem"
166
+ - "(int start, int length) -> ::Array[Elem]?"
167
+ - "(::Range[::Integer?] range) -> ::Array[Elem]?"
168
+ rbs_at: references/rbs/core/array.rbs:921
169
+ "[]=":
170
+ source: c
171
+ cfunc: rb_ary_aset
172
+ arity: -1
173
+ defined_at: references/ruby/array.c:8886
174
+ c_body_at: references/ruby/array.c:2607
175
+ c_effects:
176
+ - mutate
177
+ purity: mutates_self
178
+ rbs:
179
+ - "(int index, Elem obj) -> Elem"
180
+ - "(int start, int length, Elem obj) -> Elem"
181
+ - "(int start, int length, ::Array[Elem]) -> ::Array[Elem]"
182
+ - "(int start, int length, nil) -> nil"
183
+ - "(::Range[::Integer?], Elem obj) -> Elem"
184
+ - "(::Range[::Integer?], ::Array[Elem]) -> ::Array[Elem]"
185
+ - "(::Range[::Integer?], nil) -> nil"
186
+ rbs_at: references/rbs/core/array.rbs:1071
187
+ at:
188
+ source: c
189
+ cfunc: rb_ary_at
190
+ arity: 1
191
+ defined_at: references/ruby/array.c:8887
192
+ c_body_at: references/ruby/array.c:1980
193
+ c_effects: []
194
+ purity: leaf
195
+ rbs:
196
+ - "(int index) -> Elem"
197
+ rbs_at: references/rbs/core/array.rbs:1214
198
+ fetch:
199
+ source: c
200
+ cfunc: rb_ary_fetch
201
+ arity: -1
202
+ defined_at: references/ruby/array.c:8888
203
+ c_body_at: references/ruby/array.c:2064
204
+ c_effects:
205
+ - block
206
+ - raises
207
+ purity: block_dependent
208
+ rbs:
209
+ - "(int index) -> Elem"
210
+ - "[T] (int index, T default) -> (Elem | T)"
211
+ - "[T] (int index) { (int index) -> T } -> (Elem | T)"
212
+ rbs_at: references/rbs/core/array.rbs:1772
213
+ concat:
214
+ source: c
215
+ cfunc: rb_ary_concat_multi
216
+ arity: -1
217
+ defined_at: references/ruby/array.c:8889
218
+ c_body_at: references/ruby/array.c:5171
219
+ c_effects:
220
+ - mutate
221
+ purity: mutates_self
222
+ rbs:
223
+ - "(*::Array[Elem] arrays) -> self"
224
+ rbs_at: references/rbs/core/array.rbs:1392
225
+ union:
226
+ source: c
227
+ cfunc: rb_ary_union_multi
228
+ arity: -1
229
+ defined_at: references/ruby/array.c:8890
230
+ c_body_at: references/ruby/array.c:5938
231
+ c_effects: []
232
+ purity: leaf
233
+ rbs:
234
+ - "[T] (*::Array[T] other_arys) -> ::Array[T | Elem]"
235
+ rbs_at: references/rbs/core/array.rbs:3823
236
+ difference:
237
+ source: c
238
+ cfunc: rb_ary_difference_multi
239
+ arity: -1
240
+ defined_at: references/ruby/array.c:8891
241
+ c_body_at: references/ruby/array.c:5721
242
+ c_effects:
243
+ - mutate
244
+ purity: mutates_self
245
+ rbs:
246
+ - "(*::Array[untyped] arrays) -> ::Array[Elem]"
247
+ rbs_at: references/rbs/core/array.rbs:1571
248
+ intersection:
249
+ source: c
250
+ cfunc: rb_ary_intersection_multi
251
+ arity: -1
252
+ defined_at: references/ruby/array.c:8892
253
+ c_body_at: references/ruby/array.c:5837
254
+ c_effects: []
255
+ purity: leaf
256
+ rbs:
257
+ - "(*::Array[untyped] | _ToAry[untyped] other_ary) -> ::Array[Elem]"
258
+ rbs_at: references/rbs/core/array.rbs:2334
259
+ intersect?:
260
+ source: c
261
+ cfunc: rb_ary_intersect_p
262
+ arity: 1
263
+ defined_at: references/ruby/array.c:8893
264
+ c_body_at: references/ruby/array.c:5980
265
+ c_effects: []
266
+ purity: leaf
267
+ rbs:
268
+ - "(_ToAry[untyped]) -> bool"
269
+ rbs_at: references/rbs/core/array.rbs:2312
270
+ !!str '<<':
271
+ source: c
272
+ cfunc: rb_ary_push
273
+ arity: 1
274
+ defined_at: references/ruby/array.c:8894
275
+ c_body_at: references/ruby/array.c:1400
276
+ c_effects: []
277
+ purity: leaf
278
+ rbs:
279
+ - "(Elem) -> self"
280
+ rbs_at: references/rbs/core/array.rbs:734
281
+ push:
282
+ source: c
283
+ cfunc: rb_ary_push_m
284
+ arity: -1
285
+ defined_at: references/ruby/array.c:8895
286
+ c_body_at: references/ruby/array.c:1441
287
+ c_effects: []
288
+ purity: leaf
289
+ rbs:
290
+ - "(*Elem obj) -> self"
291
+ rbs_at: references/rbs/core/array.rbs:2828
292
+ pop:
293
+ source: c
294
+ cfunc: rb_ary_pop_m
295
+ arity: -1
296
+ defined_at: references/ruby/array.c:8897
297
+ c_body_at: references/ruby/array.c:1498
298
+ c_effects:
299
+ - mutate
300
+ purity: mutates_self
301
+ rbs:
302
+ - "() -> Elem?"
303
+ - "(int n) -> ::Array[Elem]"
304
+ rbs_at: references/rbs/core/array.rbs:2739
305
+ shift:
306
+ source: c
307
+ cfunc: rb_ary_shift_m
308
+ arity: -1
309
+ defined_at: references/ruby/array.c:8898
310
+ c_body_at: references/ruby/array.c:1570
311
+ c_effects:
312
+ - mutate
313
+ purity: mutates_self
314
+ rbs:
315
+ - "() -> Elem"
316
+ - "(int n) -> ::Array[Elem]"
317
+ rbs_at: references/rbs/core/array.rbs:3294
318
+ unshift:
319
+ source: c
320
+ cfunc: rb_ary_unshift_m
321
+ arity: -1
322
+ defined_at: references/ruby/array.c:8899
323
+ c_body_at: references/ruby/array.c:1720
324
+ c_effects:
325
+ - mutate
326
+ purity: mutates_self
327
+ rbs:
328
+ - "(*Elem obj) -> self"
329
+ rbs_at: references/rbs/core/array.rbs:3894
330
+ insert:
331
+ source: c
332
+ cfunc: rb_ary_insert
333
+ arity: -1
334
+ defined_at: references/ruby/array.c:8901
335
+ c_body_at: references/ruby/array.c:2668
336
+ c_effects:
337
+ - mutate
338
+ - raises
339
+ purity: mutates_self
340
+ rbs:
341
+ - "(int index, *Elem obj) -> self"
342
+ rbs_at: references/rbs/core/array.rbs:2281
343
+ each:
344
+ source: c
345
+ cfunc: rb_ary_each
346
+ arity: 0
347
+ defined_at: references/ruby/array.c:8902
348
+ c_body_at: references/ruby/array.c:2748
349
+ c_effects:
350
+ - block
351
+ purity: block_dependent
352
+ rbs:
353
+ - "() -> ::Enumerator[Elem, self]"
354
+ - "() { (Elem item) -> void } -> self"
355
+ rbs_at: references/rbs/core/array.rbs:1664
356
+ each_index:
357
+ source: c
358
+ cfunc: rb_ary_each_index
359
+ arity: 0
360
+ defined_at: references/ruby/array.c:8903
361
+ c_body_at: references/ruby/array.c:2794
362
+ c_effects:
363
+ - block
364
+ purity: block_dependent
365
+ rbs:
366
+ - "() { (::Integer index) -> void } -> self"
367
+ - "() -> ::Enumerator[::Integer, self]"
368
+ rbs_at: references/rbs/core/array.rbs:1699
369
+ reverse_each:
370
+ source: c
371
+ cfunc: rb_ary_reverse_each
372
+ arity: 0
373
+ defined_at: references/ruby/array.c:8904
374
+ c_body_at: references/ruby/array.c:2830
375
+ c_effects:
376
+ - block
377
+ purity: block_dependent
378
+ rbs:
379
+ - "() { (Elem item) -> void } -> self"
380
+ - "() -> ::Enumerator[Elem, self]"
381
+ rbs_at: references/rbs/core/array.rbs:3029
382
+ length:
383
+ source: c
384
+ cfunc: rb_ary_length
385
+ arity: 0
386
+ defined_at: references/ruby/array.c:8905
387
+ c_body_at: references/ruby/array.c:2692
388
+ c_effects: []
389
+ purity: leaf
390
+ rbs:
391
+ - "() -> ::Integer"
392
+ rbs_at: references/rbs/core/array.rbs:2426
393
+ size:
394
+ source: c
395
+ cfunc: rb_ary_length
396
+ arity: 0
397
+ defined_at: references/ruby/array.c:8906
398
+ c_body_at: references/ruby/array.c:2692
399
+ c_effects: []
400
+ purity: leaf
401
+ empty?:
402
+ source: c
403
+ cfunc: rb_ary_empty_p
404
+ arity: 0
405
+ defined_at: references/ruby/array.c:8907
406
+ c_body_at: references/ruby/array.c:2878
407
+ c_effects: []
408
+ purity: leaf
409
+ rbs:
410
+ - "() -> bool"
411
+ rbs_at: references/rbs/core/array.rbs:1710
412
+ find:
413
+ source: c
414
+ cfunc: rb_ary_find
415
+ arity: -1
416
+ defined_at: references/ruby/array.c:8908
417
+ c_body_at: references/ruby/array.c:2112
418
+ c_effects:
419
+ - block
420
+ - dispatch
421
+ purity: block_dependent
422
+ rbs:
423
+ - "() { (Elem) -> boolish } -> Elem?"
424
+ - "() -> ::Enumerator[Elem, Elem?]"
425
+ - "[T] (Enumerable::_NotFound[T] ifnone) { (Elem) -> boolish } -> (Elem |
426
+ T)"
427
+ - "[T] (Enumerable::_NotFound[T] ifnone) -> ::Enumerator[Elem, Elem | T]"
428
+ rbs_at: references/rbs/core/array.rbs:2050
429
+ detect:
430
+ source: c
431
+ cfunc: rb_ary_find
432
+ arity: -1
433
+ defined_at: references/ruby/array.c:8909
434
+ c_body_at: references/ruby/array.c:2112
435
+ c_effects:
436
+ - block
437
+ - dispatch
438
+ purity: block_dependent
439
+ rfind:
440
+ source: c
441
+ cfunc: rb_ary_rfind
442
+ arity: -1
443
+ defined_at: references/ruby/array.c:8910
444
+ c_body_at: references/ruby/array.c:2155
445
+ c_effects:
446
+ - block
447
+ - dispatch
448
+ purity: block_dependent
449
+ rbs:
450
+ - "() { (Elem) -> boolish } -> Elem?"
451
+ - "() -> ::Enumerator[Elem, Elem?]"
452
+ - "[T] (Enumerable::_NotFound[T] ifnone) { (Elem) -> boolish } -> (Elem |
453
+ T)"
454
+ - "[T] (Enumerable::_NotFound[T] ifnone) -> ::Enumerator[Elem, Elem | T]"
455
+ rbs_at: references/rbs/core/array.rbs:3052
456
+ find_index:
457
+ source: c
458
+ cfunc: rb_ary_index
459
+ arity: -1
460
+ defined_at: references/ruby/array.c:8911
461
+ c_body_at: references/ruby/array.c:2215
462
+ c_effects:
463
+ - block
464
+ - dispatch
465
+ purity: block_dependent
466
+ rbs:
467
+ - "(untyped obj) -> ::Integer?"
468
+ - "() { (Elem item) -> boolish } -> ::Integer?"
469
+ - "() -> ::Enumerator[Elem, ::Integer?]"
470
+ rbs_at: references/rbs/core/array.rbs:2086
471
+ index:
472
+ source: c
473
+ cfunc: rb_ary_index
474
+ arity: -1
475
+ defined_at: references/ruby/array.c:8912
476
+ c_body_at: references/ruby/array.c:2215
477
+ c_effects:
478
+ - block
479
+ - dispatch
480
+ purity: block_dependent
481
+ rindex:
482
+ source: c
483
+ cfunc: rb_ary_rindex
484
+ arity: -1
485
+ defined_at: references/ruby/array.c:8913
486
+ c_body_at: references/ruby/array.c:2271
487
+ c_effects:
488
+ - block
489
+ - dispatch
490
+ purity: block_dependent
491
+ rbs:
492
+ - "(untyped obj) -> ::Integer?"
493
+ - "() { (Elem item) -> boolish } -> ::Integer?"
494
+ - "() -> ::Enumerator[Elem, ::Integer?]"
495
+ rbs_at: references/rbs/core/array.rbs:3086
496
+ join:
497
+ source: c
498
+ cfunc: rb_ary_join_m
499
+ arity: -1
500
+ defined_at: references/ruby/array.c:8914
501
+ c_body_at: references/ruby/array.c:3071
502
+ c_effects: []
503
+ purity: leaf
504
+ rbs:
505
+ - "(?string separator) -> String"
506
+ rbs_at: references/rbs/core/array.rbs:2366
507
+ reverse:
508
+ source: c
509
+ cfunc: rb_ary_reverse_m
510
+ arity: 0
511
+ defined_at: references/ruby/array.c:8915
512
+ c_body_at: references/ruby/array.c:3278
513
+ c_effects: []
514
+ purity: leaf
515
+ rbs:
516
+ - "() -> ::Array[Elem]"
517
+ rbs_at: references/rbs/core/array.rbs:2991
518
+ reverse!:
519
+ source: c
520
+ cfunc: rb_ary_reverse_bang
521
+ arity: 0
522
+ defined_at: references/ruby/array.c:8916
523
+ c_body_at: references/ruby/array.c:3261
524
+ c_effects: []
525
+ purity: leaf
526
+ rbs:
527
+ - "() -> ::Array[Elem]"
528
+ rbs_at: references/rbs/core/array.rbs:3005
529
+ rotate:
530
+ source: c
531
+ cfunc: rb_ary_rotate_m
532
+ arity: -1
533
+ defined_at: references/ruby/array.c:8917
534
+ c_body_at: references/ruby/array.c:3408
535
+ c_effects: []
536
+ purity: leaf
537
+ rbs:
538
+ - "(?int count) -> ::Array[Elem]"
539
+ rbs_at: references/rbs/core/array.rbs:3123
540
+ rotate!:
541
+ source: c
542
+ cfunc: rb_ary_rotate_bang
543
+ arity: -1
544
+ defined_at: references/ruby/array.c:8918
545
+ c_body_at: references/ruby/array.c:3367
546
+ c_effects: []
547
+ purity: leaf
548
+ rbs:
549
+ - "(?int count) -> self"
550
+ rbs_at: references/rbs/core/array.rbs:3158
551
+ sort:
552
+ source: c
553
+ cfunc: rb_ary_sort
554
+ arity: 0
555
+ defined_at: references/ruby/array.c:8919
556
+ c_body_at: references/ruby/array.c:3601
557
+ c_effects:
558
+ - mutate
559
+ purity: mutates_self
560
+ rbs:
561
+ - "() -> ::Array[Elem]"
562
+ - "() { (Elem a, Elem b) -> ::Integer } -> ::Array[Elem]"
563
+ rbs_at: references/rbs/core/array.rbs:3598
564
+ sort!:
565
+ source: c
566
+ cfunc: rb_ary_sort_bang
567
+ arity: 0
568
+ defined_at: references/ruby/array.c:8920
569
+ c_body_at: references/ruby/array.c:3506
570
+ c_effects:
571
+ - block
572
+ - mutate
573
+ purity: block_dependent
574
+ rbs:
575
+ - "() -> self"
576
+ - "() { (Elem a, Elem b) -> ::Integer } -> self"
577
+ rbs_at: references/rbs/core/array.rbs:3610
578
+ sort_by!:
579
+ source: c
580
+ cfunc: rb_ary_sort_by_bang
581
+ arity: 0
582
+ defined_at: references/ruby/array.c:8921
583
+ c_body_at: references/ruby/array.c:3724
584
+ c_effects:
585
+ - block
586
+ - mutate
587
+ purity: block_dependent
588
+ rbs:
589
+ - "[U] () { (Elem obj) -> U } -> ::Array[Elem]"
590
+ - "() -> ::Enumerator[Elem, ::Array[Elem]]"
591
+ rbs_at: references/rbs/core/array.rbs:3634
592
+ collect:
593
+ source: c
594
+ cfunc: rb_ary_collect
595
+ arity: 0
596
+ defined_at: references/ruby/array.c:8922
597
+ c_body_at: references/ruby/array.c:3759
598
+ c_effects:
599
+ - block
600
+ - mutate
601
+ purity: block_dependent
602
+ rbs:
603
+ - "[U] () { (Elem item) -> U } -> ::Array[U]"
604
+ - "() -> ::Enumerator[Elem, ::Array[untyped]]"
605
+ rbs_at: references/rbs/core/array.rbs:1279
606
+ collect!:
607
+ source: c
608
+ cfunc: rb_ary_collect_bang
609
+ arity: 0
610
+ defined_at: references/ruby/array.c:8923
611
+ c_body_at: references/ruby/array.c:3794
612
+ c_effects:
613
+ - block
614
+ - mutate
615
+ purity: block_dependent
616
+ rbs:
617
+ - "() { (Elem item) -> Elem } -> self"
618
+ - "() -> ::Enumerator[Elem, self]"
619
+ rbs_at: references/rbs/core/array.rbs:1300
620
+ map:
621
+ source: c
622
+ cfunc: rb_ary_collect
623
+ arity: 0
624
+ defined_at: references/ruby/array.c:8924
625
+ c_body_at: references/ruby/array.c:3759
626
+ c_effects:
627
+ - block
628
+ - mutate
629
+ purity: block_dependent
630
+ map!:
631
+ source: c
632
+ cfunc: rb_ary_collect_bang
633
+ arity: 0
634
+ defined_at: references/ruby/array.c:8925
635
+ c_body_at: references/ruby/array.c:3794
636
+ c_effects:
637
+ - block
638
+ - mutate
639
+ purity: block_dependent
640
+ select:
641
+ source: c
642
+ cfunc: rb_ary_select
643
+ arity: 0
644
+ defined_at: references/ruby/array.c:8926
645
+ c_body_at: references/ruby/array.c:4000
646
+ c_effects:
647
+ - block
648
+ - mutate
649
+ purity: block_dependent
650
+ rbs:
651
+ - "() { (Elem item) -> boolish } -> ::Array[Elem]"
652
+ - "() -> ::Enumerator[Elem, ::Array[Elem]]"
653
+ rbs_at: references/rbs/core/array.rbs:3231
654
+ select!:
655
+ source: c
656
+ cfunc: rb_ary_select_bang
657
+ arity: 0
658
+ defined_at: references/ruby/array.c:8927
659
+ c_body_at: references/ruby/array.c:4083
660
+ c_effects:
661
+ - mutate
662
+ purity: mutates_self
663
+ rbs:
664
+ - "() { (Elem item) -> boolish } -> self?"
665
+ - "() -> ::Enumerator[Elem, self?]"
666
+ rbs_at: references/rbs/core/array.rbs:3255
667
+ filter:
668
+ source: c
669
+ cfunc: rb_ary_select
670
+ arity: 0
671
+ defined_at: references/ruby/array.c:8928
672
+ c_body_at: references/ruby/array.c:4000
673
+ c_effects:
674
+ - block
675
+ - mutate
676
+ purity: block_dependent
677
+ rbs:
678
+ - "() { (Elem item) -> boolish } -> ::Array[Elem]"
679
+ - "() -> ::Enumerator[Elem, ::Array[Elem]]"
680
+ rbs_at: references/rbs/core/array.rbs:2010
681
+ filter!:
682
+ source: c
683
+ cfunc: rb_ary_select_bang
684
+ arity: 0
685
+ defined_at: references/ruby/array.c:8929
686
+ c_body_at: references/ruby/array.c:4083
687
+ c_effects:
688
+ - mutate
689
+ purity: mutates_self
690
+ rbs:
691
+ - "() { (Elem item) -> boolish } -> self?"
692
+ - "() -> ::Enumerator[Elem, self?]"
693
+ rbs_at: references/rbs/core/array.rbs:2028
694
+ keep_if:
695
+ source: c
696
+ cfunc: rb_ary_keep_if
697
+ arity: 0
698
+ defined_at: references/ruby/array.c:8930
699
+ c_body_at: references/ruby/array.c:4112
700
+ c_effects: []
701
+ purity: leaf
702
+ rbs:
703
+ - "() { (Elem item) -> boolish } -> self"
704
+ - "() -> ::Enumerator[Elem, self]"
705
+ rbs_at: references/rbs/core/array.rbs:2383
706
+ values_at:
707
+ source: c
708
+ cfunc: rb_ary_values_at
709
+ arity: -1
710
+ defined_at: references/ruby/array.c:8931
711
+ c_body_at: references/ruby/array.c:3967
712
+ c_effects: []
713
+ purity: leaf
714
+ rbs:
715
+ - "(*int | ::Range[::Integer] selector) -> ::Array[Elem?]"
716
+ rbs_at: references/rbs/core/array.rbs:4002
717
+ delete:
718
+ source: c
719
+ cfunc: rb_ary_delete
720
+ arity: 1
721
+ defined_at: references/ruby/array.c:8932
722
+ c_body_at: references/ruby/array.c:4170
723
+ c_effects:
724
+ - block
725
+ - mutate
726
+ - dispatch
727
+ purity: block_dependent
728
+ rbs:
729
+ - "(Elem obj) -> Elem?"
730
+ - "[S, T] (S obj) { (S) -> T } -> (Elem | T)"
731
+ rbs_at: references/rbs/core/array.rbs:1502
732
+ delete_at:
733
+ source: c
734
+ cfunc: rb_ary_delete_at_m
735
+ arity: 1
736
+ defined_at: references/ruby/array.c:8933
737
+ c_body_at: references/ruby/array.c:4274
738
+ c_effects:
739
+ - mutate
740
+ purity: mutates_self
741
+ rbs:
742
+ - "(int index) -> Elem"
743
+ rbs_at: references/rbs/core/array.rbs:1533
744
+ delete_if:
745
+ source: c
746
+ cfunc: rb_ary_delete_if
747
+ arity: 0
748
+ defined_at: references/ruby/array.c:8934
749
+ c_body_at: references/ruby/array.c:4551
750
+ c_effects: []
751
+ purity: leaf
752
+ rbs:
753
+ - "() { (Elem item) -> boolish } -> self"
754
+ - "() -> ::Enumerator[Elem, self]"
755
+ rbs_at: references/rbs/core/array.rbs:1550
756
+ reject:
757
+ source: c
758
+ cfunc: rb_ary_reject
759
+ arity: 0
760
+ defined_at: references/ruby/array.c:8935
761
+ c_body_at: references/ruby/array.c:4523
762
+ c_effects: []
763
+ purity: leaf
764
+ reject!:
765
+ source: c
766
+ cfunc: rb_ary_reject_bang
767
+ arity: 0
768
+ defined_at: references/ruby/array.c:8936
769
+ c_body_at: references/ruby/array.c:4498
770
+ c_effects:
771
+ - mutate
772
+ purity: mutates_self
773
+ rbs:
774
+ - "() { (Elem item) -> boolish } -> self?"
775
+ - "() -> ::Enumerator[Elem, self?]"
776
+ rbs_at: references/rbs/core/array.rbs:2885
777
+ zip:
778
+ source: c
779
+ cfunc: rb_ary_zip
780
+ arity: -1
781
+ defined_at: references/ruby/array.c:8937
782
+ c_body_at: references/ruby/array.c:4680
783
+ c_effects:
784
+ - block
785
+ - mutate
786
+ purity: block_dependent
787
+ rbs:
788
+ - "[U] (_Each[U] arg) -> Array[[ Elem, U? ]]"
789
+ - "(_Each[untyped] arg, *_Each[untyped] args) -> Array[Array[untyped]]"
790
+ - "[U] (_Each[U] arg) { ([ Elem, U? ]) -> void } -> nil"
791
+ - "(_Each[untyped] arg, *_Each[untyped] args) { (Array[untyped]) -> void }
792
+ -> nil"
793
+ rbs_at: references/rbs/core/array.rbs:4096
794
+ transpose:
795
+ source: c
796
+ cfunc: rb_ary_transpose
797
+ arity: 0
798
+ defined_at: references/ruby/array.c:8938
799
+ c_body_at: references/ruby/array.c:4753
800
+ c_effects:
801
+ - mutate
802
+ - raises
803
+ purity: mutates_self
804
+ rbs:
805
+ - "() -> ::Array[::Array[untyped]]"
806
+ rbs_at: references/rbs/core/array.rbs:3800
807
+ replace:
808
+ source: c
809
+ cfunc: rb_ary_replace
810
+ arity: 1
811
+ defined_at: references/ruby/array.c:8939
812
+ c_body_at: references/ruby/array.c:4796
813
+ c_effects:
814
+ - mutate
815
+ purity: mutates_self
816
+ rbs:
817
+ - "(::Array[Elem]) -> self"
818
+ rbs_at: references/rbs/core/array.rbs:2979
819
+ clear:
820
+ source: c
821
+ cfunc: rb_ary_clear
822
+ arity: 0
823
+ defined_at: references/ruby/array.c:8940
824
+ c_body_at: references/ruby/array.c:4853
825
+ c_effects:
826
+ - mutate
827
+ purity: mutates_self
828
+ rbs:
829
+ - "() -> self"
830
+ rbs_at: references/rbs/core/array.rbs:1258
831
+ fill:
832
+ source: c
833
+ cfunc: rb_ary_fill
834
+ arity: -1
835
+ defined_at: references/ruby/array.c:8941
836
+ c_body_at: references/ruby/array.c:5052
837
+ c_effects:
838
+ - block
839
+ - mutate
840
+ - raises
841
+ purity: block_dependent
842
+ rbs:
843
+ - "(Elem obj) -> self"
844
+ - "(Elem obj, int? start, ?int? length) -> self"
845
+ - "(Elem obj, ::Range[::Integer] range) -> self"
846
+ - "(?int? start, ?int? length) { (::Integer index) -> Elem } -> self"
847
+ - "(::Range[::Integer] range) { (::Integer index) -> Elem } -> self"
848
+ rbs_at: references/rbs/core/array.rbs:1991
849
+ include?:
850
+ source: c
851
+ cfunc: rb_ary_includes
852
+ arity: 1
853
+ defined_at: references/ruby/array.c:8942
854
+ c_body_at: references/ruby/array.c:5502
855
+ c_effects:
856
+ - dispatch
857
+ purity: dispatch
858
+ rbs:
859
+ - "(top object) -> bool"
860
+ rbs_at: references/rbs/core/array.rbs:2218
861
+ "<=>":
862
+ source: c
863
+ cfunc: rb_ary_cmp
864
+ arity: 1
865
+ defined_at: references/ruby/array.c:8943
866
+ c_body_at: references/ruby/array.c:5590
867
+ c_effects:
868
+ - dispatch
869
+ purity: dispatch
870
+ rbs:
871
+ - "(untyped) -> ::Integer?"
872
+ rbs_at: references/rbs/core/array.rbs:773
873
+ slice:
874
+ source: c
875
+ cfunc: rb_ary_aref
876
+ arity: -1
877
+ defined_at: references/ruby/array.c:8945
878
+ c_body_at: references/ruby/array.c:1913
879
+ c_effects: []
880
+ purity: leaf
881
+ rbs:
882
+ - "(int index) -> Elem"
883
+ - "(int start, int length) -> ::Array[Elem]?"
884
+ - "(::Range[::Integer] range) -> ::Array[Elem]?"
885
+ rbs_at: references/rbs/core/array.rbs:3467
886
+ slice!:
887
+ source: c
888
+ cfunc: rb_ary_slice_bang
889
+ arity: -1
890
+ defined_at: references/ruby/array.c:8946
891
+ c_body_at: references/ruby/array.c:4402
892
+ c_effects:
893
+ - mutate
894
+ purity: mutates_self
895
+ rbs:
896
+ - "(int index) -> Elem"
897
+ - "(int start, int length) -> ::Array[Elem]?"
898
+ - "(::Range[::Integer] range) -> ::Array[Elem]?"
899
+ rbs_at: references/rbs/core/array.rbs:3561
900
+ assoc:
901
+ source: c
902
+ cfunc: rb_ary_assoc
903
+ arity: 1
904
+ defined_at: references/ruby/array.c:8948
905
+ c_body_at: references/ruby/array.c:5276
906
+ c_effects:
907
+ - dispatch
908
+ purity: dispatch
909
+ rbs:
910
+ - "(untyped) -> ::Array[untyped]?"
911
+ rbs_at: references/rbs/core/array.rbs:1190
912
+ rassoc:
913
+ source: c
914
+ cfunc: rb_ary_rassoc
915
+ arity: 1
916
+ defined_at: references/ruby/array.c:8949
917
+ c_body_at: references/ruby/array.c:5308
918
+ c_effects:
919
+ - dispatch
920
+ purity: dispatch
921
+ "+":
922
+ source: c
923
+ cfunc: rb_ary_plus
924
+ arity: 1
925
+ defined_at: references/ruby/array.c:8951
926
+ c_body_at: references/ruby/array.c:5129
927
+ c_effects: []
928
+ purity: leaf
929
+ rbs:
930
+ - "[U] (_ToAry[U]) -> ::Array[Elem | U]"
931
+ rbs_at: references/rbs/core/array.rbs:700
932
+ "*":
933
+ source: c
934
+ cfunc: rb_ary_times
935
+ arity: 1
936
+ defined_at: references/ruby/array.c:8952
937
+ c_body_at: references/ruby/array.c:5216
938
+ c_effects:
939
+ - dispatch
940
+ - raises
941
+ purity: dispatch
942
+ rbs:
943
+ - "(string str) -> ::String"
944
+ - "(int int) -> ::Array[Elem]"
945
+ rbs_at: references/rbs/core/array.rbs:685
946
+ "-":
947
+ source: c
948
+ cfunc: rb_ary_diff
949
+ arity: 1
950
+ defined_at: references/ruby/array.c:8954
951
+ c_body_at: references/ruby/array.c:5673
952
+ c_effects:
953
+ - mutate
954
+ purity: mutates_self
955
+ rbs:
956
+ - "(_ToAry[untyped]) -> ::Array[Elem]"
957
+ rbs_at: references/rbs/core/array.rbs:718
958
+ "&":
959
+ source: c
960
+ cfunc: rb_ary_and
961
+ arity: 1
962
+ defined_at: references/ruby/array.c:8955
963
+ c_body_at: references/ruby/array.c:5782
964
+ c_effects:
965
+ - mutate
966
+ purity: mutates_self
967
+ rbs:
968
+ - "(::Array[untyped] | _ToAry[untyped]) -> ::Array[Elem]"
969
+ rbs_at: references/rbs/core/array.rbs:667
970
+ "|":
971
+ source: c
972
+ cfunc: rb_ary_or
973
+ arity: 1
974
+ defined_at: references/ruby/array.c:8956
975
+ c_body_at: references/ruby/array.c:5896
976
+ c_effects: []
977
+ purity: leaf
978
+ rbs:
979
+ - "[T] (::Array[T] other_ary) -> ::Array[Elem | T]"
980
+ rbs_at: references/rbs/core/array.rbs:4114
981
+ max:
982
+ source: c
983
+ cfunc: rb_ary_max
984
+ arity: -1
985
+ defined_at: references/ruby/array.c:8958
986
+ c_body_at: references/ruby/array.c:6157
987
+ c_effects:
988
+ - block
989
+ purity: block_dependent
990
+ rbs:
991
+ - "() -> Elem"
992
+ - "() { (Elem a, Elem b) -> ::Integer? } -> Elem"
993
+ - "(int n) -> ::Array[Elem]"
994
+ - "(int n) { (Elem a, Elem b) -> ::Integer? } -> ::Array[Elem]"
995
+ rbs_at: references/rbs/core/array.rbs:2505
996
+ min:
997
+ source: c
998
+ cfunc: rb_ary_min
999
+ arity: -1
1000
+ defined_at: references/ruby/array.c:8959
1001
+ c_body_at: references/ruby/array.c:6334
1002
+ c_effects:
1003
+ - block
1004
+ purity: block_dependent
1005
+ minmax:
1006
+ source: c
1007
+ cfunc: rb_ary_minmax
1008
+ arity: 0
1009
+ defined_at: references/ruby/array.c:8960
1010
+ c_body_at: references/ruby/array.c:6396
1011
+ c_effects:
1012
+ - block
1013
+ purity: block_dependent
1014
+ rbs:
1015
+ - "() -> [ Elem?, Elem? ]"
1016
+ - "() { (Elem a, Elem b) -> ::Integer? } -> [ Elem?, Elem? ]"
1017
+ rbs_at: references/rbs/core/array.rbs:2582
1018
+ uniq:
1019
+ source: c
1020
+ cfunc: rb_ary_uniq
1021
+ arity: 0
1022
+ defined_at: references/ruby/array.c:8962
1023
+ c_body_at: references/ruby/array.c:6495
1024
+ c_effects:
1025
+ - block
1026
+ purity: block_dependent
1027
+ rbs:
1028
+ - "() -> ::Array[Elem]"
1029
+ - "() { (Elem item) -> untyped } -> ::Array[Elem]"
1030
+ rbs_at: references/rbs/core/array.rbs:3849
1031
+ uniq!:
1032
+ source: c
1033
+ cfunc: rb_ary_uniq_bang
1034
+ arity: 0
1035
+ defined_at: references/ruby/array.c:8963
1036
+ c_body_at: references/ruby/array.c:6439
1037
+ c_effects:
1038
+ - block
1039
+ - mutate
1040
+ purity: block_dependent
1041
+ rbs:
1042
+ - "() -> self?"
1043
+ - "() { (Elem) -> untyped } -> self?"
1044
+ rbs_at: references/rbs/core/array.rbs:3878
1045
+ compact:
1046
+ source: c
1047
+ cfunc: rb_ary_compact
1048
+ arity: 0
1049
+ defined_at: references/ruby/array.c:8964
1050
+ c_body_at: references/ruby/array.c:6569
1051
+ c_effects: []
1052
+ purity: leaf
1053
+ rbs:
1054
+ - "() -> ::Array[Elem]"
1055
+ rbs_at: references/rbs/core/array.rbs:1361
1056
+ compact!:
1057
+ source: c
1058
+ cfunc: rb_ary_compact_bang
1059
+ arity: 0
1060
+ defined_at: references/ruby/array.c:8965
1061
+ c_body_at: references/ruby/array.c:6532
1062
+ c_effects:
1063
+ - mutate
1064
+ purity: mutates_self
1065
+ rbs:
1066
+ - "() -> self?"
1067
+ rbs_at: references/rbs/core/array.rbs:1378
1068
+ flatten:
1069
+ source: c
1070
+ cfunc: rb_ary_flatten
1071
+ arity: -1
1072
+ defined_at: references/ruby/array.c:8966
1073
+ c_body_at: references/ruby/array.c:6811
1074
+ c_effects: []
1075
+ purity: leaf
1076
+ rbs:
1077
+ - "(?int level) -> ::Array[untyped]"
1078
+ rbs_at: references/rbs/core/array.rbs:2152
1079
+ flatten!:
1080
+ source: c
1081
+ cfunc: rb_ary_flatten_bang
1082
+ arity: -1
1083
+ defined_at: references/ruby/array.c:8967
1084
+ c_body_at: references/ruby/array.c:6754
1085
+ c_effects:
1086
+ - mutate
1087
+ purity: mutates_self
1088
+ rbs:
1089
+ - "(?int level) -> self?"
1090
+ rbs_at: references/rbs/core/array.rbs:2188
1091
+ count:
1092
+ source: c
1093
+ cfunc: rb_ary_count
1094
+ arity: -1
1095
+ defined_at: references/ruby/array.c:8968
1096
+ c_body_at: references/ruby/array.c:6604
1097
+ c_effects:
1098
+ - block
1099
+ - dispatch
1100
+ purity: block_dependent
1101
+ rbs:
1102
+ - "() -> ::Integer"
1103
+ - "(Elem obj) -> ::Integer"
1104
+ - "() { (Elem) -> boolish } -> ::Integer"
1105
+ rbs_at: references/rbs/core/array.rbs:1421
1106
+ cycle:
1107
+ source: c
1108
+ cfunc: rb_ary_cycle
1109
+ arity: -1
1110
+ defined_at: references/ruby/array.c:8969
1111
+ c_body_at: references/ruby/array.c:7060
1112
+ c_effects:
1113
+ - block
1114
+ purity: block_dependent
1115
+ rbs:
1116
+ - "(?int? n) { (Elem) -> void } -> nil"
1117
+ - "(?int? n) -> ::Enumerator[Elem, nil]"
1118
+ rbs_at: references/rbs/core/array.rbs:1457
1119
+ permutation:
1120
+ source: c
1121
+ cfunc: rb_ary_permutation
1122
+ arity: -1
1123
+ defined_at: references/ruby/array.c:8970
1124
+ c_body_at: references/ruby/array.c:7242
1125
+ c_effects:
1126
+ - block
1127
+ purity: block_dependent
1128
+ rbs:
1129
+ - "(?int n) -> ::Enumerator[::Array[Elem], ::Array[Elem]]"
1130
+ - "(?int n) { (::Array[Elem] p) -> void } -> ::Array[Elem]"
1131
+ rbs_at: references/rbs/core/array.rbs:2707
1132
+ combination:
1133
+ source: c
1134
+ cfunc: rb_ary_combination
1135
+ arity: 1
1136
+ defined_at: references/ruby/array.c:8971
1137
+ c_body_at: references/ruby/array.c:7354
1138
+ c_effects:
1139
+ - block
1140
+ purity: block_dependent
1141
+ rbs:
1142
+ - "(int n) { (::Array[Elem]) -> void } -> self"
1143
+ - "(int n) -> ::Enumerator[::Array[Elem], self]"
1144
+ rbs_at: references/rbs/core/array.rbs:1345
1145
+ repeated_permutation:
1146
+ source: c
1147
+ cfunc: rb_ary_repeated_permutation
1148
+ arity: 1
1149
+ defined_at: references/ruby/array.c:8972
1150
+ c_body_at: references/ruby/array.c:7474
1151
+ c_effects:
1152
+ - block
1153
+ purity: block_dependent
1154
+ rbs:
1155
+ - "(int n) { (::Array[Elem] p) -> void } -> self"
1156
+ - "(int n) -> ::Enumerator[::Array[Elem], self]"
1157
+ rbs_at: references/rbs/core/array.rbs:2965
1158
+ repeated_combination:
1159
+ source: c
1160
+ cfunc: rb_ary_repeated_combination
1161
+ arity: 1
1162
+ defined_at: references/ruby/array.c:8973
1163
+ c_body_at: references/ruby/array.c:7580
1164
+ c_effects:
1165
+ - block
1166
+ purity: block_dependent
1167
+ rbs:
1168
+ - "(int n) { (::Array[Elem] c) -> void } -> self"
1169
+ - "(int n) -> ::Enumerator[::Array[Elem], self]"
1170
+ rbs_at: references/rbs/core/array.rbs:2925
1171
+ product:
1172
+ source: c
1173
+ cfunc: rb_ary_product
1174
+ arity: -1
1175
+ defined_at: references/ruby/array.c:8974
1176
+ c_body_at: references/ruby/array.c:7668
1177
+ c_effects:
1178
+ - block
1179
+ - mutate
1180
+ - raises
1181
+ purity: block_dependent
1182
+ rbs:
1183
+ - "() -> ::Array[[ Elem ]]"
1184
+ - "[X] (::Array[X] other_ary) -> ::Array[[ Elem, X ]]"
1185
+ - "[X, Y] (::Array[X] other_ary1, ::Array[Y] other_ary2) -> ::Array[[ Elem,
1186
+ X, Y ]]"
1187
+ - "[U] (*::Array[U] other_arys) -> ::Array[::Array[Elem | U]]"
1188
+ rbs_at: references/rbs/core/array.rbs:2806
1189
+ take:
1190
+ source: c
1191
+ cfunc: rb_ary_take
1192
+ arity: 1
1193
+ defined_at: references/ruby/array.c:8976
1194
+ c_body_at: references/ruby/array.c:7774
1195
+ c_effects:
1196
+ - raises
1197
+ purity: leaf
1198
+ rbs:
1199
+ - "(int n) -> ::Array[Elem]"
1200
+ rbs_at: references/rbs/core/array.rbs:3697
1201
+ take_while:
1202
+ source: c
1203
+ cfunc: rb_ary_take_while
1204
+ arity: 0
1205
+ defined_at: references/ruby/array.c:8977
1206
+ c_body_at: references/ruby/array.c:7805
1207
+ c_effects:
1208
+ - block
1209
+ purity: block_dependent
1210
+ rbs:
1211
+ - "() { (Elem obj) -> boolish } -> ::Array[Elem]"
1212
+ - "() -> ::Enumerator[Elem, ::Array[Elem]]"
1213
+ rbs_at: references/rbs/core/array.rbs:3719
1214
+ drop:
1215
+ source: c
1216
+ cfunc: rb_ary_drop
1217
+ arity: 1
1218
+ defined_at: references/ruby/array.c:8978
1219
+ c_body_at: references/ruby/array.c:7836
1220
+ c_effects:
1221
+ - raises
1222
+ purity: leaf
1223
+ rbs:
1224
+ - "(int n) -> ::Array[Elem]"
1225
+ rbs_at: references/rbs/core/array.rbs:1611
1226
+ drop_while:
1227
+ source: c
1228
+ cfunc: rb_ary_drop_while
1229
+ arity: 0
1230
+ defined_at: references/ruby/array.c:8979
1231
+ c_body_at: references/ruby/array.c:7868
1232
+ c_effects:
1233
+ - block
1234
+ purity: block_dependent
1235
+ rbs:
1236
+ - "() { (Elem obj) -> boolish } -> ::Array[Elem]"
1237
+ - "() -> ::Enumerator[Elem, ::Array[Elem]]"
1238
+ rbs_at: references/rbs/core/array.rbs:1630
1239
+ bsearch:
1240
+ source: c
1241
+ cfunc: rb_ary_bsearch
1242
+ arity: 0
1243
+ defined_at: references/ruby/array.c:8980
1244
+ c_body_at: references/ruby/array.c:3624
1245
+ c_effects: []
1246
+ purity: leaf
1247
+ rbs:
1248
+ - "() -> ::Enumerator[Elem, Elem?]"
1249
+ - "() { (Elem) -> (true | false) } -> Elem?"
1250
+ - "() { (Elem) -> ::Integer } -> Elem?"
1251
+ rbs_at: references/rbs/core/array.rbs:1228
1252
+ bsearch_index:
1253
+ source: c
1254
+ cfunc: rb_ary_bsearch_index
1255
+ arity: 0
1256
+ defined_at: references/ruby/array.c:8981
1257
+ c_body_at: references/ruby/array.c:3648
1258
+ c_effects:
1259
+ - block
1260
+ - dispatch
1261
+ - raises
1262
+ purity: block_dependent
1263
+ rbs:
1264
+ - "() { (Elem) -> (true | false) } -> ::Integer?"
1265
+ - "() { (Elem) -> ::Integer } -> ::Integer?"
1266
+ rbs_at: references/rbs/core/array.rbs:1244
1267
+ any?:
1268
+ source: c
1269
+ cfunc: rb_ary_any_p
1270
+ arity: -1
1271
+ defined_at: references/ruby/array.c:8982
1272
+ c_body_at: references/ruby/array.c:7919
1273
+ c_effects:
1274
+ - block
1275
+ - dispatch
1276
+ purity: block_dependent
1277
+ all?:
1278
+ source: c
1279
+ cfunc: rb_ary_all_p
1280
+ arity: -1
1281
+ defined_at: references/ruby/array.c:8983
1282
+ c_body_at: references/ruby/array.c:7986
1283
+ c_effects:
1284
+ - block
1285
+ - dispatch
1286
+ purity: block_dependent
1287
+ rbs:
1288
+ - "() -> bool"
1289
+ - "(_Pattern[Elem] pattern) -> bool"
1290
+ - "() { (Elem obj) -> boolish } -> bool"
1291
+ rbs_at: references/rbs/core/array.rbs:1116
1292
+ none?:
1293
+ source: c
1294
+ cfunc: rb_ary_none_p
1295
+ arity: -1
1296
+ defined_at: references/ruby/array.c:8984
1297
+ c_body_at: references/ruby/array.c:8047
1298
+ c_effects:
1299
+ - block
1300
+ - dispatch
1301
+ purity: block_dependent
1302
+ one?:
1303
+ source: c
1304
+ cfunc: rb_ary_one_p
1305
+ arity: -1
1306
+ defined_at: references/ruby/array.c:8985
1307
+ c_body_at: references/ruby/array.c:8111
1308
+ c_effects:
1309
+ - block
1310
+ - dispatch
1311
+ purity: block_dependent
1312
+ dig:
1313
+ source: c
1314
+ cfunc: rb_ary_dig
1315
+ arity: -1
1316
+ defined_at: references/ruby/array.c:8986
1317
+ c_body_at: references/ruby/array.c:8169
1318
+ c_effects: []
1319
+ purity: leaf
1320
+ rbs:
1321
+ - "(int idx) -> Elem?"
1322
+ - "(int idx, untyped, *untyped) -> untyped"
1323
+ rbs_at: references/rbs/core/array.rbs:1591
1324
+ sum:
1325
+ source: c
1326
+ cfunc: rb_ary_sum
1327
+ arity: -1
1328
+ defined_at: references/ruby/array.c:8987
1329
+ c_body_at: references/ruby/array.c:8234
1330
+ c_effects:
1331
+ - block
1332
+ - dispatch
1333
+ purity: block_dependent
1334
+ rbs:
1335
+ - "(?untyped init) -> untyped"
1336
+ - "(?untyped init) { (Elem e) -> untyped } -> untyped"
1337
+ rbs_at: references/rbs/core/array.rbs:3679
1338
+ freeze:
1339
+ source: c
1340
+ cfunc: rb_ary_freeze
1341
+ arity: 0
1342
+ defined_at: references/ruby/array.c:8988
1343
+ c_body_at: references/ruby/array.c:652
1344
+ c_effects:
1345
+ - mutate
1346
+ purity: mutates_self
1347
+ deconstruct:
1348
+ source: c
1349
+ cfunc: rb_ary_deconstruct
1350
+ arity: 0
1351
+ defined_at: references/ruby/array.c:8990
1352
+ c_body_at: references/ruby/array.c:8352
1353
+ c_effects: []
1354
+ purity: leaf
1355
+ rbs:
1356
+ - "() -> self"
1357
+ rbs_at: references/rbs/core/array.rbs:1465
1358
+ shuffle!:
1359
+ source: prelude
1360
+ prelude_attrs: []
1361
+ body_kind: composed
1362
+ cexpr_target:
1363
+ prelude_at: references/ruby/array.rb:22
1364
+ purity: unknown
1365
+ arity: -1
1366
+ cfunc:
1367
+ defined_at: references/ruby/array.rb:22
1368
+ rbs:
1369
+ - "(?random: _Rand rng) -> self"
1370
+ rbs_at: references/rbs/core/array.rbs:3343
1371
+ shuffle:
1372
+ source: prelude
1373
+ prelude_attrs: []
1374
+ body_kind: composed
1375
+ cexpr_target:
1376
+ prelude_at: references/ruby/array.rb:45
1377
+ purity: unknown
1378
+ arity: -1
1379
+ cfunc:
1380
+ defined_at: references/ruby/array.rb:45
1381
+ rbs:
1382
+ - "(?random: _Rand rng) -> ::Array[Elem]"
1383
+ rbs_at: references/rbs/core/array.rbs:3319
1384
+ sample:
1385
+ source: prelude
1386
+ prelude_attrs: []
1387
+ body_kind: composed
1388
+ cexpr_target:
1389
+ prelude_at: references/ruby/array.rb:95
1390
+ purity: unknown
1391
+ arity: -1
1392
+ cfunc:
1393
+ defined_at: references/ruby/array.rb:95
1394
+ rbs:
1395
+ - "(?random: _Rand rng) -> Elem"
1396
+ - "(int n, ?random: _Rand rng) -> ::Array[Elem]"
1397
+ rbs_at: references/rbs/core/array.rbs:3209
1398
+ first:
1399
+ source: prelude
1400
+ prelude_attrs: []
1401
+ body_kind: composed
1402
+ cexpr_target:
1403
+ prelude_at: references/ruby/array.rb:129
1404
+ purity: unknown
1405
+ arity: -1
1406
+ cfunc:
1407
+ defined_at: references/ruby/array.rb:129
1408
+ rbs:
1409
+ - "() -> Elem"
1410
+ - "(int n) -> ::Array[Elem]"
1411
+ rbs_at: references/rbs/core/array.rbs:2116
1412
+ last:
1413
+ source: prelude
1414
+ prelude_attrs: []
1415
+ body_kind: composed
1416
+ cexpr_target:
1417
+ prelude_at: references/ruby/array.rb:166
1418
+ purity: unknown
1419
+ arity: -1
1420
+ cfunc:
1421
+ defined_at: references/ruby/array.rb:166
1422
+ rbs:
1423
+ - "() -> Elem"
1424
+ - "(int n) -> ::Array[Elem]"
1425
+ rbs_at: references/rbs/core/array.rbs:2411
1426
+ fetch_values:
1427
+ source: prelude
1428
+ prelude_attrs: []
1429
+ body_kind: composed
1430
+ cexpr_target:
1431
+ prelude_at: references/ruby/array.rb:210
1432
+ purity: unknown
1433
+ arity: -1
1434
+ cfunc:
1435
+ defined_at: references/ruby/array.rb:210
1436
+ rbs:
1437
+ - "(*int indexes) -> self"
1438
+ rbs_at: references/rbs/core/array.rbs:1811
1439
+ singleton_methods:
1440
+ new:
1441
+ source: c
1442
+ cfunc: rb_ary_s_new
1443
+ arity: -1
1444
+ defined_at: references/ruby/array.c:8869
1445
+ c_body_at: references/ruby/array.c:1073
1446
+ c_effects: []
1447
+ purity: leaf
1448
+ "[]":
1449
+ source: c
1450
+ cfunc: rb_ary_s_create
1451
+ arity: -1
1452
+ defined_at: references/ruby/array.c:8870
1453
+ c_body_at: references/ruby/array.c:1211
1454
+ c_effects: []
1455
+ purity: leaf
1456
+ rbs:
1457
+ - "[U] (*U) -> ::Array[U]"
1458
+ rbs_at: references/rbs/core/array.rbs:624
1459
+ try_convert:
1460
+ source: c
1461
+ cfunc: rb_ary_s_try_convert
1462
+ arity: 1
1463
+ defined_at: references/ruby/array.c:8871
1464
+ c_body_at: references/ruby/array.c:1066
1465
+ c_effects: []
1466
+ purity: leaf
1467
+ rbs:
1468
+ - "[U] (untyped) -> ::Array[U]?"
1469
+ rbs_at: references/rbs/core/array.rbs:643
1470
+ undefined: []