rigortype 0.2.9 → 0.3.1

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 (222) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +2 -2
  3. data/data/builtins/ruby_core/array.yml +416 -392
  4. data/data/builtins/ruby_core/file.yml +42 -42
  5. data/data/builtins/ruby_core/hash.yml +302 -302
  6. data/data/builtins/ruby_core/io.yml +191 -191
  7. data/data/builtins/ruby_core/numeric.yml +321 -366
  8. data/data/builtins/ruby_core/proc.yml +124 -124
  9. data/data/builtins/ruby_core/range.yml +21 -21
  10. data/data/builtins/ruby_core/rational.yml +39 -39
  11. data/data/builtins/ruby_core/re.yml +65 -65
  12. data/data/builtins/ruby_core/set.yml +106 -106
  13. data/data/builtins/ruby_core/struct.yml +14 -14
  14. data/data/core_overlay/string_scanner.rbs +6 -5
  15. data/docs/handbook/01-getting-started.md +22 -34
  16. data/docs/handbook/03-narrowing.md +2 -1
  17. data/docs/handbook/04-tuples-and-shapes.md +7 -3
  18. data/docs/handbook/06-classes.md +19 -10
  19. data/docs/handbook/07-rbs-and-extended.md +76 -101
  20. data/docs/handbook/08-understanding-errors.md +114 -246
  21. data/docs/handbook/09-plugins.md +54 -144
  22. data/docs/handbook/11-sig-gen.md +11 -1
  23. data/docs/handbook/README.md +5 -3
  24. data/docs/handbook/appendix-liskov.md +4 -2
  25. data/docs/handbook/appendix-mypy.md +4 -3
  26. data/docs/handbook/appendix-phpstan.md +14 -7
  27. data/docs/handbook/appendix-steep.md +4 -2
  28. data/docs/handbook/appendix-type-theory.md +3 -1
  29. data/docs/install.md +14 -6
  30. data/docs/manual/01-installation.md +98 -4
  31. data/docs/manual/02-cli-reference.md +81 -12
  32. data/docs/manual/03-configuration.md +34 -2
  33. data/docs/manual/04-diagnostics.md +59 -4
  34. data/docs/manual/06-baseline.md +35 -1
  35. data/docs/manual/07-plugins.md +4 -4
  36. data/docs/manual/08-skills.md +6 -1
  37. data/docs/manual/09-editor-integration.md +7 -6
  38. data/docs/manual/11-ci.md +51 -0
  39. data/docs/manual/12-caching.md +65 -0
  40. data/docs/manual/plugins/rigor-actioncable.md +32 -0
  41. data/docs/manual/plugins/rigor-devise.md +4 -2
  42. data/lib/rigor/analysis/check_rules/always_truthy_condition_collector.rb +9 -1
  43. data/lib/rigor/analysis/check_rules/dead_assignment_collector.rb +5 -3
  44. data/lib/rigor/analysis/check_rules/duplicate_hash_key_collector.rb +128 -0
  45. data/lib/rigor/analysis/check_rules/inferred_param_guard.rb +60 -0
  46. data/lib/rigor/analysis/check_rules/ivar_write_collector.rb +3 -2
  47. data/lib/rigor/analysis/check_rules/return_in_ensure_collector.rb +117 -0
  48. data/lib/rigor/analysis/check_rules/rule_ids.rb +125 -0
  49. data/lib/rigor/analysis/check_rules/rule_walk.rb +2 -1
  50. data/lib/rigor/analysis/check_rules/self_closedness_scanner.rb +2 -1
  51. data/lib/rigor/analysis/check_rules/shadowed_rescue_collector.rb +283 -0
  52. data/lib/rigor/analysis/check_rules/unreachable_clause_collector.rb +10 -1
  53. data/lib/rigor/analysis/check_rules/void_value_use_collector.rb +112 -0
  54. data/lib/rigor/analysis/check_rules.rb +581 -98
  55. data/lib/rigor/analysis/dependency_recorder.rb +93 -9
  56. data/lib/rigor/analysis/dependency_source_inference/walker.rb +2 -1
  57. data/lib/rigor/analysis/incremental_session.rb +456 -51
  58. data/lib/rigor/analysis/path_expansion.rb +42 -0
  59. data/lib/rigor/analysis/plugin_fact_fingerprint.rb +188 -0
  60. data/lib/rigor/analysis/rule_catalog.rb +226 -1
  61. data/lib/rigor/analysis/run_cache_key.rb +78 -0
  62. data/lib/rigor/analysis/run_cache_probe.rb +72 -0
  63. data/lib/rigor/analysis/runner/diagnostic_aggregator.rb +181 -28
  64. data/lib/rigor/analysis/runner/pool_coordinator.rb +77 -15
  65. data/lib/rigor/analysis/runner/project_pre_passes.rb +95 -49
  66. data/lib/rigor/analysis/runner/run_snapshots.rb +9 -2
  67. data/lib/rigor/analysis/runner.rb +344 -68
  68. data/lib/rigor/analysis/severity_stamp.rb +43 -0
  69. data/lib/rigor/analysis/worker_session.rb +30 -2
  70. data/lib/rigor/bleeding_edge.rb +37 -8
  71. data/lib/rigor/builtins/regex_refinement.rb +36 -1
  72. data/lib/rigor/cache/descriptor.rb +88 -28
  73. data/lib/rigor/cache/file_digest.rb +158 -0
  74. data/lib/rigor/cache/incremental_snapshot.rb +41 -5
  75. data/lib/rigor/cache/rbs_cache_producer.rb +11 -1
  76. data/lib/rigor/cache/rbs_descriptor.rb +56 -10
  77. data/lib/rigor/cache/rbs_environment_marshal_patch.rb +38 -0
  78. data/lib/rigor/cache/store.rb +132 -27
  79. data/lib/rigor/ci_detector.rb +90 -0
  80. data/lib/rigor/cli/annotate_command.rb +15 -9
  81. data/lib/rigor/cli/baseline_command.rb +4 -1
  82. data/lib/rigor/cli/check_command.rb +223 -32
  83. data/lib/rigor/cli/check_invocation.rb +84 -0
  84. data/lib/rigor/cli/coverage_command.rb +6 -1
  85. data/lib/rigor/cli/docs_command.rb +0 -30
  86. data/lib/rigor/cli/doctor_command.rb +169 -31
  87. data/lib/rigor/cli/lsp_command.rb +5 -0
  88. data/lib/rigor/cli/mcp_command.rb +5 -0
  89. data/lib/rigor/cli/plugins_command.rb +36 -6
  90. data/lib/rigor/cli/plugins_renderer.rb +44 -12
  91. data/lib/rigor/cli/probe_environment.rb +85 -0
  92. data/lib/rigor/cli/sig_gen_command.rb +36 -9
  93. data/lib/rigor/cli/skill_command.rb +22 -33
  94. data/lib/rigor/cli/skill_deep_probe.rb +172 -0
  95. data/lib/rigor/cli/skill_describe.rb +75 -9
  96. data/lib/rigor/cli/trace_command.rb +5 -6
  97. data/lib/rigor/cli/type_of_command.rb +9 -8
  98. data/lib/rigor/cli/type_scan_command.rb +8 -8
  99. data/lib/rigor/cli.rb +15 -4
  100. data/lib/rigor/config_audit.rb +48 -2
  101. data/lib/rigor/configuration/severity_profile.rb +31 -0
  102. data/lib/rigor/configuration.rb +156 -8
  103. data/lib/rigor/environment/default_libraries.rb +36 -0
  104. data/lib/rigor/environment/rbs_loader.rb +164 -5
  105. data/lib/rigor/environment.rb +29 -28
  106. data/lib/rigor/inference/budget_trace.rb +77 -2
  107. data/lib/rigor/inference/closure_escape_analyzer.rb +14 -1
  108. data/lib/rigor/inference/def_handle.rb +23 -0
  109. data/lib/rigor/inference/def_node_resolver.rb +90 -0
  110. data/lib/rigor/inference/def_return_typer.rb +2 -1
  111. data/lib/rigor/inference/expression_typer.rb +361 -113
  112. data/lib/rigor/inference/method_dispatcher/data_folding.rb +30 -5
  113. data/lib/rigor/inference/method_dispatcher/kernel_dispatch.rb +200 -0
  114. data/lib/rigor/inference/method_dispatcher/literal_string_folding.rb +22 -16
  115. data/lib/rigor/inference/method_dispatcher/member_shape_projection.rb +33 -0
  116. data/lib/rigor/inference/method_dispatcher/overload_selector.rb +17 -1
  117. data/lib/rigor/inference/method_dispatcher/rbs_dispatch.rb +42 -9
  118. data/lib/rigor/inference/method_dispatcher/receiver_affinity.rb +5 -0
  119. data/lib/rigor/inference/method_dispatcher/shape_dispatch.rb +28 -35
  120. data/lib/rigor/inference/method_dispatcher/struct_folding.rb +40 -8
  121. data/lib/rigor/inference/method_dispatcher.rb +57 -1
  122. data/lib/rigor/inference/mutation_widening.rb +42 -8
  123. data/lib/rigor/inference/narrowing.rb +127 -17
  124. data/lib/rigor/inference/parameter_inference_collector.rb +15 -0
  125. data/lib/rigor/inference/project_patched_scanner.rb +2 -1
  126. data/lib/rigor/inference/rbs_type_translator.rb +8 -1
  127. data/lib/rigor/inference/scope_indexer.rb +451 -36
  128. data/lib/rigor/inference/statement_evaluator.rb +64 -15
  129. data/lib/rigor/inference/struct_fold_safety.rb +48 -11
  130. data/lib/rigor/inference/synthetic_method_scanner.rb +15 -14
  131. data/lib/rigor/inference/void_origin.rb +25 -0
  132. data/lib/rigor/inference/void_tail_summary.rb +220 -0
  133. data/lib/rigor/language_server/buffer_resolution.rb +6 -3
  134. data/lib/rigor/language_server/buffer_table.rb +46 -6
  135. data/lib/rigor/language_server/completion_provider.rb +2 -1
  136. data/lib/rigor/language_server/diagnostic_publisher.rb +4 -0
  137. data/lib/rigor/language_server/document_symbol_provider.rb +2 -1
  138. data/lib/rigor/language_server/folding_range_provider.rb +2 -1
  139. data/lib/rigor/language_server/incremental_sync.rb +159 -0
  140. data/lib/rigor/language_server/selection_range_provider.rb +2 -1
  141. data/lib/rigor/language_server/server.rb +19 -9
  142. data/lib/rigor/language_server/signature_help_provider.rb +2 -1
  143. data/lib/rigor/language_server.rb +1 -0
  144. data/lib/rigor/plugin/base.rb +38 -24
  145. data/lib/rigor/plugin/inflector.rb +12 -3
  146. data/lib/rigor/plugin/io_boundary.rb +5 -1
  147. data/lib/rigor/plugin/isolation.rb +81 -11
  148. data/lib/rigor/plugin/load_error.rb +10 -1
  149. data/lib/rigor/plugin/loader.rb +96 -14
  150. data/lib/rigor/plugin/node_rule_walk.rb +5 -3
  151. data/lib/rigor/plugin/registry.rb +32 -23
  152. data/lib/rigor/plugin.rb +26 -0
  153. data/lib/rigor/protection/mutator.rb +3 -2
  154. data/lib/rigor/reflection.rb +64 -0
  155. data/lib/rigor/runtime/jit.rb +128 -0
  156. data/lib/rigor/scope/discovery_index.rb +12 -2
  157. data/lib/rigor/scope.rb +122 -28
  158. data/lib/rigor/sig_gen/classification.rb +5 -1
  159. data/lib/rigor/sig_gen/generator.rb +38 -6
  160. data/lib/rigor/sig_gen/observation_collector.rb +4 -3
  161. data/lib/rigor/sig_gen/rbs_validity.rb +44 -0
  162. data/lib/rigor/sig_gen/renderer.rb +10 -0
  163. data/lib/rigor/sig_gen/write_result.rb +9 -4
  164. data/lib/rigor/sig_gen/writer.rb +207 -49
  165. data/lib/rigor/source/node_children.rb +116 -0
  166. data/lib/rigor/source/node_locator.rb +3 -1
  167. data/lib/rigor/source/node_walker.rb +4 -2
  168. data/lib/rigor/source.rb +1 -0
  169. data/lib/rigor/type/difference.rb +28 -24
  170. data/lib/rigor/type/hash_shape.rb +34 -10
  171. data/lib/rigor/version.rb +1 -1
  172. data/lib/rigortype.rb +24 -0
  173. data/plugins/rigor-actioncable/lib/rigor/plugin/actioncable/channel_discoverer.rb +4 -2
  174. data/plugins/rigor-actioncable/lib/rigor/plugin/actioncable.rb +51 -1
  175. data/plugins/rigor-actionmailer/lib/rigor/plugin/actionmailer/mailer_discoverer.rb +6 -4
  176. data/plugins/rigor-actionpack/lib/rigor/plugin/actionpack/controller_discoverer.rb +5 -3
  177. data/plugins/rigor-activejob/lib/rigor/plugin/activejob/job_discoverer.rb +4 -2
  178. data/plugins/rigor-activerecord/lib/rigor/plugin/activerecord/analyzer.rb +3 -1
  179. data/plugins/rigor-activerecord/lib/rigor/plugin/activerecord/model_discoverer.rb +4 -2
  180. data/plugins/rigor-activerecord/lib/rigor/plugin/activerecord/schema_parser.rb +4 -2
  181. data/plugins/rigor-activestorage/lib/rigor/plugin/activestorage/analyzer.rb +3 -1
  182. data/plugins/rigor-activestorage/lib/rigor/plugin/activestorage/attachment_discoverer.rb +4 -2
  183. data/plugins/rigor-dry-types/lib/rigor/plugin/dry_types.rb +38 -6
  184. data/plugins/rigor-factorybot/lib/rigor/plugin/factorybot/factory_discoverer.rb +3 -1
  185. data/plugins/rigor-hanami/lib/rigor/plugin/hanami/action_checker.rb +3 -1
  186. data/plugins/rigor-mangrove/lib/rigor/plugin/mangrove.rb +10 -0
  187. data/plugins/rigor-minitest/lib/rigor/plugin/minitest.rb +11 -0
  188. data/plugins/rigor-pundit/lib/rigor/plugin/pundit/policy_discoverer.rb +3 -1
  189. data/plugins/rigor-rails/lib/rigor-rails.rb +11 -12
  190. data/plugins/rigor-rails-routes/lib/rigor/plugin/rails_routes/grape_api_discoverer.rb +3 -1
  191. data/plugins/rigor-rails-routes/lib/rigor/plugin/rails_routes/helper_discoverer.rb +3 -1
  192. data/plugins/rigor-rails-routes/lib/rigor/plugin/rails_routes/routes_parser.rb +7 -5
  193. data/plugins/rigor-rbs-inline/lib/rigor/plugin/rbs_inline.rb +83 -9
  194. data/plugins/rigor-rbs-inline/lib/rigor-rbs-inline.rb +9 -5
  195. data/plugins/rigor-rspec/lib/rigor/plugin/rspec/let_scope_index.rb +3 -1
  196. data/plugins/rigor-rspec/lib/rigor/plugin/rspec/scope_walker.rb +3 -1
  197. data/plugins/rigor-rspec/lib/rigor/plugin/rspec.rb +11 -0
  198. data/plugins/rigor-rspec-rails/lib/rigor/plugin/rspec_rails/http_status_codes.rb +4 -1
  199. data/plugins/rigor-sidekiq/lib/rigor/plugin/sidekiq/worker_discoverer.rb +4 -2
  200. data/plugins/rigor-sorbet/lib/rigor/plugin/sorbet/catalog_walker.rb +3 -1
  201. data/plugins/rigor-sorbet/lib/rigor/plugin/sorbet.rb +74 -14
  202. data/sig/prism_node_children.rbs +9 -0
  203. data/sig/rigor/cache.rbs +6 -0
  204. data/sig/rigor/inference/void_origin.rbs +18 -0
  205. data/sig/rigor/inference.rbs +7 -0
  206. data/sig/rigor/plugin/base.rbs +6 -6
  207. data/sig/rigor/reflection.rbs +1 -0
  208. data/sig/rigor/scope.rbs +12 -1
  209. data/skills/rigor-ci-setup/SKILL.md +10 -0
  210. data/skills/rigor-editor-setup/SKILL.md +11 -0
  211. data/skills/rigor-next-steps/SKILL.md +23 -2
  212. data/skills/rigor-plugin-author/SKILL.md +3 -3
  213. data/skills/rigor-plugin-author/references/02-walker-and-types.md +2 -2
  214. data/skills/rigor-plugin-review/SKILL.md +2 -2
  215. data/skills/rigor-plugin-review/references/01-best-practices-checklist.md +5 -4
  216. data/skills/rigor-project-init/SKILL.md +29 -3
  217. data/skills/rigor-project-init/references/01-detect.md +1 -1
  218. data/skills/rigor-project-init/references/02-configure.md +39 -5
  219. data/skills/rigor-project-init/references/03-baseline-and-bugs.md +20 -0
  220. data/skills/rigor-project-init/references/05-jit-performance.md +125 -0
  221. metadata +48 -26
  222. data/lib/rigor/cli/ci_detector.rb +0 -89
@@ -20,187 +20,187 @@ purity_levels:
20
20
  classes:
21
21
  Hash:
22
22
  parent: Object
23
- defined_at: references/ruby/hash.c:7347
23
+ defined_at: references/ruby/hash.c:7350
24
24
  includes:
25
25
  - module: Enumerable
26
- defined_at: references/ruby/hash.c:7349
26
+ defined_at: references/ruby/hash.c:7352
27
27
  constants: {}
28
28
  aliases:
29
29
  to_s:
30
30
  old: inspect
31
31
  source: c
32
- defined_at: references/ruby/hash.c:7362
32
+ defined_at: references/ruby/hash.c:7365
33
33
  instance_methods:
34
34
  initialize_copy:
35
35
  source: c
36
36
  cfunc: rb_hash_replace
37
37
  arity: 1
38
- defined_at: references/ruby/hash.c:7354
39
- c_body_at: references/ruby/hash.c:2966
38
+ defined_at: references/ruby/hash.c:7357
39
+ c_body_at: references/ruby/hash.c:2969
40
40
  c_effects:
41
41
  - mutate
42
42
  - raises
43
43
  purity: mutates_self
44
- rbs:
45
- - "(self object) -> self"
46
- rbs_at: references/rbs/core/hash.rbs:2166
47
44
  rehash:
48
45
  source: c
49
46
  cfunc: rb_hash_rehash
50
47
  arity: 0
51
- defined_at: references/ruby/hash.c:7355
52
- c_body_at: references/ruby/hash.c:1959
48
+ defined_at: references/ruby/hash.c:7358
49
+ c_body_at: references/ruby/hash.c:1962
53
50
  c_effects:
54
51
  - mutate
55
52
  - raises
56
53
  purity: mutates_self
57
54
  rbs:
58
55
  - "() -> self"
59
- rbs_at: references/rbs/core/hash.rbs:1545
56
+ rbs_at: references/rbs/core/hash.rbs:1572
60
57
  freeze:
61
58
  source: c
62
59
  cfunc: rb_hash_freeze
63
60
  arity: 0
64
- defined_at: references/ruby/hash.c:7356
61
+ defined_at: references/ruby/hash.c:7359
65
62
  c_body_at: references/ruby/hash.c:104
66
63
  c_effects:
67
64
  - mutate
68
65
  purity: mutates_self
66
+ rbs:
67
+ - "() -> self"
68
+ rbs_at: references/rbs/core/hash.rbs:1574
69
69
  to_hash:
70
70
  source: c
71
71
  cfunc: rb_hash_to_hash
72
72
  arity: 0
73
- defined_at: references/ruby/hash.c:7358
74
- c_body_at: references/ruby/hash.c:3676
73
+ defined_at: references/ruby/hash.c:7361
74
+ c_body_at: references/ruby/hash.c:3679
75
75
  c_effects: []
76
76
  purity: leaf
77
77
  rbs:
78
78
  - "() -> self"
79
- rbs_at: references/rbs/core/hash.rbs:1759
79
+ rbs_at: references/rbs/core/hash.rbs:1777
80
80
  to_h:
81
81
  source: c
82
82
  cfunc: rb_hash_to_h
83
83
  arity: 0
84
- defined_at: references/ruby/hash.c:7359
85
- c_body_at: references/ruby/hash.c:3735
84
+ defined_at: references/ruby/hash.c:7362
85
+ c_body_at: references/ruby/hash.c:3738
86
86
  c_effects:
87
87
  - block
88
88
  purity: block_dependent
89
89
  rbs:
90
90
  - "() -> Hash[K, V]"
91
- - "[A, B] () { (K, V) -> [ A, B ] } -> Hash[A, B]"
92
- rbs_at: references/rbs/core/hash.rbs:1748
91
+ - "[A, B] () { (K key, V value) -> _Pair[A, B] } -> Hash[A, B]"
92
+ rbs_at: references/rbs/core/hash.rbs:1766
93
93
  to_a:
94
94
  source: c
95
95
  cfunc: rb_hash_to_a
96
96
  arity: 0
97
- defined_at: references/ruby/hash.c:7360
98
- c_body_at: references/ruby/hash.c:3559
97
+ defined_at: references/ruby/hash.c:7363
98
+ c_body_at: references/ruby/hash.c:3562
99
99
  c_effects: []
100
100
  purity: leaf
101
101
  rbs:
102
- - "() -> ::Array[[ K, V ]]"
103
- rbs_at: references/rbs/core/hash.rbs:1726
102
+ - "() -> Array[[ K, V ]]"
103
+ rbs_at: references/rbs/core/hash.rbs:1744
104
104
  inspect:
105
105
  source: c
106
106
  cfunc: rb_hash_inspect
107
107
  arity: 0
108
- defined_at: references/ruby/hash.c:7361
109
- c_body_at: references/ruby/hash.c:3660
108
+ defined_at: references/ruby/hash.c:7364
109
+ c_body_at: references/ruby/hash.c:3663
110
110
  c_effects:
111
111
  - dispatch
112
112
  purity: dispatch
113
113
  rbs:
114
114
  - "() -> String"
115
- rbs_at: references/rbs/core/hash.rbs:1325
115
+ rbs_at: references/rbs/core/hash.rbs:1349
116
116
  to_proc:
117
117
  source: c
118
118
  cfunc: rb_hash_to_proc
119
119
  arity: 0
120
- defined_at: references/ruby/hash.c:7363
121
- c_body_at: references/ruby/hash.c:5022
120
+ defined_at: references/ruby/hash.c:7366
121
+ c_body_at: references/ruby/hash.c:5025
122
122
  c_effects: []
123
123
  purity: leaf
124
124
  rbs:
125
125
  - "() -> ^(K) -> V?"
126
- rbs_at: references/rbs/core/hash.rbs:1776
126
+ rbs_at: references/rbs/core/hash.rbs:1794
127
127
  "==":
128
128
  source: c
129
129
  cfunc: rb_hash_equal
130
130
  arity: 1
131
- defined_at: references/ruby/hash.c:7365
132
- c_body_at: references/ruby/hash.c:4005
131
+ defined_at: references/ruby/hash.c:7368
132
+ c_body_at: references/ruby/hash.c:4008
133
133
  c_effects: []
134
134
  purity: leaf
135
135
  rbs:
136
136
  - "(untyped other) -> bool"
137
- rbs_at: references/rbs/core/hash.rbs:608
137
+ rbs_at: references/rbs/core/hash.rbs:622
138
138
  "[]":
139
139
  source: c
140
140
  cfunc: rb_hash_aref
141
141
  arity: 1
142
- defined_at: references/ruby/hash.c:7366
143
- c_body_at: references/ruby/hash.c:2068
142
+ defined_at: references/ruby/hash.c:7369
143
+ c_body_at: references/ruby/hash.c:2071
144
144
  c_effects: []
145
145
  purity: leaf
146
146
  rbs:
147
- - "(K arg0) -> V"
148
- rbs_at: references/rbs/core/hash.rbs:674
147
+ - "(_Key key) -> V"
148
+ rbs_at: references/rbs/core/hash.rbs:688
149
149
  hash:
150
150
  source: c
151
151
  cfunc: rb_hash_hash
152
152
  arity: 0
153
- defined_at: references/ruby/hash.c:7367
154
- c_body_at: references/ruby/hash.c:4067
153
+ defined_at: references/ruby/hash.c:7370
154
+ c_body_at: references/ruby/hash.c:4070
155
155
  c_effects: []
156
156
  purity: leaf
157
157
  rbs:
158
158
  - "() -> Integer"
159
- rbs_at: references/rbs/core/hash.rbs:1298
159
+ rbs_at: references/rbs/core/hash.rbs:1322
160
160
  eql?:
161
161
  source: c
162
162
  cfunc: rb_hash_eql
163
163
  arity: 1
164
- defined_at: references/ruby/hash.c:7368
165
- c_body_at: references/ruby/hash.c:4032
164
+ defined_at: references/ruby/hash.c:7371
165
+ c_body_at: references/ruby/hash.c:4035
166
166
  c_effects: []
167
167
  purity: leaf
168
168
  rbs:
169
- - "(untyped) -> bool"
170
- rbs_at: references/rbs/core/hash.rbs:1120
169
+ - "(untyped object) -> bool"
170
+ rbs_at: references/rbs/core/hash.rbs:1136
171
171
  fetch:
172
172
  source: c
173
173
  cfunc: rb_hash_fetch_m
174
174
  arity: -1
175
- defined_at: references/ruby/hash.c:7369
176
- c_body_at: references/ruby/hash.c:2126
175
+ defined_at: references/ruby/hash.c:7372
176
+ c_body_at: references/ruby/hash.c:2129
177
177
  c_effects:
178
178
  - block
179
179
  - dispatch
180
180
  purity: block_dependent
181
181
  rbs:
182
- - "(K arg0) -> V"
183
- - "[X] (K arg0, X arg1) -> (V | X)"
184
- - "[X] (K arg0) { (K arg0) -> X } -> (V | X)"
185
- rbs_at: references/rbs/core/hash.rbs:1164
182
+ - "(_Key key) -> V"
183
+ - "[X] (_Key key, X default_value) -> (V | X)"
184
+ - "[K2 < _Key, X] (K2 key) { (K2 key) -> X } -> (V | X)"
185
+ rbs_at: references/rbs/core/hash.rbs:1180
186
186
  "[]=":
187
187
  source: c
188
188
  cfunc: rb_hash_aset
189
189
  arity: 2
190
- defined_at: references/ruby/hash.c:7370
191
- c_body_at: references/ruby/hash.c:2929
190
+ defined_at: references/ruby/hash.c:7373
191
+ c_body_at: references/ruby/hash.c:2932
192
192
  c_effects:
193
193
  - mutate
194
194
  purity: mutates_self
195
195
  rbs:
196
- - "(K arg0, V arg1) -> V"
197
- rbs_at: references/rbs/core/hash.rbs:704
196
+ - "(K key, V value) -> V"
197
+ rbs_at: references/rbs/core/hash.rbs:718
198
198
  store:
199
199
  source: c
200
200
  cfunc: rb_hash_aset
201
201
  arity: 2
202
- defined_at: references/ruby/hash.c:7371
203
- c_body_at: references/ruby/hash.c:2929
202
+ defined_at: references/ruby/hash.c:7374
203
+ c_body_at: references/ruby/hash.c:2932
204
204
  c_effects:
205
205
  - mutate
206
206
  purity: mutates_self
@@ -208,411 +208,412 @@ classes:
208
208
  source: c
209
209
  cfunc: rb_hash_default
210
210
  arity: -1
211
- defined_at: references/ruby/hash.c:7372
212
- c_body_at: references/ruby/hash.c:2188
211
+ defined_at: references/ruby/hash.c:7375
212
+ c_body_at: references/ruby/hash.c:2191
213
213
  c_effects: []
214
214
  purity: leaf
215
215
  rbs:
216
- - "(?K arg0) -> V?"
217
- rbs_at: references/rbs/core/hash.rbs:869
216
+ - "(?_Key key) -> V?"
217
+ rbs_at: references/rbs/core/hash.rbs:883
218
218
  default=:
219
219
  source: c
220
220
  cfunc: rb_hash_set_default
221
221
  arity: 1
222
- defined_at: references/ruby/hash.c:7373
223
- c_body_at: references/ruby/hash.c:2215
222
+ defined_at: references/ruby/hash.c:7376
223
+ c_body_at: references/ruby/hash.c:2218
224
224
  c_effects:
225
225
  - mutate
226
226
  purity: mutates_self
227
227
  rbs:
228
- - "(V arg0) -> V"
229
- rbs_at: references/rbs/core/hash.rbs:883
228
+ - "(V default) -> V"
229
+ rbs_at: references/rbs/core/hash.rbs:897
230
230
  default_proc:
231
231
  source: c
232
232
  cfunc: rb_hash_default_proc
233
233
  arity: 0
234
- defined_at: references/ruby/hash.c:7374
235
- c_body_at: references/ruby/hash.c:2235
234
+ defined_at: references/ruby/hash.c:7377
235
+ c_body_at: references/ruby/hash.c:2238
236
236
  c_effects: []
237
237
  purity: leaf
238
238
  rbs:
239
- - "() -> (Proc | nil)"
240
- rbs_at: references/rbs/core/hash.rbs:896
239
+ - "() -> (^(self, _Key key) -> V)?"
240
+ rbs_at: references/rbs/core/hash.rbs:910
241
241
  default_proc=:
242
242
  source: c
243
243
  cfunc: rb_hash_set_default_proc
244
244
  arity: 1
245
- defined_at: references/ruby/hash.c:7375
246
- c_body_at: references/ruby/hash.c:2258
245
+ defined_at: references/ruby/hash.c:7378
246
+ c_body_at: references/ruby/hash.c:2261
247
247
  c_effects:
248
248
  - mutate
249
249
  - raises
250
250
  purity: mutates_self
251
251
  rbs:
252
- - "(Proc | _ToProc | nil) -> (Proc | _ToProc | nil)"
253
- rbs_at: references/rbs/core/hash.rbs:911
252
+ - "(nil) -> nil"
253
+ - "(^(self, _Key key) -> V proc) -> ^(self, _Key) -> V"
254
+ - "(_ToProc proc) -> Proc"
255
+ rbs_at: references/rbs/core/hash.rbs:925
254
256
  key:
255
257
  source: c
256
258
  cfunc: rb_hash_key
257
259
  arity: 1
258
- defined_at: references/ruby/hash.c:7376
259
- c_body_at: references/ruby/hash.c:2307
260
+ defined_at: references/ruby/hash.c:7379
261
+ c_body_at: references/ruby/hash.c:2310
260
262
  c_effects: []
261
263
  purity: leaf
262
264
  rbs:
263
- - "(V) -> K?"
264
- rbs_at: references/rbs/core/hash.rbs:1382
265
+ - "(_Equals) -> K?"
266
+ rbs_at: references/rbs/core/hash.rbs:1406
265
267
  size:
266
268
  source: c
267
269
  cfunc: rb_hash_size
268
270
  arity: 0
269
- defined_at: references/ruby/hash.c:7377
270
- c_body_at: references/ruby/hash.c:3001
271
+ defined_at: references/ruby/hash.c:7380
272
+ c_body_at: references/ruby/hash.c:3004
271
273
  c_effects: []
272
274
  purity: leaf
275
+ rbs:
276
+ - "() -> Integer"
277
+ rbs_at: references/rbs/core/hash.rbs:1442
273
278
  length:
274
279
  source: c
275
280
  cfunc: rb_hash_size
276
281
  arity: 0
277
- defined_at: references/ruby/hash.c:7378
278
- c_body_at: references/ruby/hash.c:3001
282
+ defined_at: references/ruby/hash.c:7381
283
+ c_body_at: references/ruby/hash.c:3004
279
284
  c_effects: []
280
285
  purity: leaf
281
- rbs:
282
- - "() -> Integer"
283
- rbs_at: references/rbs/core/hash.rbs:1415
284
286
  empty?:
285
287
  source: c
286
288
  cfunc: rb_hash_empty_p
287
289
  arity: 0
288
- defined_at: references/ruby/hash.c:7379
289
- c_body_at: references/ruby/hash.c:3025
290
+ defined_at: references/ruby/hash.c:7382
291
+ c_body_at: references/ruby/hash.c:3028
290
292
  c_effects: []
291
293
  purity: leaf
292
294
  rbs:
293
295
  - "() -> bool"
294
- rbs_at: references/rbs/core/hash.rbs:1098
296
+ rbs_at: references/rbs/core/hash.rbs:1114
295
297
  each_value:
296
298
  source: c
297
299
  cfunc: rb_hash_each_value
298
300
  arity: 0
299
- defined_at: references/ruby/hash.c:7381
300
- c_body_at: references/ruby/hash.c:3058
301
+ defined_at: references/ruby/hash.c:7384
302
+ c_body_at: references/ruby/hash.c:3061
301
303
  c_effects: []
302
304
  purity: leaf
303
305
  rbs:
304
- - "() { (V arg0) -> untyped } -> self"
305
- - "() -> ::Enumerator[V, self]"
306
- rbs_at: references/rbs/core/hash.rbs:1084
306
+ - "() -> Enumerator[V, self]"
307
+ - "() { (V value) -> void } -> self"
308
+ rbs_at: references/rbs/core/hash.rbs:1100
307
309
  each_key:
308
310
  source: c
309
311
  cfunc: rb_hash_each_key
310
312
  arity: 0
311
- defined_at: references/ruby/hash.c:7382
312
- c_body_at: references/ruby/hash.c:3092
313
+ defined_at: references/ruby/hash.c:7385
314
+ c_body_at: references/ruby/hash.c:3095
313
315
  c_effects: []
314
316
  purity: leaf
315
317
  rbs:
316
- - "() { (K arg0) -> untyped } -> ::Hash[K, V]"
317
- - "() -> ::Enumerator[K, self]"
318
- rbs_at: references/rbs/core/hash.rbs:1040
318
+ - "() -> Enumerator[K, self]"
319
+ - "() { (K key) -> void } -> self"
320
+ rbs_at: references/rbs/core/hash.rbs:1056
319
321
  each_pair:
320
322
  source: c
321
323
  cfunc: rb_hash_each_pair
322
324
  arity: 0
323
- defined_at: references/ruby/hash.c:7383
324
- c_body_at: references/ruby/hash.c:3138
325
+ defined_at: references/ruby/hash.c:7386
326
+ c_body_at: references/ruby/hash.c:3141
325
327
  c_effects: []
326
328
  purity: leaf
327
329
  each:
328
330
  source: c
329
331
  cfunc: rb_hash_each_pair
330
332
  arity: 0
331
- defined_at: references/ruby/hash.c:7384
332
- c_body_at: references/ruby/hash.c:3138
333
+ defined_at: references/ruby/hash.c:7387
334
+ c_body_at: references/ruby/hash.c:3141
333
335
  c_effects: []
334
336
  purity: leaf
335
337
  rbs:
336
- - "() { ([ K, V ] arg0) -> untyped } -> self"
337
- - "() -> ::Enumerator[[ K, V ], self]"
338
- rbs_at: references/rbs/core/hash.rbs:1018
338
+ - "() -> Enumerator[[ K, V ], self]"
339
+ - "() { ([ K, V ] pair) -> void } -> self"
340
+ rbs_at: references/rbs/core/hash.rbs:1034
339
341
  transform_keys:
340
342
  source: c
341
343
  cfunc: rb_hash_transform_keys
342
344
  arity: -1
343
- defined_at: references/ruby/hash.c:7386
344
- c_body_at: references/ruby/hash.c:3267
345
+ defined_at: references/ruby/hash.c:7389
346
+ c_body_at: references/ruby/hash.c:3270
345
347
  c_effects:
346
348
  - block
347
349
  purity: block_dependent
348
350
  rbs:
349
351
  - "() -> Enumerator[K, Hash[untyped, V]]"
350
- - "[A] (Hash[K, A]) -> Hash[A, V]"
351
- - "[A] () { (K) -> A } -> Hash[A, V]"
352
- - "[A] (Hash[K, A]) { (K) -> A } -> Hash[A, V]"
353
- rbs_at: references/rbs/core/hash.rbs:1872
352
+ - "[K2] (hash[_Key, K2] replacements) -> Hash[K | K2, V]"
353
+ - "[K2] (hash[_Key, K2] replacements) { (K old_key) -> K2 } -> Hash[K2, V]"
354
+ - "[K2] () { (K key) -> K2 } -> Hash[K2, V]"
355
+ rbs_at: references/rbs/core/hash.rbs:1890
354
356
  transform_keys!:
355
357
  source: c
356
358
  cfunc: rb_hash_transform_keys_bang
357
359
  arity: -1
358
- defined_at: references/ruby/hash.c:7387
359
- c_body_at: references/ruby/hash.c:3391
360
+ defined_at: references/ruby/hash.c:7390
361
+ c_body_at: references/ruby/hash.c:3394
360
362
  c_effects:
361
363
  - block
362
364
  - mutate
363
365
  purity: block_dependent
364
366
  rbs:
365
367
  - "() -> Enumerator[K, self]"
366
- - "(Hash[K, K]) -> self"
367
- - "() { (K) -> K } -> self"
368
- - "(Hash[K, K]) { (K) -> K } -> self"
369
- rbs_at: references/rbs/core/hash.rbs:1967
368
+ - "(hash[K, K] replacements) ?{ (K key) -> K } -> self"
369
+ - "() { (K key) -> K } -> self"
370
+ rbs_at: references/rbs/core/hash.rbs:1985
370
371
  transform_values:
371
372
  source: c
372
373
  cfunc: rb_hash_transform_values
373
374
  arity: 0
374
- defined_at: references/ruby/hash.c:7388
375
- c_body_at: references/ruby/hash.c:3488
375
+ defined_at: references/ruby/hash.c:7391
376
+ c_body_at: references/ruby/hash.c:3491
376
377
  c_effects: []
377
378
  purity: leaf
378
379
  rbs:
379
380
  - "() -> Enumerator[V, Hash[K, untyped]]"
380
- - "[A] () { (V) -> A } -> Hash[K, A]"
381
- rbs_at: references/rbs/core/hash.rbs:1990
381
+ - "[V2] () { (V value) -> V2 } -> Hash[K, V2]"
382
+ rbs_at: references/rbs/core/hash.rbs:2007
382
383
  transform_values!:
383
384
  source: c
384
385
  cfunc: rb_hash_transform_values_bang
385
386
  arity: 0
386
- defined_at: references/ruby/hash.c:7389
387
- c_body_at: references/ruby/hash.c:3526
387
+ defined_at: references/ruby/hash.c:7392
388
+ c_body_at: references/ruby/hash.c:3529
388
389
  c_effects:
389
390
  - mutate
390
391
  purity: mutates_self
391
392
  rbs:
392
393
  - "() -> Enumerator[V, self]"
393
- - "() { (V) -> V } -> self"
394
- rbs_at: references/rbs/core/hash.rbs:2013
394
+ - "() { (V value) -> V } -> self"
395
+ rbs_at: references/rbs/core/hash.rbs:2030
395
396
  keys:
396
397
  source: c
397
398
  cfunc: rb_hash_keys
398
399
  arity: 0
399
- defined_at: references/ruby/hash.c:7391
400
- c_body_at: references/ruby/hash.c:3767
400
+ defined_at: references/ruby/hash.c:7394
401
+ c_body_at: references/ruby/hash.c:3770
401
402
  c_effects:
402
403
  - mutate
403
404
  purity: mutates_self
404
405
  rbs:
405
- - "() -> ::Array[K]"
406
- rbs_at: references/rbs/core/hash.rbs:1406
406
+ - "() -> Array[K]"
407
+ rbs_at: references/rbs/core/hash.rbs:1430
407
408
  values:
408
409
  source: c
409
410
  cfunc: rb_hash_values
410
411
  arity: 0
411
- defined_at: references/ruby/hash.c:7392
412
- c_body_at: references/ruby/hash.c:3814
412
+ defined_at: references/ruby/hash.c:7395
413
+ c_body_at: references/ruby/hash.c:3817
413
414
  c_effects:
414
415
  - mutate
415
416
  purity: mutates_self
416
417
  rbs:
417
- - "() -> ::Array[V]"
418
- rbs_at: references/rbs/core/hash.rbs:2081
418
+ - "() -> Array[V]"
419
+ rbs_at: references/rbs/core/hash.rbs:2098
419
420
  values_at:
420
421
  source: c
421
422
  cfunc: rb_hash_values_at
422
423
  arity: -1
423
- defined_at: references/ruby/hash.c:7393
424
- c_body_at: references/ruby/hash.c:2686
424
+ defined_at: references/ruby/hash.c:7396
425
+ c_body_at: references/ruby/hash.c:2689
425
426
  c_effects:
426
427
  - mutate
427
428
  purity: mutates_self
428
429
  rbs:
429
- - "(*K arg0) -> ::Array[V?]"
430
- rbs_at: references/rbs/core/hash.rbs:2099
430
+ - "(*_Key arg0) -> Array[V?]"
431
+ rbs_at: references/rbs/core/hash.rbs:2116
431
432
  fetch_values:
432
433
  source: c
433
434
  cfunc: rb_hash_fetch_values
434
435
  arity: -1
435
- defined_at: references/ruby/hash.c:7394
436
- c_body_at: references/ruby/hash.c:2722
436
+ defined_at: references/ruby/hash.c:7397
437
+ c_body_at: references/ruby/hash.c:2725
437
438
  c_effects:
438
439
  - mutate
439
440
  purity: mutates_self
440
441
  rbs:
441
- - "(*K) -> ::Array[V]"
442
- - "[X] (*K) { (K) -> X } -> ::Array[V | X]"
443
- rbs_at: references/rbs/core/hash.rbs:1189
442
+ - "(*_Key keys) -> Array[V]"
443
+ - "[K2 < _Key, T] (*K2 keys) { (K2 key) -> T } -> Array[V | T]"
444
+ rbs_at: references/rbs/core/hash.rbs:1205
444
445
  shift:
445
446
  source: c
446
447
  cfunc: rb_hash_shift
447
448
  arity: 0
448
- defined_at: references/ruby/hash.c:7396
449
- c_body_at: references/ruby/hash.c:2454
449
+ defined_at: references/ruby/hash.c:7399
450
+ c_body_at: references/ruby/hash.c:2457
450
451
  c_effects:
451
452
  - mutate
452
453
  purity: mutates_self
453
454
  rbs:
454
455
  - "() -> [ K, V ]?"
455
- rbs_at: references/rbs/core/hash.rbs:1659
456
+ rbs_at: references/rbs/core/hash.rbs:1680
456
457
  delete:
457
458
  source: c
458
459
  cfunc: rb_hash_delete_m
459
460
  arity: 1
460
- defined_at: references/ruby/hash.c:7397
461
- c_body_at: references/ruby/hash.c:2401
461
+ defined_at: references/ruby/hash.c:7400
462
+ c_body_at: references/ruby/hash.c:2404
462
463
  c_effects:
463
464
  - block
464
465
  - mutate
465
466
  purity: block_dependent
466
467
  rbs:
467
- - "(K arg0) -> V?"
468
- - "[U] (K arg0) { (K arg0) -> U } -> (U | V)"
469
- rbs_at: references/rbs/core/hash.rbs:945
468
+ - "(_Key key) -> V?"
469
+ - "[T, K2 < _Key] (K2 key) { (K2 key) -> T } -> (T | V)"
470
+ rbs_at: references/rbs/core/hash.rbs:961
470
471
  delete_if:
471
472
  source: c
472
473
  cfunc: rb_hash_delete_if
473
474
  arity: 0
474
- defined_at: references/ruby/hash.c:7398
475
- c_body_at: references/ruby/hash.c:2526
475
+ defined_at: references/ruby/hash.c:7401
476
+ c_body_at: references/ruby/hash.c:2529
476
477
  c_effects:
477
478
  - mutate
478
479
  purity: mutates_self
479
480
  rbs:
480
- - "() { (K, V) -> boolish } -> self"
481
- - "() -> ::Enumerator[[ K, V ], self]"
482
- rbs_at: references/rbs/core/hash.rbs:963
481
+ - "() -> Enumerator[[ K, V ], self]"
482
+ - "() { (K key, V value) -> boolish } -> self"
483
+ rbs_at: references/rbs/core/hash.rbs:979
483
484
  keep_if:
484
485
  source: c
485
486
  cfunc: rb_hash_keep_if
486
487
  arity: 0
487
- defined_at: references/ruby/hash.c:7399
488
- c_body_at: references/ruby/hash.c:2825
488
+ defined_at: references/ruby/hash.c:7402
489
+ c_body_at: references/ruby/hash.c:2828
489
490
  c_effects:
490
491
  - mutate
491
492
  purity: mutates_self
492
493
  rbs:
493
- - "() { (K, V) -> boolish } -> self"
494
- - "() -> ::Enumerator[[ K, V ], self]"
495
- rbs_at: references/rbs/core/hash.rbs:1364
494
+ - "() -> Enumerator[[ K, V ], self]"
495
+ - "() { (K key, V value) -> boolish } -> self"
496
+ rbs_at: references/rbs/core/hash.rbs:1388
496
497
  select:
497
498
  source: c
498
499
  cfunc: rb_hash_select
499
500
  arity: 0
500
- defined_at: references/ruby/hash.c:7400
501
- c_body_at: references/ruby/hash.c:2760
501
+ defined_at: references/ruby/hash.c:7403
502
+ c_body_at: references/ruby/hash.c:2763
502
503
  c_effects: []
503
504
  purity: leaf
505
+ rbs:
506
+ - "() -> Enumerator[[ K, V ], Hash[K, V]]"
507
+ - "() { (K key, V value) -> boolish } -> Hash[K, V]"
508
+ rbs_at: references/rbs/core/hash.rbs:1223
504
509
  select!:
505
510
  source: c
506
511
  cfunc: rb_hash_select_bang
507
512
  arity: 0
508
- defined_at: references/ruby/hash.c:7401
509
- c_body_at: references/ruby/hash.c:2794
513
+ defined_at: references/ruby/hash.c:7404
514
+ c_body_at: references/ruby/hash.c:2797
510
515
  c_effects:
511
516
  - mutate
512
517
  purity: mutates_self
518
+ rbs:
519
+ - "() -> Enumerator[[ K, V ], self?]"
520
+ - "() { (K key, V value) -> boolish } -> self?"
521
+ rbs_at: references/rbs/core/hash.rbs:1244
513
522
  filter:
514
523
  source: c
515
524
  cfunc: rb_hash_select
516
525
  arity: 0
517
- defined_at: references/ruby/hash.c:7402
518
- c_body_at: references/ruby/hash.c:2760
526
+ defined_at: references/ruby/hash.c:7405
527
+ c_body_at: references/ruby/hash.c:2763
519
528
  c_effects: []
520
529
  purity: leaf
521
- rbs:
522
- - "() { (K, V) -> boolish } -> ::Hash[K, V]"
523
- - "() -> ::Enumerator[[ K, V ], ::Hash[K, V]]"
524
- rbs_at: references/rbs/core/hash.rbs:1203
525
530
  filter!:
526
531
  source: c
527
532
  cfunc: rb_hash_select_bang
528
533
  arity: 0
529
- defined_at: references/ruby/hash.c:7403
530
- c_body_at: references/ruby/hash.c:2794
534
+ defined_at: references/ruby/hash.c:7406
535
+ c_body_at: references/ruby/hash.c:2797
531
536
  c_effects:
532
537
  - mutate
533
538
  purity: mutates_self
534
- rbs:
535
- - "() { (K, V) -> boolish } -> self?"
536
- - "() -> ::Enumerator[[ K, V ], self?]"
537
- rbs_at: references/rbs/core/hash.rbs:1220
538
539
  reject:
539
540
  source: c
540
541
  cfunc: rb_hash_reject
541
542
  arity: 0
542
- defined_at: references/ruby/hash.c:7404
543
- c_body_at: references/ruby/hash.c:2590
543
+ defined_at: references/ruby/hash.c:7407
544
+ c_body_at: references/ruby/hash.c:2593
544
545
  c_effects: []
545
546
  purity: leaf
546
547
  rbs:
547
- - "() -> ::Enumerator[[ K, V ], ::Hash[K, V]]"
548
- - "() { (K, V) -> boolish } -> ::Hash[K, V]"
549
- rbs_at: references/rbs/core/hash.rbs:1564
548
+ - "() -> Enumerator[[ K, V ], Hash[K, V]]"
549
+ - "() { (K key, V value) -> boolish } -> Hash[K, V]"
550
+ rbs_at: references/rbs/core/hash.rbs:1593
550
551
  reject!:
551
552
  source: c
552
553
  cfunc: rb_hash_reject_bang
553
554
  arity: 0
554
- defined_at: references/ruby/hash.c:7405
555
- c_body_at: references/ruby/hash.c:2557
555
+ defined_at: references/ruby/hash.c:7408
556
+ c_body_at: references/ruby/hash.c:2560
556
557
  c_effects:
557
558
  - mutate
558
559
  purity: mutates_self
559
560
  rbs:
560
- - "() -> ::Enumerator[[ K, V ], self?]"
561
- - "() { (K, V) -> boolish } -> self?"
562
- rbs_at: references/rbs/core/hash.rbs:1585
561
+ - "() -> Enumerator[[ K, V ], self?]"
562
+ - "() { (K key, V value) -> boolish } -> self?"
563
+ rbs_at: references/rbs/core/hash.rbs:1614
563
564
  slice:
564
565
  source: c
565
566
  cfunc: rb_hash_slice
566
567
  arity: -1
567
- defined_at: references/ruby/hash.c:7406
568
- c_body_at: references/ruby/hash.c:2617
568
+ defined_at: references/ruby/hash.c:7409
569
+ c_body_at: references/ruby/hash.c:2620
569
570
  c_effects:
570
571
  - mutate
571
572
  purity: mutates_self
572
573
  rbs:
573
- - "(*K) -> ::Hash[K, V]"
574
- rbs_at: references/rbs/core/hash.rbs:1685
574
+ - "[K2 < _Key] (*K2 keys) -> Hash[K2, V]"
575
+ rbs_at: references/rbs/core/hash.rbs:1703
575
576
  except:
576
577
  source: c
577
578
  cfunc: rb_hash_except
578
579
  arity: -1
579
- defined_at: references/ruby/hash.c:7407
580
- c_body_at: references/ruby/hash.c:2652
580
+ defined_at: references/ruby/hash.c:7410
581
+ c_body_at: references/ruby/hash.c:2655
581
582
  c_effects:
582
583
  - mutate
583
584
  purity: mutates_self
584
585
  rbs:
585
- - "(*K) -> ::Hash[K, V]"
586
- rbs_at: references/rbs/core/hash.rbs:1135
586
+ - "(*_Key keys) -> Hash[K, V]"
587
+ rbs_at: references/rbs/core/hash.rbs:1151
587
588
  clear:
588
589
  source: c
589
590
  cfunc: rb_hash_clear
590
591
  arity: 0
591
- defined_at: references/ruby/hash.c:7408
592
- c_body_at: references/ruby/hash.c:2851
592
+ defined_at: references/ruby/hash.c:7411
593
+ c_body_at: references/ruby/hash.c:2854
593
594
  c_effects:
594
595
  - mutate
595
596
  purity: mutates_self
596
597
  rbs:
597
598
  - "() -> self"
598
- rbs_at: references/rbs/core/hash.rbs:769
599
+ rbs_at: references/rbs/core/hash.rbs:783
599
600
  invert:
600
601
  source: c
601
602
  cfunc: rb_hash_invert
602
603
  arity: 0
603
- defined_at: references/ruby/hash.c:7409
604
- c_body_at: references/ruby/hash.c:4106
604
+ defined_at: references/ruby/hash.c:7412
605
+ c_body_at: references/ruby/hash.c:4109
605
606
  c_effects: []
606
607
  purity: leaf
607
608
  rbs:
608
- - "() -> ::Hash[V, K]"
609
- rbs_at: references/rbs/core/hash.rbs:1346
609
+ - "() -> Hash[V, K]"
610
+ rbs_at: references/rbs/core/hash.rbs:1370
610
611
  update:
611
612
  source: c
612
613
  cfunc: rb_hash_update
613
614
  arity: -1
614
- defined_at: references/ruby/hash.c:7410
615
- c_body_at: references/ruby/hash.c:4229
615
+ defined_at: references/ruby/hash.c:7413
616
+ c_body_at: references/ruby/hash.c:4232
616
617
  c_effects:
617
618
  - block
618
619
  - mutate
@@ -621,259 +622,259 @@ classes:
621
622
  source: c
622
623
  cfunc: rb_hash_replace
623
624
  arity: 1
624
- defined_at: references/ruby/hash.c:7411
625
- c_body_at: references/ruby/hash.c:2966
625
+ defined_at: references/ruby/hash.c:7414
626
+ c_body_at: references/ruby/hash.c:2969
626
627
  c_effects:
627
628
  - mutate
628
629
  - raises
629
630
  purity: mutates_self
630
631
  rbs:
631
- - "(Hash[K, V]) -> self"
632
- rbs_at: references/rbs/core/hash.rbs:1605
632
+ - "(hash[K, V] other) -> self"
633
+ rbs_at: references/rbs/core/hash.rbs:1634
633
634
  merge!:
634
635
  source: c
635
636
  cfunc: rb_hash_update
636
637
  arity: -1
637
- defined_at: references/ruby/hash.c:7412
638
- c_body_at: references/ruby/hash.c:4229
638
+ defined_at: references/ruby/hash.c:7415
639
+ c_body_at: references/ruby/hash.c:4232
639
640
  c_effects:
640
641
  - block
641
642
  - mutate
642
643
  purity: block_dependent
643
644
  rbs:
644
- - "(*::Hash[K, V] other_hashes) -> self"
645
- - "(*::Hash[K, V] other_hashes) { (K key, V oldval, V newval) -> V } -> self"
646
- rbs_at: references/rbs/core/hash.rbs:1514
645
+ - "(*hash[K, V] other_hashes) -> self"
646
+ - "(*hash[K, V] other_hashes) { (K key, V oldval, V newval) -> V } -> self"
647
+ rbs_at: references/rbs/core/hash.rbs:1541
647
648
  merge:
648
649
  source: c
649
650
  cfunc: rb_hash_merge
650
651
  arity: -1
651
- defined_at: references/ruby/hash.c:7413
652
- c_body_at: references/ruby/hash.c:4340
652
+ defined_at: references/ruby/hash.c:7416
653
+ c_body_at: references/ruby/hash.c:4343
653
654
  c_effects: []
654
655
  purity: leaf
655
656
  rbs:
656
- - "[A, B] (*::Hash[A, B] other_hashes) -> ::Hash[A | K, B | V]"
657
- - "[A, B, C] (*::Hash[A, B] other_hashes) { (K key, V oldval, B newval) ->
658
- C } -> ::Hash[A | K, B | V | C]"
659
- rbs_at: references/rbs/core/hash.rbs:1470
657
+ - "[A, B] (*hash[A, B] other_hashes) -> Hash[A | K, B | V]"
658
+ - "[A, B, C] (*hash[A, B] other_hashes) { (K key, V oldval, B newval) -> C
659
+ } -> Hash[A | K, B | V | C]"
660
+ rbs_at: references/rbs/core/hash.rbs:1497
660
661
  assoc:
661
662
  source: c
662
663
  cfunc: rb_hash_assoc
663
664
  arity: 1
664
- defined_at: references/ruby/hash.c:7414
665
- c_body_at: references/ruby/hash.c:4393
665
+ defined_at: references/ruby/hash.c:7417
666
+ c_body_at: references/ruby/hash.c:4396
666
667
  c_effects: []
667
668
  purity: leaf
668
669
  rbs:
669
- - "(K arg0) -> [ K, V ]?"
670
- rbs_at: references/rbs/core/hash.rbs:759
670
+ - "(_Equals key) -> [ K, V ]?"
671
+ rbs_at: references/rbs/core/hash.rbs:773
671
672
  rassoc:
672
673
  source: c
673
674
  cfunc: rb_hash_rassoc
674
675
  arity: 1
675
- defined_at: references/ruby/hash.c:7415
676
- c_body_at: references/ruby/hash.c:4457
676
+ defined_at: references/ruby/hash.c:7418
677
+ c_body_at: references/ruby/hash.c:4460
677
678
  c_effects: []
678
679
  purity: leaf
679
680
  rbs:
680
- - "(V) -> [ K, V ]?"
681
- rbs_at: references/rbs/core/hash.rbs:1532
681
+ - "(_Equals value) -> [ K, V ]?"
682
+ rbs_at: references/rbs/core/hash.rbs:1559
682
683
  flatten:
683
684
  source: c
684
685
  cfunc: rb_hash_flatten
685
686
  arity: -1
686
- defined_at: references/ruby/hash.c:7416
687
- c_body_at: references/ruby/hash.c:4516
687
+ defined_at: references/ruby/hash.c:7419
688
+ c_body_at: references/ruby/hash.c:4519
688
689
  c_effects:
689
690
  - dispatch
690
691
  purity: dispatch
691
692
  rbs:
692
- - "() -> ::Array[K | V]"
693
- - "(1 level) -> ::Array[K | V]"
694
- - "(Integer level) -> Array[untyped]"
695
- rbs_at: references/rbs/core/hash.rbs:1257
693
+ - "(?1 level) -> Array[K | V]"
694
+ - "(0 level) -> Array[[ K, V ]]"
695
+ - "(int level) -> Array[untyped]"
696
+ rbs_at: references/rbs/core/hash.rbs:1281
696
697
  compact:
697
698
  source: c
698
699
  cfunc: rb_hash_compact
699
700
  arity: 0
700
- defined_at: references/ruby/hash.c:7417
701
- c_body_at: references/ruby/hash.c:4570
701
+ defined_at: references/ruby/hash.c:7420
702
+ c_body_at: references/ruby/hash.c:4573
702
703
  c_effects: []
703
704
  purity: leaf
704
705
  rbs:
705
- - "() -> ::Hash[K, V]"
706
- rbs_at: references/rbs/core/hash.rbs:782
706
+ - "() -> instance"
707
+ rbs_at: references/rbs/core/hash.rbs:796
707
708
  compact!:
708
709
  source: c
709
710
  cfunc: rb_hash_compact_bang
710
711
  arity: 0
711
- defined_at: references/ruby/hash.c:7418
712
- c_body_at: references/ruby/hash.c:4600
712
+ defined_at: references/ruby/hash.c:7421
713
+ c_body_at: references/ruby/hash.c:4603
713
714
  c_effects:
714
715
  - mutate
715
716
  purity: mutates_self
716
717
  rbs:
717
718
  - "() -> self?"
718
- rbs_at: references/rbs/core/hash.rbs:798
719
+ rbs_at: references/rbs/core/hash.rbs:812
719
720
  include?:
720
721
  source: c
721
722
  cfunc: rb_hash_has_key
722
723
  arity: 1
723
- defined_at: references/ruby/hash.c:7420
724
- c_body_at: references/ruby/hash.c:3859
724
+ defined_at: references/ruby/hash.c:7423
725
+ c_body_at: references/ruby/hash.c:3862
725
726
  c_effects: []
726
727
  purity: leaf
727
728
  member?:
728
729
  source: c
729
730
  cfunc: rb_hash_has_key
730
731
  arity: 1
731
- defined_at: references/ruby/hash.c:7421
732
- c_body_at: references/ruby/hash.c:3859
732
+ defined_at: references/ruby/hash.c:7424
733
+ c_body_at: references/ruby/hash.c:3862
733
734
  c_effects: []
734
735
  purity: leaf
735
736
  has_key?:
736
737
  source: c
737
738
  cfunc: rb_hash_has_key
738
739
  arity: 1
739
- defined_at: references/ruby/hash.c:7422
740
- c_body_at: references/ruby/hash.c:3859
740
+ defined_at: references/ruby/hash.c:7425
741
+ c_body_at: references/ruby/hash.c:3862
741
742
  c_effects: []
742
743
  purity: leaf
743
744
  rbs:
744
- - "(_Key) -> bool"
745
- rbs_at: references/rbs/core/hash.rbs:1270
745
+ - "(_Key key) -> bool"
746
+ rbs_at: references/rbs/core/hash.rbs:1294
746
747
  has_value?:
747
748
  source: c
748
749
  cfunc: rb_hash_has_value
749
750
  arity: 1
750
- defined_at: references/ruby/hash.c:7423
751
- c_body_at: references/ruby/hash.c:3886
751
+ defined_at: references/ruby/hash.c:7426
752
+ c_body_at: references/ruby/hash.c:3889
752
753
  c_effects: []
753
754
  purity: leaf
754
755
  rbs:
755
- - "(top arg0) -> bool"
756
- rbs_at: references/rbs/core/hash.rbs:1280
756
+ - "(top value) -> bool"
757
+ rbs_at: references/rbs/core/hash.rbs:1304
757
758
  key?:
758
759
  source: c
759
760
  cfunc: rb_hash_has_key
760
761
  arity: 1
761
- defined_at: references/ruby/hash.c:7424
762
- c_body_at: references/ruby/hash.c:3859
762
+ defined_at: references/ruby/hash.c:7427
763
+ c_body_at: references/ruby/hash.c:3862
763
764
  c_effects: []
764
765
  purity: leaf
765
766
  value?:
766
767
  source: c
767
768
  cfunc: rb_hash_has_value
768
769
  arity: 1
769
- defined_at: references/ruby/hash.c:7425
770
- c_body_at: references/ruby/hash.c:3886
770
+ defined_at: references/ruby/hash.c:7428
771
+ c_body_at: references/ruby/hash.c:3889
771
772
  c_effects: []
772
773
  purity: leaf
773
774
  compare_by_identity:
774
775
  source: c
775
776
  cfunc: rb_hash_compare_by_id
776
777
  arity: 0
777
- defined_at: references/ruby/hash.c:7427
778
- c_body_at: references/ruby/hash.c:4640
778
+ defined_at: references/ruby/hash.c:7430
779
+ c_body_at: references/ruby/hash.c:4643
779
780
  c_effects:
780
781
  - mutate
781
782
  - raises
782
783
  purity: mutates_self
783
784
  rbs:
784
785
  - "() -> self"
785
- rbs_at: references/rbs/core/hash.rbs:825
786
+ rbs_at: references/rbs/core/hash.rbs:839
786
787
  compare_by_identity?:
787
788
  source: c
788
789
  cfunc: rb_hash_compare_by_id_p
789
790
  arity: 0
790
- defined_at: references/ruby/hash.c:7428
791
- c_body_at: references/ruby/hash.c:4695
791
+ defined_at: references/ruby/hash.c:7431
792
+ c_body_at: references/ruby/hash.c:4698
792
793
  c_effects: []
793
794
  purity: leaf
794
795
  rbs:
795
796
  - "() -> bool"
796
- rbs_at: references/rbs/core/hash.rbs:841
797
+ rbs_at: references/rbs/core/hash.rbs:855
797
798
  any?:
798
799
  source: c
799
800
  cfunc: rb_hash_any_p
800
801
  arity: -1
801
- defined_at: references/ruby/hash.c:7430
802
- c_body_at: references/ruby/hash.c:4796
802
+ defined_at: references/ruby/hash.c:7433
803
+ c_body_at: references/ruby/hash.c:4799
803
804
  c_effects:
804
805
  - block
805
806
  purity: block_dependent
806
807
  rbs:
807
808
  - "() -> bool"
808
- - "(untyped pattern) -> bool"
809
- - "() { (K, V) -> boolish } -> bool"
810
- rbs_at: references/rbs/core/hash.rbs:741
809
+ - "(Enumerable::_Pattern pattern) -> bool"
810
+ - "() { ([ K, V ] pair) -> boolish } -> bool"
811
+ rbs_at: references/rbs/core/hash.rbs:755
811
812
  dig:
812
813
  source: c
813
814
  cfunc: rb_hash_dig
814
815
  arity: -1
815
- defined_at: references/ruby/hash.c:7431
816
- c_body_at: references/ruby/hash.c:4860
816
+ defined_at: references/ruby/hash.c:7434
817
+ c_body_at: references/ruby/hash.c:4863
817
818
  c_effects: []
818
819
  purity: leaf
819
820
  rbs:
820
- - "(K, *untyped) -> untyped"
821
- rbs_at: references/rbs/core/hash.rbs:1000
821
+ - "(_Key key, *untyped identifiers) -> untyped"
822
+ rbs_at: references/rbs/core/hash.rbs:1016
822
823
  "<=":
823
824
  source: c
824
825
  cfunc: rb_hash_le
825
826
  arity: 1
826
- defined_at: references/ruby/hash.c:7433
827
- c_body_at: references/ruby/hash.c:4908
827
+ defined_at: references/ruby/hash.c:7436
828
+ c_body_at: references/ruby/hash.c:4911
828
829
  c_effects: []
829
830
  purity: leaf
830
831
  rbs:
831
- - "[A, B] (::Hash[A, B]) -> bool"
832
- rbs_at: references/rbs/core/hash.rbs:580
832
+ - "(hash[untyped, untyped] other_hash) -> bool"
833
+ rbs_at: references/rbs/core/hash.rbs:594
833
834
  "<":
834
835
  source: c
835
836
  cfunc: rb_hash_lt
836
837
  arity: 1
837
- defined_at: references/ruby/hash.c:7434
838
- c_body_at: references/ruby/hash.c:4936
838
+ defined_at: references/ruby/hash.c:7437
839
+ c_body_at: references/ruby/hash.c:4939
839
840
  c_effects: []
840
841
  purity: leaf
841
842
  rbs:
842
- - "[A, B] (::Hash[A, B]) -> bool"
843
- rbs_at: references/rbs/core/hash.rbs:559
843
+ - "(hash[untyped, untyped] other_hash) -> bool"
844
+ rbs_at: references/rbs/core/hash.rbs:573
844
845
  ">=":
845
846
  source: c
846
847
  cfunc: rb_hash_ge
847
848
  arity: 1
848
- defined_at: references/ruby/hash.c:7435
849
- c_body_at: references/ruby/hash.c:4963
849
+ defined_at: references/ruby/hash.c:7438
850
+ c_body_at: references/ruby/hash.c:4966
850
851
  c_effects: []
851
852
  purity: leaf
852
853
  rbs:
853
- - "[A, B] (::Hash[A, B]) -> bool"
854
- rbs_at: references/rbs/core/hash.rbs:654
854
+ - "(hash[untyped, untyped] other_hash) -> bool"
855
+ rbs_at: references/rbs/core/hash.rbs:668
855
856
  ">":
856
857
  source: c
857
858
  cfunc: rb_hash_gt
858
859
  arity: 1
859
- defined_at: references/ruby/hash.c:7436
860
- c_body_at: references/ruby/hash.c:4992
860
+ defined_at: references/ruby/hash.c:7439
861
+ c_body_at: references/ruby/hash.c:4995
861
862
  c_effects: []
862
863
  purity: leaf
863
864
  rbs:
864
- - "[A, B] (::Hash[A, B]) -> bool"
865
- rbs_at: references/rbs/core/hash.rbs:632
865
+ - "(hash[untyped, untyped] other_hash) -> bool"
866
+ rbs_at: references/rbs/core/hash.rbs:646
866
867
  deconstruct_keys:
867
868
  source: c
868
869
  cfunc: rb_hash_deconstruct_keys
869
870
  arity: 1
870
- defined_at: references/ruby/hash.c:7438
871
- c_body_at: references/ruby/hash.c:5029
871
+ defined_at: references/ruby/hash.c:7441
872
+ c_body_at: references/ruby/hash.c:5032
872
873
  c_effects: []
873
874
  purity: leaf
874
875
  rbs:
875
- - "(Array[K] | nil) -> self"
876
- rbs_at: references/rbs/core/hash.rbs:848
876
+ - "(untyped) -> self"
877
+ rbs_at: references/rbs/core/hash.rbs:862
877
878
  initialize:
878
879
  source: prelude
879
880
  prelude_attrs: []
@@ -885,43 +886,42 @@ classes:
885
886
  cfunc:
886
887
  defined_at: references/ruby/hash.rb:37
887
888
  rbs:
888
- - "(?capacity: int) -> void"
889
- - "(V default, ?capacity: int) -> void"
890
- - "(?capacity: int) { (Hash[K, V] hash, K key) -> V } -> void"
891
- rbs_at: references/rbs/core/hash.rbs:2142
889
+ - "(?V default_value, ?capacity: int) -> void"
890
+ - "(?capacity: int) { (instance hash, _Key key) -> V } -> void"
891
+ rbs_at: references/rbs/core/hash.rbs:2159
892
892
  singleton_methods:
893
893
  "[]":
894
894
  source: c
895
895
  cfunc: rb_hash_s_create
896
896
  arity: -1
897
- defined_at: references/ruby/hash.c:7352
897
+ defined_at: references/ruby/hash.c:7355
898
898
  c_body_at: references/ruby/hash.c:1787
899
899
  c_effects:
900
900
  - mutate
901
901
  - raises
902
902
  purity: mutates_self
903
903
  rbs:
904
- - "[U, V] (_ToHash[U, V]) -> ::Hash[U, V]"
905
- - "[U, V] (Array[[ U, V ]]) -> ::Hash[U, V]"
906
- - "(*untyped) -> ::Hash[untyped, untyped]"
907
- rbs_at: references/rbs/core/hash.rbs:517
904
+ - "[K, V] (hash[K, V] hash) -> instance"
905
+ - "[K, V] (array[_Pair[K, V]] two_element_arrays) -> instance"
906
+ - "[T] (*T objects) -> Hash[T, T]"
907
+ rbs_at: references/rbs/core/hash.rbs:531
908
908
  try_convert:
909
909
  source: c
910
910
  cfunc: rb_hash_s_try_convert
911
911
  arity: 1
912
- defined_at: references/ruby/hash.c:7353
912
+ defined_at: references/ruby/hash.c:7356
913
913
  c_body_at: references/ruby/hash.c:1874
914
914
  c_effects: []
915
915
  purity: leaf
916
916
  rbs:
917
- - "[U, V] (_ToHash[U, V]) -> ::Hash[U, V]"
918
- - "(untyped) -> (::Hash[untyped, untyped] | nil)"
919
- rbs_at: references/rbs/core/hash.rbs:534
917
+ - "[K, V] (hash[K, V] hash) -> Hash[K, V]"
918
+ - "(untyped) -> Hash[untyped, untyped]?"
919
+ rbs_at: references/rbs/core/hash.rbs:548
920
920
  ruby2_keywords_hash?:
921
921
  source: c
922
922
  cfunc: rb_hash_s_ruby2_keywords_hash_p
923
923
  arity: 1
924
- defined_at: references/ruby/hash.c:7440
924
+ defined_at: references/ruby/hash.c:7443
925
925
  c_body_at: references/ruby/hash.c:1895
926
926
  c_effects: []
927
927
  purity: leaf
@@ -929,7 +929,7 @@ classes:
929
929
  source: c
930
930
  cfunc: rb_hash_s_ruby2_keywords_hash
931
931
  arity: 1
932
- defined_at: references/ruby/hash.c:7441
932
+ defined_at: references/ruby/hash.c:7444
933
933
  c_body_at: references/ruby/hash.c:1917
934
934
  c_effects: []
935
935
  purity: leaf