rigortype 0.3.5 → 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 (266) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +5 -5
  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 +442 -11
  14. data/docs/handbook/02-everyday-types.md +1 -1
  15. data/docs/handbook/04-tuples-and-shapes.md +1 -1
  16. data/docs/handbook/08-understanding-errors.md +1 -1
  17. data/docs/handbook/09-plugins.md +2 -2
  18. data/docs/handbook/10-sorbet.md +1 -1
  19. data/docs/handbook/README.md +2 -2
  20. data/docs/handbook/appendix-go.md +1 -1
  21. data/docs/handbook/appendix-java-csharp.md +2 -2
  22. data/docs/handbook/appendix-mypy.md +1 -1
  23. data/docs/handbook/appendix-protocols-and-structural-typing.md +2 -2
  24. data/docs/handbook/appendix-rust.md +1 -1
  25. data/docs/handbook/appendix-type-theory.md +2 -2
  26. data/docs/handbook/appendix-typescript.md +4 -4
  27. data/docs/manual/02-cli-reference.md +29 -16
  28. data/docs/manual/03-configuration.md +1 -1
  29. data/docs/manual/04-diagnostics.md +12 -0
  30. data/docs/manual/05-inspecting-types.md +20 -8
  31. data/docs/manual/07-plugins.md +4 -0
  32. data/docs/manual/08-skills.md +1 -1
  33. data/docs/manual/11-ci.md +1 -1
  34. data/docs/manual/12-caching.md +1 -1
  35. data/docs/manual/15-type-protection-coverage.md +1 -1
  36. data/docs/manual/18-removing-dead-code.md +13 -4
  37. data/docs/manual/19-effect-labels.md +19 -12
  38. data/docs/manual/README.md +2 -2
  39. data/docs/manual/plugins/rigor-actionmailer.md +4 -4
  40. data/docs/manual/plugins/rigor-actionpack.md +61 -0
  41. data/docs/manual/plugins/rigor-activejob.md +3 -3
  42. data/docs/manual/plugins/rigor-activerecord.md +78 -5
  43. data/docs/manual/plugins/rigor-activesupport-core-ext.md +114 -12
  44. data/docs/manual/plugins/rigor-rails-i18n.md +5 -5
  45. data/docs/manual/plugins/rigor-rspec.md +6 -2
  46. data/docs/manual/plugins/rigor-sidekiq.md +22 -0
  47. data/lib/rigor/analysis/check_rules/always_truthy_condition_collector.rb +12 -0
  48. data/lib/rigor/analysis/check_rules/dead_version_guard_arms.rb +98 -0
  49. data/lib/rigor/analysis/check_rules/ivar_write_collector.rb +3 -3
  50. data/lib/rigor/analysis/check_rules/published_constant_guard.rb +199 -0
  51. data/lib/rigor/analysis/check_rules/rule_walk.rb +1 -2
  52. data/lib/rigor/analysis/check_rules/self_closedness_scanner.rb +2 -2
  53. data/lib/rigor/analysis/check_rules/shadowed_rescue_collector.rb +6 -12
  54. data/lib/rigor/analysis/check_rules.rb +383 -48
  55. data/lib/rigor/analysis/crash_signature.rb +116 -0
  56. data/lib/rigor/analysis/dependency_recorder.rb +18 -3
  57. data/lib/rigor/analysis/dependency_source_inference/walker.rb +2 -1
  58. data/lib/rigor/analysis/diagnostic.rb +17 -6
  59. data/lib/rigor/analysis/effects_cache_probe.rb +132 -0
  60. data/lib/rigor/analysis/incremental.rb +28 -0
  61. data/lib/rigor/analysis/incremental_session.rb +44 -9
  62. data/lib/rigor/analysis/plugin_fact_fingerprint.rb +1 -2
  63. data/lib/rigor/analysis/reachability/graph.rb +44 -16
  64. data/lib/rigor/analysis/reachability/plugin_roots.rb +11 -8
  65. data/lib/rigor/analysis/reachability/scan.rb +27 -7
  66. data/lib/rigor/analysis/reachability/scan_cache.rb +130 -0
  67. data/lib/rigor/analysis/result.rb +32 -0
  68. data/lib/rigor/analysis/run_cache_key.rb +53 -1
  69. data/lib/rigor/analysis/runner/diagnostic_aggregator.rb +93 -1
  70. data/lib/rigor/analysis/runner/effect_envelope_pass.rb +14 -8
  71. data/lib/rigor/analysis/runner/pool_coordinator.rb +34 -0
  72. data/lib/rigor/analysis/runner/project_pre_passes.rb +15 -11
  73. data/lib/rigor/analysis/runner/run_snapshots.rb +7 -2
  74. data/lib/rigor/analysis/runner.rb +298 -38
  75. data/lib/rigor/analysis/worker_session.rb +10 -1
  76. data/lib/rigor/bleeding_edge.rb +7 -6
  77. data/lib/rigor/builtins/hkt_builtins.rb +45 -6
  78. data/lib/rigor/builtins/predefined_constant_refinements.rb +108 -59
  79. data/lib/rigor/builtins/static_return_refinements.rb +20 -1
  80. data/lib/rigor/cache/descriptor.rb +42 -2
  81. data/lib/rigor/cache/file_digest.rb +20 -2
  82. data/lib/rigor/cache/incremental_snapshot.rb +40 -3
  83. data/lib/rigor/cache/rbs_environment_marshal_patch.rb +31 -8
  84. data/lib/rigor/cache/store.rb +10 -1
  85. data/lib/rigor/cli/check_command.rb +67 -48
  86. data/lib/rigor/cli/coverage_command.rb +28 -24
  87. data/lib/rigor/cli/coverage_mutation.rb +13 -17
  88. data/lib/rigor/cli/coverage_scan.rb +47 -6
  89. data/lib/rigor/cli/doc_links.rb +100 -0
  90. data/lib/rigor/cli/docs_command.rb +32 -2
  91. data/lib/rigor/cli/effects_command.rb +27 -2
  92. data/lib/rigor/cli/effects_diff_renderer.rb +82 -12
  93. data/lib/rigor/cli/effects_explain_renderer.rb +6 -3
  94. data/lib/rigor/cli/effects_snapshot_command.rb +52 -7
  95. data/lib/rigor/cli/fused_protection_renderer.rb +19 -2
  96. data/lib/rigor/cli/fused_protection_report.rb +23 -2
  97. data/lib/rigor/cli/measurement_integrity_warning.rb +57 -0
  98. data/lib/rigor/cli/mutation_protection_renderer.rb +22 -2
  99. data/lib/rigor/cli/mutation_protection_report.rb +31 -2
  100. data/lib/rigor/cli/sig_gen_command.rb +18 -0
  101. data/lib/rigor/cli/type_of_command.rb +188 -41
  102. data/lib/rigor/cli/type_of_renderer.rb +72 -3
  103. data/lib/rigor/cli/type_scan_command.rb +10 -1
  104. data/lib/rigor/cli/unused_command.rb +65 -16
  105. data/lib/rigor/cli.rb +22 -9
  106. data/lib/rigor/configuration.rb +7 -4
  107. data/lib/rigor/effects/definition_lines.rb +100 -0
  108. data/lib/rigor/effects/envelope_check.rb +18 -1
  109. data/lib/rigor/effects/liskov_check.rb +17 -8
  110. data/lib/rigor/effects/plugin_facts.rb +1 -1
  111. data/lib/rigor/effects/scanner.rb +2 -3
  112. data/lib/rigor/effects/signature_sources.rb +13 -2
  113. data/lib/rigor/effects/snapshot.rb +53 -21
  114. data/lib/rigor/effects/snapshot_diff.rb +26 -3
  115. data/lib/rigor/environment/bundle_sig_discovery.rb +64 -13
  116. data/lib/rigor/environment/lockfile_resolver.rb +15 -5
  117. data/lib/rigor/environment/missing_gem_constant_index.rb +45 -4
  118. data/lib/rigor/environment/rbs_hierarchy.rb +16 -22
  119. data/lib/rigor/environment/rbs_loader.rb +525 -46
  120. data/lib/rigor/environment.rb +38 -15
  121. data/lib/rigor/inference/acceptance.rb +172 -20
  122. data/lib/rigor/inference/captured_locals.rb +62 -0
  123. data/lib/rigor/inference/content_join.rb +347 -0
  124. data/lib/rigor/inference/def_handle.rb +15 -3
  125. data/lib/rigor/inference/def_node_resolver.rb +62 -3
  126. data/lib/rigor/inference/expression_typer.rb +1020 -141
  127. data/lib/rigor/inference/fork_map.rb +6 -1
  128. data/lib/rigor/inference/hkt_reducer.rb +12 -1
  129. data/lib/rigor/inference/hkt_registry.rb +46 -0
  130. data/lib/rigor/inference/hkt_sugar_translator.rb +93 -0
  131. data/lib/rigor/inference/index_write_widening.rb +48 -0
  132. data/lib/rigor/inference/indexed_narrowing.rb +14 -0
  133. data/lib/rigor/inference/method_dispatcher/block_folding.rb +7 -5
  134. data/lib/rigor/inference/method_dispatcher/constant_folding.rb +10 -0
  135. data/lib/rigor/inference/method_dispatcher/json_folding.rb +58 -0
  136. data/lib/rigor/inference/method_dispatcher/overload_selector.rb +81 -38
  137. data/lib/rigor/inference/method_dispatcher/rbs_dispatch.rb +54 -17
  138. data/lib/rigor/inference/method_dispatcher/shape_dispatch.rb +1 -2
  139. data/lib/rigor/inference/method_dispatcher/singleton_mixin_dispatch.rb +63 -0
  140. data/lib/rigor/inference/method_dispatcher/struct_folding.rb +63 -10
  141. data/lib/rigor/inference/method_dispatcher/struct_materialization.rb +104 -0
  142. data/lib/rigor/inference/method_dispatcher/universal_object_dispatch.rb +81 -0
  143. data/lib/rigor/inference/method_dispatcher.rb +155 -14
  144. data/lib/rigor/inference/method_parameter_binder.rb +3 -3
  145. data/lib/rigor/inference/mutation_widening.rb +244 -174
  146. data/lib/rigor/inference/narrowing.rb +331 -27
  147. data/lib/rigor/inference/parameter_inference_collector.rb +1 -0
  148. data/lib/rigor/inference/pre_eval_constants.rb +15 -0
  149. data/lib/rigor/inference/precision_scanner.rb +5 -2
  150. data/lib/rigor/inference/project_patched_scanner.rb +2 -1
  151. data/lib/rigor/inference/rbs_type_translator.rb +89 -39
  152. data/lib/rigor/inference/scope_indexer.rb +1493 -140
  153. data/lib/rigor/inference/statement_evaluator.rb +276 -91
  154. data/lib/rigor/inference/struct_fold_safety.rb +186 -27
  155. data/lib/rigor/inference/synthetic_method_scanner.rb +7 -0
  156. data/lib/rigor/inference/version_guard.rb +229 -0
  157. data/lib/rigor/language_server/selection_range_provider.rb +1 -1
  158. data/lib/rigor/plugin/base.rb +3 -2
  159. data/lib/rigor/plugin/inflector.rb +14 -5
  160. data/lib/rigor/plugin/io_boundary.rb +107 -4
  161. data/lib/rigor/plugin/loader.rb +14 -0
  162. data/lib/rigor/protection/analysis_guard.rb +60 -0
  163. data/lib/rigor/protection/closure_kill_oracle.rb +43 -38
  164. data/lib/rigor/protection/diagnostic_oracle.rb +12 -4
  165. data/lib/rigor/protection/discovery_seed.rb +1 -1
  166. data/lib/rigor/protection/measurement_integrity.rb +36 -0
  167. data/lib/rigor/protection/mutation_scanner.rb +61 -6
  168. data/lib/rigor/protection/mutator.rb +121 -18
  169. data/lib/rigor/rbs_extended/envelope_scanner.rb +9 -0
  170. data/lib/rigor/reflection.rb +182 -30
  171. data/lib/rigor/scope/discovery_index.rb +39 -1
  172. data/lib/rigor/scope.rb +385 -4
  173. data/lib/rigor/sig_gen/classification.rb +12 -1
  174. data/lib/rigor/sig_gen/generator.rb +254 -5
  175. data/lib/rigor/sig_gen/renderer.rb +1 -6
  176. data/lib/rigor/sig_gen/writer.rb +3 -0
  177. data/lib/rigor/source/constant_path.rb +79 -2
  178. data/lib/rigor/triage/catalogue.rb +1 -1
  179. data/lib/rigor/type/combinator.rb +10 -0
  180. data/lib/rigor/type/maybe.rb +47 -0
  181. data/lib/rigor/type/refined.rb +1 -2
  182. data/lib/rigor/type/result.rb +53 -0
  183. data/lib/rigor/type.rb +2 -0
  184. data/lib/rigor/version.rb +1 -1
  185. data/plugins/rigor-actioncable/lib/rigor/plugin/actioncable/analyzer.rb +3 -1
  186. data/plugins/rigor-actioncable/lib/rigor/plugin/actioncable/channel_discoverer.rb +58 -8
  187. data/plugins/rigor-actioncable/lib/rigor/plugin/actioncable/channel_index.rb +15 -2
  188. data/plugins/rigor-actioncable/lib/rigor/plugin/actioncable.rb +4 -1
  189. data/plugins/rigor-actionmailer/lib/rigor/plugin/actionmailer/analyzer.rb +3 -1
  190. data/plugins/rigor-actionmailer/lib/rigor/plugin/actionmailer/mailer_discoverer.rb +39 -14
  191. data/plugins/rigor-actionmailer/lib/rigor/plugin/actionmailer/mailer_index.rb +36 -3
  192. data/plugins/rigor-actionmailer/lib/rigor/plugin/actionmailer.rb +6 -2
  193. data/plugins/rigor-actionpack/lib/rigor/plugin/actionpack/analyzer.rb +21 -5
  194. data/plugins/rigor-actionpack/lib/rigor/plugin/actionpack/controller_discoverer.rb +47 -8
  195. data/plugins/rigor-actionpack/lib/rigor/plugin/actionpack/controller_index.rb +13 -3
  196. data/plugins/rigor-actionpack/lib/rigor/plugin/actionpack.rb +242 -4
  197. data/plugins/rigor-activejob/lib/rigor/plugin/activejob/analyzer.rb +3 -1
  198. data/plugins/rigor-activejob/lib/rigor/plugin/activejob/effects.rb +7 -3
  199. data/plugins/rigor-activejob/lib/rigor/plugin/activejob/job_discoverer.rb +62 -11
  200. data/plugins/rigor-activejob/lib/rigor/plugin/activejob/job_index.rb +15 -2
  201. data/plugins/rigor-activejob/lib/rigor/plugin/activejob/recurring_scan.rb +3 -1
  202. data/plugins/rigor-activejob/lib/rigor/plugin/activejob.rb +5 -1
  203. data/plugins/rigor-activerecord/lib/rigor/plugin/activerecord/analyzer.rb +2 -2
  204. data/plugins/rigor-activerecord/lib/rigor/plugin/activerecord/model_discoverer.rb +798 -22
  205. data/plugins/rigor-activerecord/lib/rigor/plugin/activerecord/model_index.rb +156 -13
  206. data/plugins/rigor-activerecord/lib/rigor/plugin/activerecord.rb +140 -40
  207. data/plugins/rigor-activestorage/lib/rigor/plugin/activestorage/analyzer.rb +2 -2
  208. data/plugins/rigor-activestorage/lib/rigor/plugin/activestorage/attachment_discoverer.rb +20 -6
  209. data/plugins/rigor-activestorage/lib/rigor/plugin/activestorage/attachment_index.rb +14 -4
  210. data/plugins/rigor-activestorage/lib/rigor/plugin/activestorage.rb +6 -3
  211. data/plugins/rigor-activesupport-core-ext/lib/rigor/plugin/activesupport_core_ext/effects.rb +23 -6
  212. data/plugins/rigor-activesupport-core-ext/lib/rigor/plugin/activesupport_core_ext.rb +264 -9
  213. data/plugins/rigor-activesupport-core-ext/sig/active_support/core_ext.rbs +876 -23
  214. data/plugins/rigor-dry-monads/lib/rigor/plugin/dry_monads.rb +99 -0
  215. data/plugins/rigor-dry-monads/lib/rigor-dry-monads.rb +5 -0
  216. data/plugins/rigor-ethon/lib/rigor/plugin/ethon.rb +34 -0
  217. data/plugins/rigor-ethon/lib/rigor-ethon.rb +3 -0
  218. data/plugins/rigor-ethon/sig/ethon.rbs +27 -0
  219. data/plugins/rigor-factorybot/lib/rigor/plugin/factorybot/factory_discoverer.rb +3 -2
  220. data/plugins/rigor-ffi/lib/rigor/plugin/ffi/analyzer.rb +198 -0
  221. data/plugins/rigor-ffi/lib/rigor/plugin/ffi/binding_recognizer.rb +75 -0
  222. data/plugins/rigor-ffi/lib/rigor/plugin/ffi/catalog.rb +64 -0
  223. data/plugins/rigor-ffi/lib/rigor/plugin/ffi/discoverer.rb +173 -0
  224. data/plugins/rigor-ffi/lib/rigor/plugin/ffi/target_detector.rb +46 -0
  225. data/plugins/rigor-ffi/lib/rigor/plugin/ffi/types.rb +161 -0
  226. data/plugins/rigor-ffi/lib/rigor/plugin/ffi.rb +121 -0
  227. data/plugins/rigor-ffi/lib/rigor-ffi.rb +3 -0
  228. data/plugins/rigor-ffi/sig/ffi.rbs +67 -0
  229. data/plugins/rigor-ffi-rzmq/lib/rigor/plugin/ffi_rzmq.rb +19 -0
  230. data/plugins/rigor-ffi-rzmq/lib/rigor-ffi-rzmq.rb +3 -0
  231. data/plugins/rigor-ffi-rzmq/sig/ffi_rzmq.rbs +29 -0
  232. data/plugins/rigor-graphql/lib/rigor/plugin/graphql/type_scanner.rb +2 -4
  233. data/plugins/rigor-pundit/lib/rigor/plugin/pundit/authorization_scan.rb +2 -1
  234. data/plugins/rigor-pundit/lib/rigor/plugin/pundit/policy_discoverer.rb +2 -1
  235. data/plugins/rigor-rails-i18n/lib/rigor/plugin/rails_i18n/locale_loader.rb +2 -1
  236. data/plugins/rigor-rails-i18n/lib/rigor/plugin/rails_i18n.rb +2 -1
  237. data/plugins/rigor-rails-routes/lib/rigor/plugin/rails_routes.rb +2 -1
  238. data/plugins/rigor-railties/lib/rigor/plugin/railties.rb +156 -11
  239. data/plugins/rigor-rbnacl/lib/rigor/plugin/rbnacl.rb +30 -0
  240. data/plugins/rigor-rbnacl/lib/rigor-rbnacl.rb +3 -0
  241. data/plugins/rigor-rbnacl/sig/rbnacl.rbs +22 -0
  242. data/plugins/rigor-sassc/lib/rigor/plugin/sassc.rb +55 -0
  243. data/plugins/rigor-sassc/lib/rigor-sassc.rb +3 -0
  244. data/plugins/rigor-sassc/sig/sassc.rbs +24 -0
  245. data/plugins/rigor-shoulda-matchers/lib/rigor/plugin/shoulda_matchers/analyzer.rb +32 -11
  246. data/plugins/rigor-sidekiq/lib/rigor/plugin/sidekiq/analyzer.rb +3 -1
  247. data/plugins/rigor-sidekiq/lib/rigor/plugin/sidekiq/schedule_scan.rb +4 -1
  248. data/plugins/rigor-sidekiq/lib/rigor/plugin/sidekiq/worker_discoverer.rb +63 -10
  249. data/plugins/rigor-sidekiq/lib/rigor/plugin/sidekiq/worker_index.rb +15 -2
  250. data/plugins/rigor-sidekiq/lib/rigor/plugin/sidekiq.rb +61 -2
  251. data/plugins/rigor-sorbet/lib/rigor/plugin/sorbet/catalog_walker.rb +2 -2
  252. data/plugins/rigor-sorbet/lib/rigor/plugin/sorbet.rb +4 -2
  253. data/sig/rigor/analysis/baseline.rbs +1 -1
  254. data/sig/rigor/environment.rbs +3 -0
  255. data/sig/rigor/inference.rbs +4 -1
  256. data/sig/rigor/plugin/io_boundary.rbs +2 -0
  257. data/sig/rigor/reflection.rbs +3 -1
  258. data/sig/rigor/scope.rbs +25 -1
  259. data/sig/rigor/type.rbs +95 -1
  260. data/sig/rigor.rbs +16 -0
  261. data/skills/rigor-ci-setup/SKILL.md +2 -2
  262. data/skills/rigor-editor-setup/SKILL.md +2 -2
  263. data/skills/rigor-mcp-setup/SKILL.md +2 -2
  264. data/skills/rigor-monkeypatch-resolve/SKILL.md +1 -1
  265. data/skills/rigor-plugin-review/SKILL.md +3 -3
  266. metadata +73 -3
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rigortype
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.5
4
+ version: 0.3.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rigor contributors
@@ -115,7 +115,7 @@ dependencies:
115
115
  requirements:
116
116
  - - ">="
117
117
  - !ruby/object:Gem::Version
118
- version: 0.1.0
118
+ version: 0.5.0
119
119
  - - "<"
120
120
  - !ruby/object:Gem::Version
121
121
  version: '1.0'
@@ -125,7 +125,7 @@ dependencies:
125
125
  requirements:
126
126
  - - ">="
127
127
  - !ruby/object:Gem::Version
128
- version: 0.1.0
128
+ version: 0.5.0
129
129
  - - "<"
130
130
  - !ruby/object:Gem::Version
131
131
  version: '1.0'
@@ -249,6 +249,26 @@ dependencies:
249
249
  - - "<"
250
250
  - !ruby/object:Gem::Version
251
251
  version: '4.0'
252
+ - !ruby/object:Gem::Dependency
253
+ name: test-prof
254
+ requirement: !ruby/object:Gem::Requirement
255
+ requirements:
256
+ - - ">="
257
+ - !ruby/object:Gem::Version
258
+ version: '1.6'
259
+ - - "<"
260
+ - !ruby/object:Gem::Version
261
+ version: '2.0'
262
+ type: :development
263
+ prerelease: false
264
+ version_requirements: !ruby/object:Gem::Requirement
265
+ requirements:
266
+ - - ">="
267
+ - !ruby/object:Gem::Version
268
+ version: '1.6'
269
+ - - "<"
270
+ - !ruby/object:Gem::Version
271
+ version: '2.0'
252
272
  description: 'Rigor is a CLI-first static analyzer for Ruby applications that prioritizes
253
273
  type inference, clean application code, and zero runtime dependencies. Rigor is
254
274
  a standalone tool, not a library: install it independently rather than adding it
@@ -401,11 +421,13 @@ files:
401
421
  - lib/rigor/analysis/check_rules.rb
402
422
  - lib/rigor/analysis/check_rules/always_truthy_condition_collector.rb
403
423
  - lib/rigor/analysis/check_rules/dead_assignment_collector.rb
424
+ - lib/rigor/analysis/check_rules/dead_version_guard_arms.rb
404
425
  - lib/rigor/analysis/check_rules/declaration_sourced_guard.rb
405
426
  - lib/rigor/analysis/check_rules/duplicate_hash_key_collector.rb
406
427
  - lib/rigor/analysis/check_rules/inferred_param_guard.rb
407
428
  - lib/rigor/analysis/check_rules/ivar_write_collector.rb
408
429
  - lib/rigor/analysis/check_rules/main_pass_collector.rb
430
+ - lib/rigor/analysis/check_rules/published_constant_guard.rb
409
431
  - lib/rigor/analysis/check_rules/return_in_ensure_collector.rb
410
432
  - lib/rigor/analysis/check_rules/rule_ids.rb
411
433
  - lib/rigor/analysis/check_rules/rule_walk.rb
@@ -413,6 +435,7 @@ files:
413
435
  - lib/rigor/analysis/check_rules/shadowed_rescue_collector.rb
414
436
  - lib/rigor/analysis/check_rules/unreachable_clause_collector.rb
415
437
  - lib/rigor/analysis/check_rules/void_value_use_collector.rb
438
+ - lib/rigor/analysis/crash_signature.rb
416
439
  - lib/rigor/analysis/dependency_recorder.rb
417
440
  - lib/rigor/analysis/dependency_source_inference.rb
418
441
  - lib/rigor/analysis/dependency_source_inference/boundary_cross_reporter.rb
@@ -422,6 +445,7 @@ files:
422
445
  - lib/rigor/analysis/dependency_source_inference/return_type_heuristic.rb
423
446
  - lib/rigor/analysis/dependency_source_inference/walker.rb
424
447
  - lib/rigor/analysis/diagnostic.rb
448
+ - lib/rigor/analysis/effects_cache_probe.rb
425
449
  - lib/rigor/analysis/erb_template_detector.rb
426
450
  - lib/rigor/analysis/fact_store.rb
427
451
  - lib/rigor/analysis/incremental.rb
@@ -433,6 +457,7 @@ files:
433
457
  - lib/rigor/analysis/reachability/plugin_roots.rb
434
458
  - lib/rigor/analysis/reachability/project_files.rb
435
459
  - lib/rigor/analysis/reachability/scan.rb
460
+ - lib/rigor/analysis/reachability/scan_cache.rb
436
461
  - lib/rigor/analysis/reachability/signature_scan.rb
437
462
  - lib/rigor/analysis/result.rb
438
463
  - lib/rigor/analysis/rule_catalog.rb
@@ -488,6 +513,7 @@ files:
488
513
  - lib/rigor/cli/coverage_scan.rb
489
514
  - lib/rigor/cli/diagnostic_formats.rb
490
515
  - lib/rigor/cli/diff_command.rb
516
+ - lib/rigor/cli/doc_links.rb
491
517
  - lib/rigor/cli/docs_command.rb
492
518
  - lib/rigor/cli/doctor_command.rb
493
519
  - lib/rigor/cli/effects_command.rb
@@ -501,6 +527,7 @@ files:
501
527
  - lib/rigor/cli/fused_protection_report.rb
502
528
  - lib/rigor/cli/lsp_command.rb
503
529
  - lib/rigor/cli/mcp_command.rb
530
+ - lib/rigor/cli/measurement_integrity_warning.rb
504
531
  - lib/rigor/cli/mutation_fork_scan.rb
505
532
  - lib/rigor/cli/mutation_protection_renderer.rb
506
533
  - lib/rigor/cli/mutation_protection_report.rb
@@ -540,6 +567,7 @@ files:
540
567
  - lib/rigor/effects/catalog.rb
541
568
  - lib/rigor/effects/collector.rb
542
569
  - lib/rigor/effects/config_envelopes.rb
570
+ - lib/rigor/effects/definition_lines.rb
543
571
  - lib/rigor/effects/discharge.rb
544
572
  - lib/rigor/effects/effect_table.rb
545
573
  - lib/rigor/effects/entry_points.rb
@@ -617,7 +645,9 @@ files:
617
645
  - lib/rigor/inference/builtins/string_catalog.rb
618
646
  - lib/rigor/inference/builtins/struct_catalog.rb
619
647
  - lib/rigor/inference/builtins/time_catalog.rb
648
+ - lib/rigor/inference/captured_locals.rb
620
649
  - lib/rigor/inference/closure_escape_analyzer.rb
650
+ - lib/rigor/inference/content_join.rb
621
651
  - lib/rigor/inference/coverage_scanner.rb
622
652
  - lib/rigor/inference/def_handle.rb
623
653
  - lib/rigor/inference/def_node_resolver.rb
@@ -632,6 +662,8 @@ files:
632
662
  - lib/rigor/inference/hkt_body_parser.rb
633
663
  - lib/rigor/inference/hkt_reducer.rb
634
664
  - lib/rigor/inference/hkt_registry.rb
665
+ - lib/rigor/inference/hkt_sugar_translator.rb
666
+ - lib/rigor/inference/index_write_widening.rb
635
667
  - lib/rigor/inference/indexed_narrowing.rb
636
668
  - lib/rigor/inference/macro_block_self_type.rb
637
669
  - lib/rigor/inference/method_dispatcher.rb
@@ -643,6 +675,7 @@ files:
643
675
  - lib/rigor/inference/method_dispatcher/data_folding.rb
644
676
  - lib/rigor/inference/method_dispatcher/file_folding.rb
645
677
  - lib/rigor/inference/method_dispatcher/iterator_dispatch.rb
678
+ - lib/rigor/inference/method_dispatcher/json_folding.rb
646
679
  - lib/rigor/inference/method_dispatcher/kernel_dispatch.rb
647
680
  - lib/rigor/inference/method_dispatcher/literal_string_folding.rb
648
681
  - lib/rigor/inference/method_dispatcher/math_folding.rb
@@ -657,8 +690,11 @@ files:
657
690
  - lib/rigor/inference/method_dispatcher/shape_dispatch.rb
658
691
  - lib/rigor/inference/method_dispatcher/shellwords_folding.rb
659
692
  - lib/rigor/inference/method_dispatcher/singleton_folding.rb
693
+ - lib/rigor/inference/method_dispatcher/singleton_mixin_dispatch.rb
660
694
  - lib/rigor/inference/method_dispatcher/struct_folding.rb
695
+ - lib/rigor/inference/method_dispatcher/struct_materialization.rb
661
696
  - lib/rigor/inference/method_dispatcher/time_folding.rb
697
+ - lib/rigor/inference/method_dispatcher/universal_object_dispatch.rb
662
698
  - lib/rigor/inference/method_dispatcher/uri_folding.rb
663
699
  - lib/rigor/inference/method_parameter_binder.rb
664
700
  - lib/rigor/inference/multi_target_binder.rb
@@ -681,6 +717,7 @@ files:
681
717
  - lib/rigor/inference/synthetic_method.rb
682
718
  - lib/rigor/inference/synthetic_method_index.rb
683
719
  - lib/rigor/inference/synthetic_method_scanner.rb
720
+ - lib/rigor/inference/version_guard.rb
684
721
  - lib/rigor/inference/void_origin.rb
685
722
  - lib/rigor/inference/void_tail_summary.rb
686
723
  - lib/rigor/language_server.rb
@@ -736,11 +773,13 @@ files:
736
773
  - lib/rigor/plugin/source_rbs_synthesis_reporter.rb
737
774
  - lib/rigor/plugin/trust_policy.rb
738
775
  - lib/rigor/plugin/type_node_resolver.rb
776
+ - lib/rigor/protection/analysis_guard.rb
739
777
  - lib/rigor/protection/closure_kill_oracle.rb
740
778
  - lib/rigor/protection/dependency_closure.rb
741
779
  - lib/rigor/protection/diagnostic_oracle.rb
742
780
  - lib/rigor/protection/discovery_seed.rb
743
781
  - lib/rigor/protection/kill_signature.rb
782
+ - lib/rigor/protection/measurement_integrity.rb
744
783
  - lib/rigor/protection/mutation_cache.rb
745
784
  - lib/rigor/protection/mutation_scanner.rb
746
785
  - lib/rigor/protection/mutator.rb
@@ -796,9 +835,11 @@ files:
796
835
  - lib/rigor/type/hash_shape.rb
797
836
  - lib/rigor/type/integer_range.rb
798
837
  - lib/rigor/type/intersection.rb
838
+ - lib/rigor/type/maybe.rb
799
839
  - lib/rigor/type/nominal.rb
800
840
  - lib/rigor/type/plain_lattice.rb
801
841
  - lib/rigor/type/refined.rb
842
+ - lib/rigor/type/result.rb
802
843
  - lib/rigor/type/singleton.rb
803
844
  - lib/rigor/type/struct_class.rb
804
845
  - lib/rigor/type/struct_instance.rb
@@ -865,6 +906,8 @@ files:
865
906
  - plugins/rigor-activesupport-core-ext/sig/active_support/core_ext.rbs
866
907
  - plugins/rigor-devise/lib/rigor-devise.rb
867
908
  - plugins/rigor-devise/lib/rigor/plugin/devise.rb
909
+ - plugins/rigor-dry-monads/lib/rigor-dry-monads.rb
910
+ - plugins/rigor-dry-monads/lib/rigor/plugin/dry_monads.rb
868
911
  - plugins/rigor-dry-schema/lib/rigor-dry-schema.rb
869
912
  - plugins/rigor-dry-schema/lib/rigor/plugin/dry_schema.rb
870
913
  - plugins/rigor-dry-schema/lib/rigor/plugin/dry_schema/result_shape.rb
@@ -879,11 +922,26 @@ files:
879
922
  - plugins/rigor-dry-validation/lib/rigor/plugin/dry_validation/contract_scanner.rb
880
923
  - plugins/rigor-dry-validation/lib/rigor/plugin/dry_validation/params_shape.rb
881
924
  - plugins/rigor-dry-validation/sig/dry_validation.rbs
925
+ - plugins/rigor-ethon/lib/rigor-ethon.rb
926
+ - plugins/rigor-ethon/lib/rigor/plugin/ethon.rb
927
+ - plugins/rigor-ethon/sig/ethon.rbs
882
928
  - plugins/rigor-factorybot/lib/rigor-factorybot.rb
883
929
  - plugins/rigor-factorybot/lib/rigor/plugin/factorybot.rb
884
930
  - plugins/rigor-factorybot/lib/rigor/plugin/factorybot/analyzer.rb
885
931
  - plugins/rigor-factorybot/lib/rigor/plugin/factorybot/factory_discoverer.rb
886
932
  - plugins/rigor-factorybot/lib/rigor/plugin/factorybot/factory_index.rb
933
+ - plugins/rigor-ffi-rzmq/lib/rigor-ffi-rzmq.rb
934
+ - plugins/rigor-ffi-rzmq/lib/rigor/plugin/ffi_rzmq.rb
935
+ - plugins/rigor-ffi-rzmq/sig/ffi_rzmq.rbs
936
+ - plugins/rigor-ffi/lib/rigor-ffi.rb
937
+ - plugins/rigor-ffi/lib/rigor/plugin/ffi.rb
938
+ - plugins/rigor-ffi/lib/rigor/plugin/ffi/analyzer.rb
939
+ - plugins/rigor-ffi/lib/rigor/plugin/ffi/binding_recognizer.rb
940
+ - plugins/rigor-ffi/lib/rigor/plugin/ffi/catalog.rb
941
+ - plugins/rigor-ffi/lib/rigor/plugin/ffi/discoverer.rb
942
+ - plugins/rigor-ffi/lib/rigor/plugin/ffi/target_detector.rb
943
+ - plugins/rigor-ffi/lib/rigor/plugin/ffi/types.rb
944
+ - plugins/rigor-ffi/sig/ffi.rbs
887
945
  - plugins/rigor-graphql/lib/rigor-graphql.rb
888
946
  - plugins/rigor-graphql/lib/rigor/plugin/graphql.rb
889
947
  - plugins/rigor-graphql/lib/rigor/plugin/graphql/type_scanner.rb
@@ -922,6 +980,9 @@ files:
922
980
  - plugins/rigor-railties/lib/rigor-railties.rb
923
981
  - plugins/rigor-railties/lib/rigor/plugin/railties.rb
924
982
  - plugins/rigor-railties/lib/rigor/plugin/railties/effects.rb
983
+ - plugins/rigor-rbnacl/lib/rigor-rbnacl.rb
984
+ - plugins/rigor-rbnacl/lib/rigor/plugin/rbnacl.rb
985
+ - plugins/rigor-rbnacl/sig/rbnacl.rbs
925
986
  - plugins/rigor-rbs-inline/lib/rigor-rbs-inline.rb
926
987
  - plugins/rigor-rbs-inline/lib/rigor/plugin/rbs_inline.rb
927
988
  - plugins/rigor-rspec-rails/lib/rigor-rspec-rails.rb
@@ -935,6 +996,9 @@ files:
935
996
  - plugins/rigor-rspec/lib/rigor/plugin/rspec/let_type_resolver.rb
936
997
  - plugins/rigor-rspec/lib/rigor/plugin/rspec/matcher_analyzer.rb
937
998
  - plugins/rigor-rspec/lib/rigor/plugin/rspec/scope_walker.rb
999
+ - plugins/rigor-sassc/lib/rigor-sassc.rb
1000
+ - plugins/rigor-sassc/lib/rigor/plugin/sassc.rb
1001
+ - plugins/rigor-sassc/sig/sassc.rbs
938
1002
  - plugins/rigor-shoulda-matchers/lib/rigor-shoulda-matchers.rb
939
1003
  - plugins/rigor-shoulda-matchers/lib/rigor/plugin/shoulda_matchers.rb
940
1004
  - plugins/rigor-shoulda-matchers/lib/rigor/plugin/shoulda_matchers/analyzer.rb
@@ -1057,11 +1121,15 @@ require_paths:
1057
1121
  - plugins/rigor-activestorage/lib
1058
1122
  - plugins/rigor-activesupport-core-ext/lib
1059
1123
  - plugins/rigor-devise/lib
1124
+ - plugins/rigor-dry-monads/lib
1060
1125
  - plugins/rigor-dry-schema/lib
1061
1126
  - plugins/rigor-dry-struct/lib
1062
1127
  - plugins/rigor-dry-types/lib
1063
1128
  - plugins/rigor-dry-validation/lib
1129
+ - plugins/rigor-ethon/lib
1064
1130
  - plugins/rigor-factorybot/lib
1131
+ - plugins/rigor-ffi/lib
1132
+ - plugins/rigor-ffi-rzmq/lib
1065
1133
  - plugins/rigor-graphql/lib
1066
1134
  - plugins/rigor-hanami/lib
1067
1135
  - plugins/rigor-mangrove/lib
@@ -1071,9 +1139,11 @@ require_paths:
1071
1139
  - plugins/rigor-rails-i18n/lib
1072
1140
  - plugins/rigor-rails-routes/lib
1073
1141
  - plugins/rigor-railties/lib
1142
+ - plugins/rigor-rbnacl/lib
1074
1143
  - plugins/rigor-rbs-inline/lib
1075
1144
  - plugins/rigor-rspec/lib
1076
1145
  - plugins/rigor-rspec-rails/lib
1146
+ - plugins/rigor-sassc/lib
1077
1147
  - plugins/rigor-shoulda-matchers/lib
1078
1148
  - plugins/rigor-sidekiq/lib
1079
1149
  - plugins/rigor-sinatra/lib