rigortype 0.3.6 → 0.3.7

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 (213) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -1
  3. data/data/builtins/ruby_core/date.yml +6 -3
  4. data/data/builtins/ruby_core/enumerable.yml +1 -0
  5. data/data/builtins/ruby_core/exception.yml +2 -1
  6. data/data/builtins/ruby_core/file.yml +28 -14
  7. data/data/builtins/ruby_core/hash.yml +5 -2
  8. data/data/builtins/ruby_core/io.yml +33 -16
  9. data/data/builtins/ruby_core/random.yml +2 -1
  10. data/data/builtins/ruby_core/re.yml +6 -3
  11. data/data/builtins/ruby_core/struct.yml +2 -0
  12. data/data/builtins/ruby_core/time.yml +2 -1
  13. data/data/gem_overlay/activesupport/core_ext.rbs +409 -11
  14. data/docs/manual/02-cli-reference.md +16 -7
  15. data/docs/manual/05-inspecting-types.md +20 -8
  16. data/docs/manual/07-plugins.md +4 -0
  17. data/docs/manual/plugins/rigor-actionpack.md +61 -0
  18. data/docs/manual/plugins/rigor-activerecord.md +74 -1
  19. data/docs/manual/plugins/rigor-activesupport-core-ext.md +114 -12
  20. data/docs/manual/plugins/rigor-sidekiq.md +22 -0
  21. data/lib/rigor/analysis/check_rules/always_truthy_condition_collector.rb +12 -0
  22. data/lib/rigor/analysis/check_rules/dead_version_guard_arms.rb +98 -0
  23. data/lib/rigor/analysis/check_rules/ivar_write_collector.rb +3 -3
  24. data/lib/rigor/analysis/check_rules/published_constant_guard.rb +199 -0
  25. data/lib/rigor/analysis/check_rules/rule_walk.rb +1 -2
  26. data/lib/rigor/analysis/check_rules/self_closedness_scanner.rb +2 -2
  27. data/lib/rigor/analysis/check_rules/shadowed_rescue_collector.rb +6 -12
  28. data/lib/rigor/analysis/check_rules.rb +383 -48
  29. data/lib/rigor/analysis/crash_signature.rb +116 -0
  30. data/lib/rigor/analysis/dependency_recorder.rb +18 -3
  31. data/lib/rigor/analysis/dependency_source_inference/walker.rb +2 -1
  32. data/lib/rigor/analysis/incremental.rb +28 -0
  33. data/lib/rigor/analysis/incremental_session.rb +44 -9
  34. data/lib/rigor/analysis/plugin_fact_fingerprint.rb +1 -2
  35. data/lib/rigor/analysis/reachability/graph.rb +14 -5
  36. data/lib/rigor/analysis/reachability/scan.rb +7 -3
  37. data/lib/rigor/analysis/result.rb +32 -0
  38. data/lib/rigor/analysis/run_cache_key.rb +41 -1
  39. data/lib/rigor/analysis/runner/diagnostic_aggregator.rb +93 -1
  40. data/lib/rigor/analysis/runner/pool_coordinator.rb +34 -0
  41. data/lib/rigor/analysis/runner/project_pre_passes.rb +15 -11
  42. data/lib/rigor/analysis/runner/run_snapshots.rb +7 -2
  43. data/lib/rigor/analysis/runner.rb +147 -10
  44. data/lib/rigor/analysis/worker_session.rb +10 -1
  45. data/lib/rigor/bleeding_edge.rb +7 -6
  46. data/lib/rigor/builtins/hkt_builtins.rb +45 -6
  47. data/lib/rigor/builtins/predefined_constant_refinements.rb +108 -59
  48. data/lib/rigor/builtins/static_return_refinements.rb +20 -1
  49. data/lib/rigor/cache/descriptor.rb +42 -2
  50. data/lib/rigor/cache/incremental_snapshot.rb +40 -3
  51. data/lib/rigor/cache/rbs_environment_marshal_patch.rb +31 -8
  52. data/lib/rigor/cache/store.rb +10 -1
  53. data/lib/rigor/cli/coverage_command.rb +23 -18
  54. data/lib/rigor/cli/coverage_mutation.rb +13 -17
  55. data/lib/rigor/cli/coverage_scan.rb +47 -6
  56. data/lib/rigor/cli/fused_protection_renderer.rb +19 -2
  57. data/lib/rigor/cli/fused_protection_report.rb +23 -2
  58. data/lib/rigor/cli/measurement_integrity_warning.rb +57 -0
  59. data/lib/rigor/cli/mutation_protection_renderer.rb +22 -2
  60. data/lib/rigor/cli/mutation_protection_report.rb +31 -2
  61. data/lib/rigor/cli/sig_gen_command.rb +18 -0
  62. data/lib/rigor/cli/type_of_command.rb +188 -41
  63. data/lib/rigor/cli/type_of_renderer.rb +72 -3
  64. data/lib/rigor/cli/type_scan_command.rb +10 -1
  65. data/lib/rigor/cli.rb +1 -1
  66. data/lib/rigor/configuration.rb +7 -4
  67. data/lib/rigor/effects/plugin_facts.rb +1 -1
  68. data/lib/rigor/effects/scanner.rb +2 -3
  69. data/lib/rigor/environment/bundle_sig_discovery.rb +64 -13
  70. data/lib/rigor/environment/lockfile_resolver.rb +15 -5
  71. data/lib/rigor/environment/missing_gem_constant_index.rb +45 -4
  72. data/lib/rigor/environment/rbs_hierarchy.rb +16 -22
  73. data/lib/rigor/environment/rbs_loader.rb +525 -46
  74. data/lib/rigor/environment.rb +38 -15
  75. data/lib/rigor/inference/acceptance.rb +172 -20
  76. data/lib/rigor/inference/captured_locals.rb +62 -0
  77. data/lib/rigor/inference/content_join.rb +347 -0
  78. data/lib/rigor/inference/def_handle.rb +15 -3
  79. data/lib/rigor/inference/def_node_resolver.rb +62 -3
  80. data/lib/rigor/inference/expression_typer.rb +1020 -141
  81. data/lib/rigor/inference/fork_map.rb +6 -1
  82. data/lib/rigor/inference/hkt_reducer.rb +12 -1
  83. data/lib/rigor/inference/hkt_registry.rb +46 -0
  84. data/lib/rigor/inference/hkt_sugar_translator.rb +93 -0
  85. data/lib/rigor/inference/index_write_widening.rb +48 -0
  86. data/lib/rigor/inference/indexed_narrowing.rb +14 -0
  87. data/lib/rigor/inference/method_dispatcher/block_folding.rb +7 -5
  88. data/lib/rigor/inference/method_dispatcher/constant_folding.rb +10 -0
  89. data/lib/rigor/inference/method_dispatcher/json_folding.rb +58 -0
  90. data/lib/rigor/inference/method_dispatcher/overload_selector.rb +81 -38
  91. data/lib/rigor/inference/method_dispatcher/rbs_dispatch.rb +54 -17
  92. data/lib/rigor/inference/method_dispatcher/shape_dispatch.rb +1 -2
  93. data/lib/rigor/inference/method_dispatcher/singleton_mixin_dispatch.rb +63 -0
  94. data/lib/rigor/inference/method_dispatcher/struct_folding.rb +63 -10
  95. data/lib/rigor/inference/method_dispatcher/struct_materialization.rb +104 -0
  96. data/lib/rigor/inference/method_dispatcher/universal_object_dispatch.rb +81 -0
  97. data/lib/rigor/inference/method_dispatcher.rb +155 -14
  98. data/lib/rigor/inference/method_parameter_binder.rb +3 -3
  99. data/lib/rigor/inference/mutation_widening.rb +244 -174
  100. data/lib/rigor/inference/narrowing.rb +331 -27
  101. data/lib/rigor/inference/parameter_inference_collector.rb +1 -0
  102. data/lib/rigor/inference/pre_eval_constants.rb +15 -0
  103. data/lib/rigor/inference/precision_scanner.rb +5 -2
  104. data/lib/rigor/inference/project_patched_scanner.rb +2 -1
  105. data/lib/rigor/inference/rbs_type_translator.rb +89 -39
  106. data/lib/rigor/inference/scope_indexer.rb +1493 -140
  107. data/lib/rigor/inference/statement_evaluator.rb +276 -91
  108. data/lib/rigor/inference/struct_fold_safety.rb +186 -27
  109. data/lib/rigor/inference/version_guard.rb +229 -0
  110. data/lib/rigor/language_server/selection_range_provider.rb +1 -1
  111. data/lib/rigor/plugin/base.rb +3 -2
  112. data/lib/rigor/plugin/inflector.rb +14 -5
  113. data/lib/rigor/plugin/io_boundary.rb +107 -4
  114. data/lib/rigor/plugin/loader.rb +14 -0
  115. data/lib/rigor/protection/analysis_guard.rb +60 -0
  116. data/lib/rigor/protection/closure_kill_oracle.rb +43 -38
  117. data/lib/rigor/protection/diagnostic_oracle.rb +12 -4
  118. data/lib/rigor/protection/discovery_seed.rb +1 -1
  119. data/lib/rigor/protection/measurement_integrity.rb +36 -0
  120. data/lib/rigor/protection/mutation_scanner.rb +61 -6
  121. data/lib/rigor/protection/mutator.rb +121 -18
  122. data/lib/rigor/reflection.rb +182 -30
  123. data/lib/rigor/scope/discovery_index.rb +39 -1
  124. data/lib/rigor/scope.rb +385 -4
  125. data/lib/rigor/sig_gen/classification.rb +12 -1
  126. data/lib/rigor/sig_gen/generator.rb +254 -5
  127. data/lib/rigor/sig_gen/renderer.rb +1 -6
  128. data/lib/rigor/sig_gen/writer.rb +3 -0
  129. data/lib/rigor/source/constant_path.rb +79 -2
  130. data/lib/rigor/triage/catalogue.rb +1 -1
  131. data/lib/rigor/type/combinator.rb +10 -0
  132. data/lib/rigor/type/maybe.rb +47 -0
  133. data/lib/rigor/type/refined.rb +1 -2
  134. data/lib/rigor/type/result.rb +53 -0
  135. data/lib/rigor/type.rb +2 -0
  136. data/lib/rigor/version.rb +1 -1
  137. data/plugins/rigor-actioncable/lib/rigor/plugin/actioncable/analyzer.rb +3 -1
  138. data/plugins/rigor-actioncable/lib/rigor/plugin/actioncable/channel_discoverer.rb +58 -8
  139. data/plugins/rigor-actioncable/lib/rigor/plugin/actioncable/channel_index.rb +15 -2
  140. data/plugins/rigor-actioncable/lib/rigor/plugin/actioncable.rb +4 -1
  141. data/plugins/rigor-actionmailer/lib/rigor/plugin/actionmailer/analyzer.rb +3 -1
  142. data/plugins/rigor-actionmailer/lib/rigor/plugin/actionmailer/mailer_discoverer.rb +39 -14
  143. data/plugins/rigor-actionmailer/lib/rigor/plugin/actionmailer/mailer_index.rb +36 -3
  144. data/plugins/rigor-actionmailer/lib/rigor/plugin/actionmailer.rb +6 -2
  145. data/plugins/rigor-actionpack/lib/rigor/plugin/actionpack/analyzer.rb +21 -5
  146. data/plugins/rigor-actionpack/lib/rigor/plugin/actionpack/controller_discoverer.rb +47 -8
  147. data/plugins/rigor-actionpack/lib/rigor/plugin/actionpack/controller_index.rb +13 -3
  148. data/plugins/rigor-actionpack/lib/rigor/plugin/actionpack.rb +242 -4
  149. data/plugins/rigor-activejob/lib/rigor/plugin/activejob/analyzer.rb +3 -1
  150. data/plugins/rigor-activejob/lib/rigor/plugin/activejob/effects.rb +7 -3
  151. data/plugins/rigor-activejob/lib/rigor/plugin/activejob/job_discoverer.rb +62 -11
  152. data/plugins/rigor-activejob/lib/rigor/plugin/activejob/job_index.rb +15 -2
  153. data/plugins/rigor-activejob/lib/rigor/plugin/activejob/recurring_scan.rb +3 -1
  154. data/plugins/rigor-activejob/lib/rigor/plugin/activejob.rb +5 -1
  155. data/plugins/rigor-activerecord/lib/rigor/plugin/activerecord/analyzer.rb +2 -2
  156. data/plugins/rigor-activerecord/lib/rigor/plugin/activerecord/model_discoverer.rb +798 -22
  157. data/plugins/rigor-activerecord/lib/rigor/plugin/activerecord/model_index.rb +156 -13
  158. data/plugins/rigor-activerecord/lib/rigor/plugin/activerecord.rb +140 -40
  159. data/plugins/rigor-activestorage/lib/rigor/plugin/activestorage/analyzer.rb +2 -2
  160. data/plugins/rigor-activestorage/lib/rigor/plugin/activestorage/attachment_discoverer.rb +20 -6
  161. data/plugins/rigor-activestorage/lib/rigor/plugin/activestorage/attachment_index.rb +14 -4
  162. data/plugins/rigor-activestorage/lib/rigor/plugin/activestorage.rb +6 -3
  163. data/plugins/rigor-activesupport-core-ext/lib/rigor/plugin/activesupport_core_ext/effects.rb +23 -6
  164. data/plugins/rigor-activesupport-core-ext/lib/rigor/plugin/activesupport_core_ext.rb +264 -9
  165. data/plugins/rigor-activesupport-core-ext/sig/active_support/core_ext.rbs +876 -23
  166. data/plugins/rigor-dry-monads/lib/rigor/plugin/dry_monads.rb +99 -0
  167. data/plugins/rigor-dry-monads/lib/rigor-dry-monads.rb +5 -0
  168. data/plugins/rigor-ethon/lib/rigor/plugin/ethon.rb +34 -0
  169. data/plugins/rigor-ethon/lib/rigor-ethon.rb +3 -0
  170. data/plugins/rigor-ethon/sig/ethon.rbs +27 -0
  171. data/plugins/rigor-factorybot/lib/rigor/plugin/factorybot/factory_discoverer.rb +3 -2
  172. data/plugins/rigor-ffi/lib/rigor/plugin/ffi/analyzer.rb +198 -0
  173. data/plugins/rigor-ffi/lib/rigor/plugin/ffi/binding_recognizer.rb +75 -0
  174. data/plugins/rigor-ffi/lib/rigor/plugin/ffi/catalog.rb +64 -0
  175. data/plugins/rigor-ffi/lib/rigor/plugin/ffi/discoverer.rb +173 -0
  176. data/plugins/rigor-ffi/lib/rigor/plugin/ffi/target_detector.rb +46 -0
  177. data/plugins/rigor-ffi/lib/rigor/plugin/ffi/types.rb +161 -0
  178. data/plugins/rigor-ffi/lib/rigor/plugin/ffi.rb +121 -0
  179. data/plugins/rigor-ffi/lib/rigor-ffi.rb +3 -0
  180. data/plugins/rigor-ffi/sig/ffi.rbs +67 -0
  181. data/plugins/rigor-ffi-rzmq/lib/rigor/plugin/ffi_rzmq.rb +19 -0
  182. data/plugins/rigor-ffi-rzmq/lib/rigor-ffi-rzmq.rb +3 -0
  183. data/plugins/rigor-ffi-rzmq/sig/ffi_rzmq.rbs +29 -0
  184. data/plugins/rigor-graphql/lib/rigor/plugin/graphql/type_scanner.rb +2 -4
  185. data/plugins/rigor-pundit/lib/rigor/plugin/pundit/authorization_scan.rb +2 -1
  186. data/plugins/rigor-pundit/lib/rigor/plugin/pundit/policy_discoverer.rb +2 -1
  187. data/plugins/rigor-rails-i18n/lib/rigor/plugin/rails_i18n/locale_loader.rb +2 -1
  188. data/plugins/rigor-rails-i18n/lib/rigor/plugin/rails_i18n.rb +2 -1
  189. data/plugins/rigor-rails-routes/lib/rigor/plugin/rails_routes.rb +2 -1
  190. data/plugins/rigor-railties/lib/rigor/plugin/railties.rb +156 -11
  191. data/plugins/rigor-rbnacl/lib/rigor/plugin/rbnacl.rb +30 -0
  192. data/plugins/rigor-rbnacl/lib/rigor-rbnacl.rb +3 -0
  193. data/plugins/rigor-rbnacl/sig/rbnacl.rbs +22 -0
  194. data/plugins/rigor-sassc/lib/rigor/plugin/sassc.rb +55 -0
  195. data/plugins/rigor-sassc/lib/rigor-sassc.rb +3 -0
  196. data/plugins/rigor-sassc/sig/sassc.rbs +24 -0
  197. data/plugins/rigor-shoulda-matchers/lib/rigor/plugin/shoulda_matchers/analyzer.rb +32 -11
  198. data/plugins/rigor-sidekiq/lib/rigor/plugin/sidekiq/analyzer.rb +3 -1
  199. data/plugins/rigor-sidekiq/lib/rigor/plugin/sidekiq/schedule_scan.rb +4 -1
  200. data/plugins/rigor-sidekiq/lib/rigor/plugin/sidekiq/worker_discoverer.rb +63 -10
  201. data/plugins/rigor-sidekiq/lib/rigor/plugin/sidekiq/worker_index.rb +15 -2
  202. data/plugins/rigor-sidekiq/lib/rigor/plugin/sidekiq.rb +61 -2
  203. data/plugins/rigor-sorbet/lib/rigor/plugin/sorbet/catalog_walker.rb +2 -2
  204. data/plugins/rigor-sorbet/lib/rigor/plugin/sorbet.rb +4 -2
  205. data/sig/rigor/analysis/baseline.rbs +1 -1
  206. data/sig/rigor/environment.rbs +3 -0
  207. data/sig/rigor/inference.rbs +4 -1
  208. data/sig/rigor/plugin/io_boundary.rbs +2 -0
  209. data/sig/rigor/reflection.rbs +3 -1
  210. data/sig/rigor/scope.rbs +25 -1
  211. data/sig/rigor/type.rbs +95 -1
  212. data/sig/rigor.rbs +16 -0
  213. metadata +69 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b2709c0d68fc616109c3300013f08fda3702484c6ca01ff67b4ccf9d0f354ad0
4
- data.tar.gz: 77486c048ef9cd94a725b5ebb09ae4e161003b37f67919c769845ed36f6c60bf
3
+ metadata.gz: 8e6c542d01ee79f9cb65e22a91aa5a87cd9dd43a842ffc815b94ded244fe9cc0
4
+ data.tar.gz: 2a4cf5b015559a12d1ede16f414d9884df09aab01ce0bc61da0b1d683b1e11a0
5
5
  SHA512:
6
- metadata.gz: 15a406b49bcd62e9efc2c1c143903a85157dbaf165ccca5defdf4abd69949d0c0d0107afd55469e5a0b27fa667e3c59a0ec58de854af503cad0a9e3952568a6e
7
- data.tar.gz: fa429f47f4ed13b53fa07c7078510524bd6d3b304f7ffa48916b3cfab0e954b42167bda011b413946448dbdaeb63e78dfeaf444ec86a68cf928cefcf3fd70813
6
+ metadata.gz: '032268117a2430a52a7f8505196c8f5e6760cd29551aa95af5c3fe55185450d569d21f97a6379281951b6ef01b34a30522178f25701dfbed8ff680c6a6c80eaa'
7
+ data.tar.gz: d39c177c2c8d9a9b255a1e60ffcbc3c101a8d9e63fb6213bb846d47ae13dcdd0e37acd366055b6ede65836939ac12b026b43c9b03b0774de60f52a2e09de2890
data/README.md CHANGED
@@ -231,7 +231,7 @@ rigor docs --list # list every bundled page
231
231
 
232
232
  ## Status
233
233
 
234
- Current release: **`v0.3.6`** (2026-08-30) — on the
234
+ Current release: **`v0.3.7`** (2026-09-05) — on the
235
235
  `0.3.x` line, continuing the evaluation era opened by `v0.2.0`, the first
236
236
  publicly-announced (general / evaluation) release. The line publishes
237
237
  an enumerated [compatibility surface](docs/compatibility.md) as a
@@ -445,7 +445,8 @@ classes:
445
445
  arity: 1
446
446
  defined_at: references/ruby/ext/date/date_core.c:9775
447
447
  c_body_at: references/ruby/ext/date/date_core.c:5952
448
- c_effects: []
448
+ c_effects:
449
+ - raises
449
450
  purity: leaf
450
451
  rbs:
451
452
  - "(Numeric & _ToR other) -> Date"
@@ -1038,7 +1039,8 @@ classes:
1038
1039
  arity: -1
1039
1040
  defined_at: references/ruby/ext/date/date_core.c:9694
1040
1041
  c_body_at: references/ruby/ext/date/date_core.c:3790
1041
- c_effects: []
1042
+ c_effects:
1043
+ - raises
1042
1044
  purity: leaf
1043
1045
  rbs:
1044
1046
  - "(?Integer start) -> Date"
@@ -1618,7 +1620,8 @@ classes:
1618
1620
  arity: -1
1619
1621
  defined_at: references/ruby/ext/date/date_core.c:9988
1620
1622
  c_body_at: references/ruby/ext/date/date_core.c:8137
1621
- c_effects: []
1623
+ c_effects:
1624
+ - raises
1622
1625
  purity: leaf
1623
1626
  rbs:
1624
1627
  - "(?Integer start) -> DateTime"
@@ -492,6 +492,7 @@ classes:
492
492
  c_body_at: references/ruby/enum.c:4236
493
493
  c_effects:
494
494
  - block
495
+ - raises
495
496
  purity: block_dependent
496
497
  slice_after:
497
498
  source: c
@@ -608,7 +608,8 @@ classes:
608
608
  arity: -1
609
609
  defined_at: references/ruby/error.c:3728
610
610
  c_body_at: references/ruby/error.c:287
611
- c_effects: []
611
+ c_effects:
612
+ - raises
612
613
  purity: leaf
613
614
  singleton_methods:
614
615
  "[]":
@@ -53,7 +53,8 @@ classes:
53
53
  arity: 0
54
54
  defined_at: references/ruby/file.c:7599
55
55
  c_body_at: references/ruby/file.c:1565
56
- c_effects: []
56
+ c_effects:
57
+ - raises
57
58
  purity: leaf
58
59
  rbs:
59
60
  - "() -> (File::Stat | nil)"
@@ -64,7 +65,8 @@ classes:
64
65
  arity: 0
65
66
  defined_at: references/ruby/file.c:7601
66
67
  c_body_at: references/ruby/file.c:2469
67
- c_effects: []
68
+ c_effects:
69
+ - raises
68
70
  purity: leaf
69
71
  rbs:
70
72
  - "() -> Time"
@@ -75,7 +77,8 @@ classes:
75
77
  arity: 0
76
78
  defined_at: references/ruby/file.c:7602
77
79
  c_body_at: references/ruby/file.c:2517
78
- c_effects: []
80
+ c_effects:
81
+ - raises
79
82
  purity: leaf
80
83
  rbs:
81
84
  - "() -> Time"
@@ -86,7 +89,8 @@ classes:
86
89
  arity: 0
87
90
  defined_at: references/ruby/file.c:7603
88
91
  c_body_at: references/ruby/file.c:2572
89
- c_effects: []
92
+ c_effects:
93
+ - raises
90
94
  purity: leaf
91
95
  rbs:
92
96
  - "() -> Time"
@@ -118,7 +122,8 @@ classes:
118
122
  arity: 1
119
123
  defined_at: references/ruby/file.c:7607
120
124
  c_body_at: references/ruby/file.c:2773
121
- c_effects: []
125
+ c_effects:
126
+ - raises
122
127
  purity: leaf
123
128
  rbs:
124
129
  - "(int mode) -> (0 | nil)"
@@ -129,7 +134,8 @@ classes:
129
134
  arity: 2
130
135
  defined_at: references/ruby/file.c:7608
131
136
  c_body_at: references/ruby/file.c:2952
132
- c_effects: []
137
+ c_effects:
138
+ - raises
133
139
  purity: leaf
134
140
  rbs:
135
141
  - "(int? owner, int? group) -> (0 | nil)"
@@ -150,7 +156,8 @@ classes:
150
156
  arity: 1
151
157
  defined_at: references/ruby/file.c:7611
152
158
  c_body_at: references/ruby/file.c:5524
153
- c_effects: []
159
+ c_effects:
160
+ - raises
154
161
  purity: leaf
155
162
  rbs:
156
163
  - "(int locking_constant) -> (0 | false)"
@@ -162,7 +169,8 @@ classes:
162
169
  arity: 1
163
170
  defined_at: references/ruby/file.c:7545
164
171
  c_body_at: references/ruby/file.c:1460
165
- c_effects: []
172
+ c_effects:
173
+ - raises
166
174
  purity: leaf
167
175
  rbs:
168
176
  - "(path file_name) -> File::Stat"
@@ -173,7 +181,8 @@ classes:
173
181
  arity: 1
174
182
  defined_at: references/ruby/file.c:7546
175
183
  c_body_at: references/ruby/file.c:1534
176
- c_effects: []
184
+ c_effects:
185
+ - raises
177
186
  purity: leaf
178
187
  rbs:
179
188
  - "(path file_name) -> File::Stat"
@@ -184,7 +193,8 @@ classes:
184
193
  arity: 1
185
194
  defined_at: references/ruby/file.c:7547
186
195
  c_body_at: references/ruby/file.c:2419
187
- c_effects: []
196
+ c_effects:
197
+ - raises
188
198
  purity: leaf
189
199
  rbs:
190
200
  - "(path file_name) -> String"
@@ -195,7 +205,8 @@ classes:
195
205
  arity: 1
196
206
  defined_at: references/ruby/file.c:7549
197
207
  c_body_at: references/ruby/file.c:2445
198
- c_effects: []
208
+ c_effects:
209
+ - raises
199
210
  purity: leaf
200
211
  rbs:
201
212
  - "(path | IO file_name) -> Time"
@@ -206,7 +217,8 @@ classes:
206
217
  arity: 1
207
218
  defined_at: references/ruby/file.c:7550
208
219
  c_body_at: references/ruby/file.c:2494
209
- c_effects: []
220
+ c_effects:
221
+ - raises
210
222
  purity: leaf
211
223
  rbs:
212
224
  - "(path | IO file_name) -> Time"
@@ -217,7 +229,8 @@ classes:
217
229
  arity: 1
218
230
  defined_at: references/ruby/file.c:7551
219
231
  c_body_at: references/ruby/file.c:2546
220
- c_effects: []
232
+ c_effects:
233
+ - raises
221
234
  purity: leaf
222
235
  rbs:
223
236
  - "(path | IO file_name) -> Time"
@@ -361,7 +374,8 @@ classes:
361
374
  arity: -1
362
375
  defined_at: references/ruby/file.c:7568
363
376
  c_body_at: references/ruby/file.c:3496
364
- c_effects: []
377
+ c_effects:
378
+ - raises
365
379
  purity: leaf
366
380
  rbs:
367
381
  - "(?int umask) -> Integer"
@@ -177,6 +177,7 @@ classes:
177
177
  c_effects:
178
178
  - block
179
179
  - dispatch
180
+ - raises
180
181
  purity: block_dependent
181
182
  rbs:
182
183
  - "(_Key key) -> V"
@@ -916,7 +917,8 @@ classes:
916
917
  arity: 1
917
918
  defined_at: references/ruby/hash.c:7443
918
919
  c_body_at: references/ruby/hash.c:1895
919
- c_effects: []
920
+ c_effects:
921
+ - raises
920
922
  purity: leaf
921
923
  ruby2_keywords_hash:
922
924
  source: c
@@ -924,6 +926,7 @@ classes:
924
926
  arity: 1
925
927
  defined_at: references/ruby/hash.c:7444
926
928
  c_body_at: references/ruby/hash.c:1917
927
- c_effects: []
929
+ c_effects:
930
+ - raises
928
931
  purity: leaf
929
932
  undefined: []
@@ -99,7 +99,8 @@ classes:
99
99
  arity: 1
100
100
  defined_at: references/ruby/io.c:15743
101
101
  c_body_at: references/ruby/io.c:8555
102
- c_effects: []
102
+ c_effects:
103
+ - raises
103
104
  purity: leaf
104
105
  reopen:
105
106
  source: c
@@ -230,7 +231,8 @@ classes:
230
231
  arity: 1
231
232
  defined_at: references/ruby/io.c:15757
232
233
  c_body_at: references/ruby/io.c:6094
233
- c_effects: []
234
+ c_effects:
235
+ - raises
234
236
  purity: leaf
235
237
  rbs:
236
238
  - "(_ToS object) -> Integer"
@@ -253,7 +255,8 @@ classes:
253
255
  arity: -1
254
256
  defined_at: references/ruby/io.c:15760
255
257
  c_body_at: references/ruby/io.c:6241
256
- c_effects: []
258
+ c_effects:
259
+ - raises
257
260
  purity: leaf
258
261
  rbs:
259
262
  - "(int maxlen, int offset, ?string? out_string) -> String"
@@ -264,7 +267,8 @@ classes:
264
267
  arity: 2
265
268
  defined_at: references/ruby/io.c:15761
266
269
  c_body_at: references/ruby/io.c:6329
267
- c_effects: []
270
+ c_effects:
271
+ - raises
268
272
  purity: leaf
269
273
  rbs:
270
274
  - "(_ToS object, int offset) -> Integer"
@@ -393,7 +397,8 @@ classes:
393
397
  arity: -1
394
398
  defined_at: references/ruby/io.c:15780
395
399
  c_body_at: references/ruby/io.c:3642
396
- c_effects: []
400
+ c_effects:
401
+ - raises
397
402
  purity: leaf
398
403
  rbs:
399
404
  - "(int maxlen, ?string? outbuf) -> String"
@@ -462,7 +467,8 @@ classes:
462
467
  arity: 0
463
468
  defined_at: references/ruby/io.c:15786
464
469
  c_body_at: references/ruby/io.c:5068
465
- c_effects: []
470
+ c_effects:
471
+ - raises
466
472
  purity: leaf
467
473
  rbs:
468
474
  - "() -> String"
@@ -473,7 +479,8 @@ classes:
473
479
  arity: 0
474
480
  defined_at: references/ruby/io.c:15787
475
481
  c_body_at: references/ruby/io.c:5142
476
- c_effects: []
482
+ c_effects:
483
+ - raises
477
484
  purity: leaf
478
485
  rbs:
479
486
  - "() -> Integer"
@@ -529,7 +536,8 @@ classes:
529
536
  arity: 0
530
537
  defined_at: references/ruby/io.c:15792
531
538
  c_body_at: references/ruby/io.c:2460
532
- c_effects: []
539
+ c_effects:
540
+ - raises
533
541
  purity: leaf
534
542
  rbs:
535
543
  - "() -> Integer"
@@ -551,7 +559,8 @@ classes:
551
559
  arity: 0
552
560
  defined_at: references/ruby/io.c:15808
553
561
  c_body_at: references/ruby/io.c:2624
554
- c_effects: []
562
+ c_effects:
563
+ - raises
555
564
  purity: leaf
556
565
  rbs:
557
566
  - "() -> Integer"
@@ -562,7 +571,8 @@ classes:
562
571
  arity: 0
563
572
  defined_at: references/ruby/io.c:15809
564
573
  c_body_at: references/ruby/io.c:2460
565
- c_effects: []
574
+ c_effects:
575
+ - raises
566
576
  purity: leaf
567
577
  pos=:
568
578
  source: c
@@ -570,7 +580,8 @@ classes:
570
580
  arity: 1
571
581
  defined_at: references/ruby/io.c:15810
572
582
  c_body_at: references/ruby/io.c:2584
573
- c_effects: []
583
+ c_effects:
584
+ - raises
574
585
  purity: leaf
575
586
  rbs:
576
587
  - "(Integer new_position) -> Integer"
@@ -981,7 +992,8 @@ classes:
981
992
  arity: -1
982
993
  defined_at: references/ruby/io.c:15712
983
994
  c_body_at: references/ruby/io.c:8007
984
- c_effects: []
995
+ c_effects:
996
+ - raises
985
997
  purity: leaf
986
998
  rbs:
987
999
  - "(string | cmd_array cmd, ?string | int mode, ?path: string?, ?external_encoding:
@@ -1118,6 +1130,7 @@ classes:
1118
1130
  c_body_at: references/ruby/io.c:11912
1119
1131
  c_effects:
1120
1132
  - block
1133
+ - raises
1121
1134
  purity: block_dependent
1122
1135
  rbs:
1123
1136
  - "(?String | Encoding | nil ext_or_ext_int_enc, ?String | Encoding | nil
@@ -1183,7 +1196,8 @@ classes:
1183
1196
  arity: 1
1184
1197
  defined_at: references/ruby/io.c:15891
1185
1198
  c_body_at: references/ruby/io.c:10048
1186
- c_effects: []
1199
+ c_effects:
1200
+ - raises
1187
1201
  purity: leaf
1188
1202
  to_s:
1189
1203
  source: c
@@ -1330,7 +1344,8 @@ classes:
1330
1344
  arity: -1
1331
1345
  defined_at: references/ruby/io.c:15912
1332
1346
  c_body_at: references/ruby/io.c:10508
1333
- c_effects: []
1347
+ c_effects:
1348
+ - raises
1334
1349
  purity: leaf
1335
1350
  getc:
1336
1351
  source: c
@@ -1354,7 +1369,8 @@ classes:
1354
1369
  arity: 0
1355
1370
  defined_at: references/ruby/io.c:15915
1356
1371
  c_body_at: references/ruby/io.c:14143
1357
- c_effects: []
1372
+ c_effects:
1373
+ - raises
1358
1374
  purity: leaf
1359
1375
  readbyte:
1360
1376
  source: c
@@ -1362,7 +1378,8 @@ classes:
1362
1378
  arity: 0
1363
1379
  defined_at: references/ruby/io.c:15916
1364
1380
  c_body_at: references/ruby/io.c:14183
1365
- c_effects: []
1381
+ c_effects:
1382
+ - raises
1366
1383
  purity: leaf
1367
1384
  tell:
1368
1385
  source: c
@@ -31,7 +31,8 @@ classes:
31
31
  arity: 1
32
32
  defined_at: references/ruby/random.c:1870
33
33
  c_body_at: references/ruby/random.c:829
34
- c_effects: []
34
+ c_effects:
35
+ - raises
35
36
  purity: leaf
36
37
  rbs:
37
38
  - "(self object) -> self"
@@ -69,7 +69,8 @@ classes:
69
69
  arity: 1
70
70
  defined_at: references/ruby/re.c:4841
71
71
  c_body_at: references/ruby/re.c:4459
72
- c_effects: []
72
+ c_effects:
73
+ - raises
73
74
  purity: leaf
74
75
  rbs:
75
76
  - "(self object) -> self"
@@ -390,7 +391,8 @@ classes:
390
391
  arity: 1
391
392
  defined_at: references/ruby/re.c:4884
392
393
  c_body_at: references/ruby/re.c:1085
393
- c_effects: []
394
+ c_effects:
395
+ - raises
394
396
  purity: leaf
395
397
  rbs:
396
398
  - "(MatchData instance) -> self"
@@ -578,7 +580,8 @@ classes:
578
580
  arity: 1
579
581
  defined_at: references/ruby/re.c:4902
580
582
  c_body_at: references/ruby/re.c:2495
581
- c_effects: []
583
+ c_effects:
584
+ - raises
582
585
  purity: leaf
583
586
  rbs:
584
587
  - "(Array[Symbol]? array_of_names) -> Hash[Symbol, String?]"
@@ -195,6 +195,7 @@ classes:
195
195
  c_body_at: references/ruby/struct.c:1296
196
196
  c_effects:
197
197
  - mutate
198
+ - raises
198
199
  purity: mutates_self
199
200
  rbs:
200
201
  - "(index name_or_position, E value) -> E"
@@ -333,6 +334,7 @@ classes:
333
334
  c_body_at: references/ruby/struct.c:1833
334
335
  c_effects:
335
336
  - mutate
337
+ - raises
336
338
  purity: mutates_self
337
339
  initialize_copy:
338
340
  source: c
@@ -106,7 +106,8 @@ classes:
106
106
  arity: 1
107
107
  defined_at: references/ruby/time.c:5994
108
108
  c_body_at: references/ruby/time.c:4071
109
- c_effects: []
109
+ c_effects:
110
+ - raises
110
111
  purity: leaf
111
112
  localtime:
112
113
  source: c