rigortype 0.4.5 → 0.4.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 (452) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +2 -2
  3. data/data/gem_overlay/activesupport/core_ext.rbs +16 -13
  4. data/data/vendored_gem_sigs/bundler/bundler.rbs +1 -1
  5. data/data/vendored_gem_sigs/rubygems/rubygems_extras.rbs +4 -3
  6. data/docs/handbook/01-getting-started.md +5 -2
  7. data/docs/handbook/11-sig-gen.md +61 -5
  8. data/docs/handbook/appendix-phpstan.md +4 -4
  9. data/docs/manual/02-cli-reference.md +192 -27
  10. data/docs/manual/03-configuration.md +38 -4
  11. data/docs/manual/04-diagnostics.md +1 -1
  12. data/docs/manual/06-baseline.md +6 -4
  13. data/docs/manual/09-editor-integration.md +13 -2
  14. data/docs/manual/10-mcp-server.md +47 -3
  15. data/docs/manual/12-caching.md +9 -1
  16. data/docs/manual/plugins/rigor-actionmailer.md +30 -0
  17. data/docs/manual/plugins/rigor-actionpack.md +49 -11
  18. data/docs/manual/plugins/rigor-activesupport-core-ext.md +20 -1
  19. data/docs/manual/plugins/rigor-devise.md +15 -0
  20. data/docs/manual/plugins/rigor-rspec.md +2 -1
  21. data/lib/rigor/analysis/baseline.rb +24 -27
  22. data/lib/rigor/analysis/buffer_binding.rb +14 -0
  23. data/lib/rigor/analysis/check_rules/always_truthy_condition_collector.rb +5 -6
  24. data/lib/rigor/analysis/check_rules/dead_assignment_collector.rb +2 -2
  25. data/lib/rigor/analysis/check_rules/declaration_sourced_guard.rb +4 -4
  26. data/lib/rigor/analysis/check_rules/duplicate_hash_key_collector.rb +2 -2
  27. data/lib/rigor/analysis/check_rules/inferred_param_guard.rb +105 -12
  28. data/lib/rigor/analysis/check_rules/ivar_write_collector.rb +143 -15
  29. data/lib/rigor/analysis/check_rules/lexical_method_sites.rb +4 -1
  30. data/lib/rigor/analysis/check_rules/main_pass_collector.rb +5 -8
  31. data/lib/rigor/analysis/check_rules/published_constant_guard.rb +1 -1
  32. data/lib/rigor/analysis/check_rules/rbs_receiver_surface.rb +66 -3
  33. data/lib/rigor/analysis/check_rules/rebinding_block_callees/dispatch.rb +112 -0
  34. data/lib/rigor/analysis/check_rules/rebinding_block_callees.rb +394 -0
  35. data/lib/rigor/analysis/check_rules/return_in_ensure_collector.rb +1 -2
  36. data/lib/rigor/analysis/check_rules/ruby_deprecations.rb +7 -0
  37. data/lib/rigor/analysis/check_rules/rule_ids.rb +1 -1
  38. data/lib/rigor/analysis/check_rules/rule_walk.rb +9 -7
  39. data/lib/rigor/analysis/check_rules/shadowed_rescue_collector.rb +3 -4
  40. data/lib/rigor/analysis/check_rules/special_global_setters.rb +3 -3
  41. data/lib/rigor/analysis/check_rules/unreachable_clause_collector.rb +53 -2
  42. data/lib/rigor/analysis/check_rules/void_value_use_collector.rb +1 -1
  43. data/lib/rigor/analysis/check_rules.rb +217 -52
  44. data/lib/rigor/analysis/crash_signature.rb +2 -2
  45. data/lib/rigor/analysis/dependency_recorder.rb +15 -4
  46. data/lib/rigor/analysis/dependency_source_inference/boundary_cross_reporter.rb +14 -3
  47. data/lib/rigor/analysis/dependency_source_inference/gem_resolver.rb +1 -1
  48. data/lib/rigor/analysis/dependency_source_inference/index.rb +6 -8
  49. data/lib/rigor/analysis/dependency_source_inference/walker.rb +4 -4
  50. data/lib/rigor/analysis/edit_replay.rb +154 -0
  51. data/lib/rigor/analysis/fact_store.rb +3 -3
  52. data/lib/rigor/analysis/incremental.rb +37 -0
  53. data/lib/rigor/analysis/incremental_run_slot/write_guard.rb +2 -2
  54. data/lib/rigor/analysis/incremental_run_slot.rb +2 -2
  55. data/lib/rigor/analysis/incremental_session.rb +202 -43
  56. data/lib/rigor/analysis/path_expansion.rb +41 -0
  57. data/lib/rigor/analysis/require_relative_closure.rb +100 -0
  58. data/lib/rigor/analysis/rule_catalog.rb +7 -3
  59. data/lib/rigor/analysis/run_disclosure_credit.rb +80 -0
  60. data/lib/rigor/analysis/run_disclosure_ledger.rb +155 -0
  61. data/lib/rigor/analysis/run_stats.rb +2 -2
  62. data/lib/rigor/analysis/runner/buffer_pool_dispatcher.rb +8 -4
  63. data/lib/rigor/analysis/runner/declaration_position.rb +1 -1
  64. data/lib/rigor/analysis/runner/diagnostic_aggregator.rb +204 -96
  65. data/lib/rigor/analysis/runner/effect_envelope_pass.rb +1 -1
  66. data/lib/rigor/analysis/runner/pool_coordinator.rb +157 -320
  67. data/lib/rigor/analysis/runner/project_pre_passes.rb +48 -6
  68. data/lib/rigor/analysis/runner/run_level_facts.rb +304 -0
  69. data/lib/rigor/analysis/runner/run_snapshots.rb +44 -54
  70. data/lib/rigor/analysis/runner/scan_environment.rb +51 -0
  71. data/lib/rigor/analysis/runner/worker_payload.rb +36 -0
  72. data/lib/rigor/analysis/runner.rb +233 -120
  73. data/lib/rigor/analysis/self_call_resolution_recorder.rb +1 -1
  74. data/lib/rigor/analysis/template_unit_positions.rb +2 -3
  75. data/lib/rigor/analysis/template_units.rb +9 -1
  76. data/lib/rigor/analysis/worker_session.rb +38 -33
  77. data/lib/rigor/bleeding_edge.rb +3 -6
  78. data/lib/rigor/builtins/imported_refinements.rb +6 -8
  79. data/lib/rigor/builtins/predefined_constant_refinements.rb +1 -1
  80. data/lib/rigor/builtins/regex_refinement.rb +4 -6
  81. data/lib/rigor/cache/descriptor.rb +6 -5
  82. data/lib/rigor/cache/incremental_snapshot.rb +60 -18
  83. data/lib/rigor/cache/rbs_cache_producer.rb +2 -2
  84. data/lib/rigor/cache/rbs_class_ancestor_table.rb +1 -1
  85. data/lib/rigor/cache/rbs_class_type_param_names.rb +2 -2
  86. data/lib/rigor/cache/rbs_constant_table.rb +1 -1
  87. data/lib/rigor/cache/rbs_descriptor.rb +54 -3
  88. data/lib/rigor/cache/rbs_environment.rb +4 -1
  89. data/lib/rigor/cache/rbs_environment_marshal_patch.rb +2 -2
  90. data/lib/rigor/cache/rbs_known_class_names.rb +1 -1
  91. data/lib/rigor/cache/store.rb +11 -10
  92. data/lib/rigor/ci_detector.rb +1 -1
  93. data/lib/rigor/cli/annotate_command.rb +24 -19
  94. data/lib/rigor/cli/baseline_command.rb +145 -55
  95. data/lib/rigor/cli/catalogue.rb +256 -0
  96. data/lib/rigor/cli/check_command.rb +188 -93
  97. data/lib/rigor/cli/check_runner_factory.rb +2 -2
  98. data/lib/rigor/cli/command.rb +15 -1
  99. data/lib/rigor/cli/coverage_command.rb +21 -8
  100. data/lib/rigor/cli/coverage_mutation.rb +5 -7
  101. data/lib/rigor/cli/coverage_renderer.rb +2 -1
  102. data/lib/rigor/cli/coverage_scan.rb +3 -5
  103. data/lib/rigor/cli/diff_command.rb +27 -21
  104. data/lib/rigor/cli/docs_command.rb +1 -2
  105. data/lib/rigor/cli/doctor_command.rb +12 -12
  106. data/lib/rigor/cli/effects_command.rb +50 -40
  107. data/lib/rigor/cli/effects_diff_renderer.rb +18 -17
  108. data/lib/rigor/cli/effects_explain_renderer.rb +13 -12
  109. data/lib/rigor/cli/effects_renderer.rb +2 -1
  110. data/lib/rigor/cli/effects_snapshot_command.rb +18 -17
  111. data/lib/rigor/cli/explain_command.rb +18 -8
  112. data/lib/rigor/cli/fused_protection_renderer.rb +2 -1
  113. data/lib/rigor/cli/json_document.rb +41 -0
  114. data/lib/rigor/cli/lens_command.rb +17 -13
  115. data/lib/rigor/cli/lsp_command.rb +250 -23
  116. data/lib/rigor/cli/mcp_command.rb +14 -8
  117. data/lib/rigor/cli/mutation_fork_scan.rb +1 -1
  118. data/lib/rigor/cli/mutation_protection_renderer.rb +3 -2
  119. data/lib/rigor/cli/options.rb +60 -4
  120. data/lib/rigor/cli/plugin_command.rb +93 -46
  121. data/lib/rigor/cli/plugins_command.rb +22 -18
  122. data/lib/rigor/cli/plugins_renderer.rb +34 -8
  123. data/lib/rigor/cli/protection_fork_scan.rb +2 -2
  124. data/lib/rigor/cli/protection_renderer.rb +2 -1
  125. data/lib/rigor/cli/show_bleedingedge_command.rb +23 -16
  126. data/lib/rigor/cli/sig_gen_command.rb +130 -34
  127. data/lib/rigor/cli/skill_command.rb +32 -3
  128. data/lib/rigor/cli/skill_deep_probe.rb +1 -1
  129. data/lib/rigor/cli/skill_describe.rb +1 -1
  130. data/lib/rigor/cli/trace_command.rb +14 -9
  131. data/lib/rigor/cli/triage_command.rb +10 -11
  132. data/lib/rigor/cli/triage_renderer.rb +2 -1
  133. data/lib/rigor/cli/type_of_command.rb +18 -12
  134. data/lib/rigor/cli/type_of_project_scope.rb +24 -0
  135. data/lib/rigor/cli/type_of_renderer.rb +4 -1
  136. data/lib/rigor/cli/type_scan_command.rb +14 -9
  137. data/lib/rigor/cli/type_scan_renderer.rb +2 -1
  138. data/lib/rigor/cli/unused_command.rb +27 -17
  139. data/lib/rigor/cli/upgrade_command.rb +5 -0
  140. data/lib/rigor/cli.rb +209 -54
  141. data/lib/rigor/config_audit.rb +17 -6
  142. data/lib/rigor/configuration/severity_profile.rb +5 -5
  143. data/lib/rigor/configuration.rb +86 -34
  144. data/lib/rigor/effects/definition_context.rb +0 -2
  145. data/lib/rigor/effects/envelope.rb +1 -1
  146. data/lib/rigor/effects/framework_units.rb +1 -1
  147. data/lib/rigor/effects/mutation_classifier.rb +4 -7
  148. data/lib/rigor/effects/propagator.rb +1 -1
  149. data/lib/rigor/effects/registry.rb +2 -2
  150. data/lib/rigor/effects/snapshot.rb +1 -1
  151. data/lib/rigor/effects/taint_cause.rb +0 -2
  152. data/lib/rigor/effects/unit_scan.rb +9 -13
  153. data/lib/rigor/environment/bundle_sig_discovery.rb +5 -9
  154. data/lib/rigor/environment/class_registry.rb +3 -3
  155. data/lib/rigor/environment/core_root.rb +77 -0
  156. data/lib/rigor/environment/default_libraries.rb +1 -1
  157. data/lib/rigor/environment/deferred_signature_plan.rb +283 -0
  158. data/lib/rigor/environment/gated_signature_guard.rb +1 -1
  159. data/lib/rigor/environment/gated_signature_plan.rb +5 -2
  160. data/lib/rigor/environment/lockfile_resolver.rb +28 -12
  161. data/lib/rigor/environment/member_consistency/comparator.rb +18 -1
  162. data/lib/rigor/environment/member_consistency.rb +56 -7
  163. data/lib/rigor/environment/missing_gem_constant_index.rb +3 -2
  164. data/lib/rigor/environment/project_path_gems.rb +124 -0
  165. data/lib/rigor/environment/rbs_hierarchy.rb +6 -15
  166. data/lib/rigor/environment/rbs_loader.rb +592 -70
  167. data/lib/rigor/environment/reflection.rb +7 -7
  168. data/lib/rigor/environment/required_features.rb +136 -32
  169. data/lib/rigor/environment/ruby_library_roots.rb +122 -0
  170. data/lib/rigor/environment/vendored_signature_plan.rb +153 -0
  171. data/lib/rigor/environment.rb +44 -11
  172. data/lib/rigor/flow_contribution/merger.rb +4 -4
  173. data/lib/rigor/inference/acceptance.rb +93 -32
  174. data/lib/rigor/inference/block_parameter_binder.rb +2 -3
  175. data/lib/rigor/inference/block_run_count.rb +178 -0
  176. data/lib/rigor/inference/budget_trace.rb +8 -2
  177. data/lib/rigor/inference/builtins/exception_catalog.rb +2 -2
  178. data/lib/rigor/inference/builtins/numeric_catalog.rb +2 -5
  179. data/lib/rigor/inference/builtins/random_catalog.rb +2 -2
  180. data/lib/rigor/inference/callee_mutation_chain.rb +126 -0
  181. data/lib/rigor/inference/callee_write_census.rb +815 -0
  182. data/lib/rigor/inference/construction_escape.rb +217 -0
  183. data/lib/rigor/inference/declaration_walk/traversal.rb +1 -1
  184. data/lib/rigor/inference/deep_erasure.rb +170 -0
  185. data/lib/rigor/inference/def_handle.rb +1 -1
  186. data/lib/rigor/inference/def_node_resolver.rb +1 -1
  187. data/lib/rigor/inference/def_return_typer.rb +204 -12
  188. data/lib/rigor/inference/definer_resolution.rb +21 -5
  189. data/lib/rigor/inference/definers_index.rb +106 -0
  190. data/lib/rigor/inference/direct_ivar_writes.rb +300 -0
  191. data/lib/rigor/inference/element_read_widening.rb +49 -3
  192. data/lib/rigor/inference/error_info.rb +17 -3
  193. data/lib/rigor/inference/expression_typer.rb +173 -57
  194. data/lib/rigor/inference/external_ancestor_resolution.rb +3 -4
  195. data/lib/rigor/inference/global_write_census.rb +110 -1
  196. data/lib/rigor/inference/global_writer_reach.rb +260 -0
  197. data/lib/rigor/inference/hkt_body.rb +1 -2
  198. data/lib/rigor/inference/hkt_body_parser.rb +3 -5
  199. data/lib/rigor/inference/hkt_reducer.rb +2 -2
  200. data/lib/rigor/inference/hkt_registry.rb +3 -5
  201. data/lib/rigor/inference/indexed_narrowing.rb +4 -7
  202. data/lib/rigor/inference/intervening_ivar_reset.rb +26 -4
  203. data/lib/rigor/inference/ivar_writer_census.rb +246 -0
  204. data/lib/rigor/inference/key_presence_guard.rb +2 -1
  205. data/lib/rigor/inference/loop_value_record.rb +57 -0
  206. data/lib/rigor/inference/match_rebinding/frame.rb +65 -0
  207. data/lib/rigor/inference/match_rebinding/yielding_match.rb +45 -0
  208. data/lib/rigor/inference/match_rebinding.rb +11 -1
  209. data/lib/rigor/inference/memo_audit.rb +55 -0
  210. data/lib/rigor/inference/method_dispatcher/alias_strict_nominals.rb +1 -1
  211. data/lib/rigor/inference/method_dispatcher/argument_distribution.rb +40 -0
  212. data/lib/rigor/inference/method_dispatcher/block_folding.rb +1 -1
  213. data/lib/rigor/inference/method_dispatcher/constant_folding.rb +113 -12
  214. data/lib/rigor/inference/method_dispatcher/contested_overloads.rb +89 -0
  215. data/lib/rigor/inference/method_dispatcher/iterator_dispatch.rb +1 -1
  216. data/lib/rigor/inference/method_dispatcher/kernel_dispatch.rb +7 -3
  217. data/lib/rigor/inference/method_dispatcher/no_match_fallback.rb +54 -0
  218. data/lib/rigor/inference/method_dispatcher/overload_selector.rb +39 -27
  219. data/lib/rigor/inference/method_dispatcher/random_folding.rb +1 -1
  220. data/lib/rigor/inference/method_dispatcher/rbs_dispatch.rb +203 -17
  221. data/lib/rigor/inference/method_dispatcher/reduce_folding.rb +1 -1
  222. data/lib/rigor/inference/method_dispatcher/regexp_folding.rb +2 -2
  223. data/lib/rigor/inference/method_dispatcher/self_substitute.rb +2 -2
  224. data/lib/rigor/inference/method_dispatcher/set_folding.rb +59 -24
  225. data/lib/rigor/inference/method_dispatcher/shape_dispatch.rb +83 -20
  226. data/lib/rigor/inference/method_dispatcher/singleton_folding.rb +0 -1
  227. data/lib/rigor/inference/method_dispatcher/singleton_mixin_dispatch.rb +50 -17
  228. data/lib/rigor/inference/method_dispatcher/struct_folding.rb +5 -5
  229. data/lib/rigor/inference/method_dispatcher/struct_materialization.rb +4 -6
  230. data/lib/rigor/inference/method_dispatcher/uri_folding.rb +1 -1
  231. data/lib/rigor/inference/method_dispatcher.rb +109 -29
  232. data/lib/rigor/inference/module_function_state/spellings.rb +64 -0
  233. data/lib/rigor/inference/module_function_state.rb +23 -1
  234. data/lib/rigor/inference/multi_target_binder.rb +1 -1
  235. data/lib/rigor/inference/mutation_rejoin.rb +240 -4
  236. data/lib/rigor/inference/mutation_widening.rb +162 -29
  237. data/lib/rigor/inference/narrowing.rb +113 -38
  238. data/lib/rigor/inference/object_mixins.rb +13 -1
  239. data/lib/rigor/inference/optimistic_origin.rb +1 -1
  240. data/lib/rigor/inference/out_buffer_mutation.rb +72 -0
  241. data/lib/rigor/inference/parameter_inference_collector.rb +5 -6
  242. data/lib/rigor/inference/pre_eval_constants.rb +1 -1
  243. data/lib/rigor/inference/project_method_ownership.rb +6 -3
  244. data/lib/rigor/inference/project_seed_tables.rb +2 -1
  245. data/lib/rigor/inference/project_yielder.rb +122 -0
  246. data/lib/rigor/inference/receiver_alias.rb +20 -0
  247. data/lib/rigor/inference/refined_dispatch/constructed_class.rb +3 -1
  248. data/lib/rigor/inference/refined_dispatch/own_method.rb +2 -1
  249. data/lib/rigor/inference/remover_holder_scan.rb +233 -0
  250. data/lib/rigor/inference/remover_narrowing.rb +224 -0
  251. data/lib/rigor/inference/rewrite_mutation.rb +53 -2
  252. data/lib/rigor/inference/scope_indexer/certainty.rb +9 -1
  253. data/lib/rigor/inference/scope_indexer/constant_ivar_value.rb +93 -0
  254. data/lib/rigor/inference/scope_indexer/declared_ivar_types.rb +64 -0
  255. data/lib/rigor/inference/scope_indexer/declared_param_writes.rb +205 -0
  256. data/lib/rigor/inference/scope_indexer/derived_param_value.rb +112 -0
  257. data/lib/rigor/inference/scope_indexer/empty_seed.rb +99 -0
  258. data/lib/rigor/inference/scope_indexer/ivar_contributions.rb +135 -0
  259. data/lib/rigor/inference/scope_indexer/unseen_ivar_writers.rb +133 -0
  260. data/lib/rigor/inference/scope_indexer.rb +614 -146
  261. data/lib/rigor/inference/self_call_ivar_writes.rb +101 -17
  262. data/lib/rigor/inference/set_mutation.rb +189 -0
  263. data/lib/rigor/inference/singleton_hook_decline.rb +1 -2
  264. data/lib/rigor/inference/statement_evaluator.rb +3036 -278
  265. data/lib/rigor/inference/struct_fold_safety.rb +4 -6
  266. data/lib/rigor/inference/synthetic_method_index.rb +23 -0
  267. data/lib/rigor/inference/synthetic_method_scanner/project_members.rb +130 -0
  268. data/lib/rigor/inference/synthetic_method_scanner.rb +73 -14
  269. data/lib/rigor/inference/toplevel_def_census.rb +59 -0
  270. data/lib/rigor/inference/unknown_store_widening.rb +103 -4
  271. data/lib/rigor/inference/unthreaded_rebinds.rb +2 -3
  272. data/lib/rigor/inference/void_tail_summary.rb +2 -1
  273. data/lib/rigor/language_server/buffer_table.rb +9 -3
  274. data/lib/rigor/language_server/completion_provider.rb +26 -20
  275. data/lib/rigor/language_server/config_warning_announcer.rb +28 -0
  276. data/lib/rigor/language_server/diagnostic_publisher.rb +28 -9
  277. data/lib/rigor/language_server/document_symbol_provider.rb +1 -1
  278. data/lib/rigor/language_server/folding_range_provider.rb +1 -2
  279. data/lib/rigor/language_server/hover_provider.rb +1 -7
  280. data/lib/rigor/language_server/hover_renderer.rb +6 -8
  281. data/lib/rigor/language_server/project_context.rb +98 -4
  282. data/lib/rigor/language_server/publish_batcher.rb +3 -4
  283. data/lib/rigor/language_server/selection_range_provider.rb +2 -4
  284. data/lib/rigor/language_server/server.rb +12 -6
  285. data/lib/rigor/language_server/signature_help_provider.rb +4 -4
  286. data/lib/rigor/lens/plugins.rb +1 -1
  287. data/lib/rigor/mcp/server.rb +82 -3
  288. data/lib/rigor/mcp.rb +1 -1
  289. data/lib/rigor/plugin/access_denied_error.rb +1 -2
  290. data/lib/rigor/plugin/base.rb +26 -11
  291. data/lib/rigor/plugin/bundled_catalog.rb +1 -12
  292. data/lib/rigor/plugin/io_boundary.rb +1 -1
  293. data/lib/rigor/plugin/loader.rb +25 -8
  294. data/lib/rigor/plugin/macro/heredoc_template.rb +7 -8
  295. data/lib/rigor/plugin/macro/trait_registry.rb +6 -9
  296. data/lib/rigor/plugin/manifest.rb +38 -16
  297. data/lib/rigor/plugin/registry.rb +41 -3
  298. data/lib/rigor/plugin/services.rb +2 -3
  299. data/lib/rigor/plugin/source_rbs_synthesis_reporter.rb +11 -0
  300. data/lib/rigor/plugin/trust_policy.rb +2 -2
  301. data/lib/rigor/plugin/type_node_resolver.rb +2 -4
  302. data/lib/rigor/plugin.rb +6 -8
  303. data/lib/rigor/plugin_gap_advisory.rb +5 -1
  304. data/lib/rigor/project_environment.rb +16 -2
  305. data/lib/rigor/protection/analysis_guard.rb +1 -1
  306. data/lib/rigor/protection/discovery_seed.rb +96 -2
  307. data/lib/rigor/protection/mutator.rb +1 -1
  308. data/lib/rigor/rbs_extended/envelope_scanner.rb +4 -6
  309. data/lib/rigor/rbs_extended/hkt_directives.rb +6 -10
  310. data/lib/rigor/rbs_extended/reporter.rb +27 -3
  311. data/lib/rigor/rbs_extended.rb +2 -3
  312. data/lib/rigor/reflection/constant_ancestors.rb +5 -3
  313. data/lib/rigor/rooted_glob.rb +25 -2
  314. data/lib/rigor/run_scoped_slots.rb +38 -0
  315. data/lib/rigor/runtime/jit.rb +1 -1
  316. data/lib/rigor/scope/discovery_index.rb +19 -6
  317. data/lib/rigor/scope/resolution_chain.rb +3 -1
  318. data/lib/rigor/scope.rb +379 -36
  319. data/lib/rigor/sig_gen/classification.rb +4 -0
  320. data/lib/rigor/sig_gen/effect_annotation.rb +3 -3
  321. data/lib/rigor/sig_gen/generator.rb +668 -84
  322. data/lib/rigor/sig_gen/generic_header_scan.rb +189 -0
  323. data/lib/rigor/sig_gen/inline_declarations.rb +2 -2
  324. data/lib/rigor/sig_gen/layout_index.rb +3 -3
  325. data/lib/rigor/sig_gen/method_candidate.rb +23 -4
  326. data/lib/rigor/sig_gen/observation_collector.rb +7 -6
  327. data/lib/rigor/sig_gen/observed_call.rb +1 -1
  328. data/lib/rigor/sig_gen/path_mapper.rb +6 -0
  329. data/lib/rigor/sig_gen/rbs_validity.rb +1 -1
  330. data/lib/rigor/sig_gen/renderer.rb +21 -12
  331. data/lib/rigor/sig_gen/skip_reason_catalog.rb +15 -2
  332. data/lib/rigor/sig_gen/type_elaborator.rb +21 -5
  333. data/lib/rigor/sig_gen/type_name_qualification.rb +69 -0
  334. data/lib/rigor/sig_gen/write_reporter.rb +63 -14
  335. data/lib/rigor/sig_gen/write_result.rb +23 -12
  336. data/lib/rigor/sig_gen/writer.rb +217 -37
  337. data/lib/rigor/type/acceptance_router.rb +2 -2
  338. data/lib/rigor/type/accepts_result.rb +1 -1
  339. data/lib/rigor/type/app.rb +4 -6
  340. data/lib/rigor/type/combinator.rb +13 -16
  341. data/lib/rigor/type/constant.rb +48 -7
  342. data/lib/rigor/type/hash_shape.rb +26 -40
  343. data/lib/rigor/type/struct_instance.rb +3 -2
  344. data/lib/rigor/type/union.rb +1 -1
  345. data/lib/rigor/type_node/identifier.rb +1 -2
  346. data/lib/rigor/type_node/resolver_chain.rb +1 -1
  347. data/lib/rigor/type_node/string_literal.rb +1 -2
  348. data/lib/rigor/type_node/symbol_literal.rb +1 -2
  349. data/lib/rigor/type_node/union.rb +3 -6
  350. data/lib/rigor/value_semantics.rb +1 -10
  351. data/lib/rigor/version.rb +1 -1
  352. data/plugins/rigor-actioncable/lib/rigor/plugin/actioncable/channel_discoverer.rb +2 -2
  353. data/plugins/rigor-actioncable/lib/rigor/plugin/actioncable/channel_index.rb +2 -3
  354. data/plugins/rigor-actioncable/lib/rigor/plugin/actioncable.rb +1 -1
  355. data/plugins/rigor-actionmailer/lib/rigor/plugin/actionmailer/mailer_discoverer.rb +89 -70
  356. data/plugins/rigor-actionmailer/lib/rigor/plugin/actionmailer/mailer_index.rb +4 -2
  357. data/plugins/rigor-actionmailer/lib/rigor/plugin/actionmailer.rb +25 -4
  358. data/plugins/rigor-actionpack/lib/rigor/plugin/actionpack/analyzer.rb +1 -1
  359. data/plugins/rigor-actionpack/lib/rigor/plugin/actionpack/controller_index.rb +1 -5
  360. data/plugins/rigor-actionpack/lib/rigor/plugin/actionpack/controller_scan.rb +0 -1
  361. data/plugins/rigor-actionpack/lib/rigor/plugin/actionpack/erb_compiler.rb +2 -1
  362. data/plugins/rigor-actionpack/lib/rigor/plugin/actionpack/view_assigns.rb +1 -1
  363. data/plugins/rigor-actionpack/lib/rigor/plugin/actionpack.rb +79 -19
  364. data/plugins/rigor-activejob/lib/rigor/plugin/activejob/effects.rb +1 -1
  365. data/plugins/rigor-activejob/lib/rigor/plugin/activejob.rb +6 -3
  366. data/plugins/rigor-activerecord/lib/rigor/plugin/activerecord/association_roots.rb +3 -2
  367. data/plugins/rigor-activerecord/lib/rigor/plugin/activerecord/effects.rb +2 -2
  368. data/plugins/rigor-activerecord/lib/rigor/plugin/activerecord/model_discoverer.rb +21 -31
  369. data/plugins/rigor-activerecord/lib/rigor/plugin/activerecord/model_index.rb +10 -16
  370. data/plugins/rigor-activerecord/lib/rigor/plugin/activerecord/schema_parser.rb +2 -3
  371. data/plugins/rigor-activerecord/lib/rigor/plugin/activerecord/schema_table.rb +0 -1
  372. data/plugins/rigor-activerecord/lib/rigor/plugin/activerecord.rb +5 -4
  373. data/plugins/rigor-activestorage/lib/rigor/plugin/activestorage/attachment_discoverer.rb +3 -4
  374. data/plugins/rigor-activestorage/lib/rigor/plugin/activestorage/attachment_index.rb +1 -1
  375. data/plugins/rigor-activestorage/lib/rigor/plugin/activestorage.rb +7 -12
  376. data/plugins/rigor-activestorage/lib/rigor-activestorage.rb +1 -1
  377. data/plugins/rigor-activesupport-core-ext/lib/rigor/plugin/activesupport_core_ext/effects.rb +1 -1
  378. data/plugins/rigor-activesupport-core-ext/lib/rigor/plugin/activesupport_core_ext/symbolize_keys.rb +102 -0
  379. data/plugins/rigor-activesupport-core-ext/lib/rigor/plugin/activesupport_core_ext.rb +19 -6
  380. data/plugins/rigor-activesupport-core-ext/sig/active_support/core_ext.rbs +26 -13
  381. data/plugins/rigor-alba/lib/rigor/plugin/alba/resource_index.rb +3 -3
  382. data/plugins/rigor-devise/lib/rigor/plugin/devise.rb +5 -3
  383. data/plugins/rigor-dry-schema/lib/rigor/plugin/dry_schema/schema_scanner.rb +1 -3
  384. data/plugins/rigor-dry-struct/lib/rigor/plugin/dry_struct.rb +6 -6
  385. data/plugins/rigor-dry-types/lib/rigor/plugin/dry_types/alias_scanner.rb +5 -6
  386. data/plugins/rigor-dry-types/lib/rigor/plugin/dry_types.rb +7 -6
  387. data/plugins/rigor-dry-validation/lib/rigor/plugin/dry_validation/params_shape.rb +2 -3
  388. data/plugins/rigor-dry-validation/lib/rigor/plugin/dry_validation.rb +5 -8
  389. data/plugins/rigor-ethon/lib/rigor/plugin/ethon.rb +0 -1
  390. data/plugins/rigor-factorybot/lib/rigor/plugin/factorybot/factory_discoverer.rb +1 -1
  391. data/plugins/rigor-factorybot/lib/rigor/plugin/factorybot.rb +10 -18
  392. data/plugins/rigor-ffi/lib/rigor/plugin/ffi/analyzer.rb +0 -1
  393. data/plugins/rigor-ffi/lib/rigor/plugin/ffi/discoverer.rb +0 -2
  394. data/plugins/rigor-ffi/lib/rigor/plugin/ffi.rb +4 -5
  395. data/plugins/rigor-grape/lib/rigor/plugin/grape.rb +0 -2
  396. data/plugins/rigor-graphql/lib/rigor/plugin/graphql/type_scanner.rb +6 -7
  397. data/plugins/rigor-hanami/lib/rigor/plugin/hanami/action_checker.rb +2 -4
  398. data/plugins/rigor-hanami/lib/rigor/plugin/hanami.rb +2 -5
  399. data/plugins/rigor-mangrove/lib/rigor/plugin/mangrove.rb +2 -2
  400. data/plugins/rigor-minitest/lib/rigor/plugin/minitest/assertion_analyzer.rb +6 -6
  401. data/plugins/rigor-pundit/lib/rigor/plugin/pundit/policy_discoverer.rb +2 -1
  402. data/plugins/rigor-rails-i18n/lib/rigor/plugin/rails_i18n/analyzer.rb +3 -8
  403. data/plugins/rigor-rails-i18n/lib/rigor/plugin/rails_i18n/locale_index.rb +2 -3
  404. data/plugins/rigor-rails-i18n/lib/rigor/plugin/rails_i18n/locale_loader.rb +5 -8
  405. data/plugins/rigor-rails-routes/lib/rigor/plugin/rails_routes/analyzer.rb +1 -3
  406. data/plugins/rigor-rails-routes/lib/rigor/plugin/rails_routes/devise_routes.rb +2 -3
  407. data/plugins/rigor-rails-routes/lib/rigor/plugin/rails_routes/helper_discoverer.rb +1 -1
  408. data/plugins/rigor-rails-routes/lib/rigor/plugin/rails_routes/routes_parser.rb +4 -11
  409. data/plugins/rigor-rails-routes/lib/rigor/plugin/rails_routes.rb +1 -1
  410. data/plugins/rigor-rbs-inline/lib/rigor/plugin/rbs_inline.rb +2 -1
  411. data/plugins/rigor-rspec/lib/rigor/plugin/rspec/matcher_analyzer.rb +102 -11
  412. data/plugins/rigor-rspec/lib/rigor/plugin/rspec.rb +2 -2
  413. data/plugins/rigor-rspec-rails/lib/rigor/plugin/rspec_rails.rb +3 -4
  414. data/plugins/rigor-shoulda-matchers/lib/rigor/plugin/shoulda_matchers/analyzer.rb +6 -8
  415. data/plugins/rigor-sidekiq/lib/rigor/plugin/sidekiq.rb +5 -2
  416. data/plugins/rigor-sorbet/lib/rigor/plugin/sorbet/absurd_recognizer.rb +4 -5
  417. data/plugins/rigor-sorbet/lib/rigor/plugin/sorbet/assertion_recognizer.rb +6 -7
  418. data/plugins/rigor-sorbet/lib/rigor/plugin/sorbet/catalog.rb +1 -1
  419. data/plugins/rigor-sorbet/lib/rigor/plugin/sorbet/sig_parser.rb +2 -2
  420. data/plugins/rigor-sorbet/lib/rigor/plugin/sorbet.rb +17 -21
  421. data/plugins/rigor-statesman/lib/rigor/plugin/statesman.rb +2 -3
  422. data/plugins/rigor-typelizer/lib/rigor/plugin/typelizer/serializer_discoverer.rb +3 -2
  423. data/plugins/rigor-typelizer/lib/rigor/plugin/typelizer/serializer_index.rb +4 -4
  424. data/plugins/rigor-typelizer/lib/rigor/plugin/typelizer.rb +1 -1
  425. data/sig/rigor/analysis/baseline.rbs +0 -2
  426. data/sig/rigor/analysis/fact_store.rbs +1 -0
  427. data/sig/rigor/analysis/reachability/scan_cache.rbs +1 -1
  428. data/sig/rigor/cli/diff_command.rbs +1 -1
  429. data/sig/rigor/cli/explain_command.rbs +1 -1
  430. data/sig/rigor/effects/file_collection.rbs +5 -6
  431. data/sig/rigor/effects/registry.rbs +8 -6
  432. data/sig/rigor/effects/summary.rbs +6 -5
  433. data/sig/rigor/environment.rbs +5 -3
  434. data/sig/rigor/inference/optimistic_origin.rbs +11 -0
  435. data/sig/rigor/inference.rbs +10 -1
  436. data/sig/rigor/plugin/additional_initializer.rbs +0 -5
  437. data/sig/rigor/plugin/base.rbs +1 -0
  438. data/sig/rigor/plugin/effect_ancestry.rbs +6 -4
  439. data/sig/rigor/plugin/effect_attribution.rbs +25 -10
  440. data/sig/rigor/plugin/effect_edge.rbs +12 -5
  441. data/sig/rigor/plugin/effect_entry_points.rbs +8 -3
  442. data/sig/rigor/plugin/io_boundary.rbs +6 -5
  443. data/sig/rigor/plugin/manifest.rbs +16 -18
  444. data/sig/rigor/plugin/protocol_contract.rbs +6 -9
  445. data/sig/rigor/plugin/registry.rbs +1 -1
  446. data/sig/rigor/scope.rbs +51 -50
  447. data/sig/rigor/type.rbs +0 -6
  448. data/skills/rigor-plugin-author/SKILL.md +4 -4
  449. data/skills/rigor-plugin-author/references/02-walker-and-types.md +5 -5
  450. data/skills/rigor-plugin-review/SKILL.md +3 -3
  451. data/skills/rigor-project-init/references/03-baseline-and-bugs.md +12 -1
  452. metadata +55 -3
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rigortype
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.5
4
+ version: 0.4.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rigor contributors
8
8
  bindir: exe
9
9
  cert_chain: []
10
- date: 1980-01-02 00:00:00.000000000 Z
10
+ date: 1980-01-01 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: language_server-protocol
@@ -457,6 +457,8 @@ files:
457
457
  - lib/rigor/analysis/check_rules/main_pass_collector.rb
458
458
  - lib/rigor/analysis/check_rules/published_constant_guard.rb
459
459
  - lib/rigor/analysis/check_rules/rbs_receiver_surface.rb
460
+ - lib/rigor/analysis/check_rules/rebinding_block_callees.rb
461
+ - lib/rigor/analysis/check_rules/rebinding_block_callees/dispatch.rb
460
462
  - lib/rigor/analysis/check_rules/return_in_ensure_collector.rb
461
463
  - lib/rigor/analysis/check_rules/ruby_deprecations.rb
462
464
  - lib/rigor/analysis/check_rules/rule_ids.rb
@@ -477,6 +479,7 @@ files:
477
479
  - lib/rigor/analysis/dependency_source_inference/return_type_heuristic.rb
478
480
  - lib/rigor/analysis/dependency_source_inference/walker.rb
479
481
  - lib/rigor/analysis/diagnostic.rb
482
+ - lib/rigor/analysis/edit_replay.rb
480
483
  - lib/rigor/analysis/effects_cache_probe.rb
481
484
  - lib/rigor/analysis/erb_template_detector.rb
482
485
  - lib/rigor/analysis/fact_store.rb
@@ -493,10 +496,13 @@ files:
493
496
  - lib/rigor/analysis/reachability/scan.rb
494
497
  - lib/rigor/analysis/reachability/scan_cache.rb
495
498
  - lib/rigor/analysis/reachability/signature_scan.rb
499
+ - lib/rigor/analysis/require_relative_closure.rb
496
500
  - lib/rigor/analysis/result.rb
497
501
  - lib/rigor/analysis/rule_catalog.rb
498
502
  - lib/rigor/analysis/run_cache_key.rb
499
503
  - lib/rigor/analysis/run_cache_probe.rb
504
+ - lib/rigor/analysis/run_disclosure_credit.rb
505
+ - lib/rigor/analysis/run_disclosure_ledger.rb
500
506
  - lib/rigor/analysis/run_stats.rb
501
507
  - lib/rigor/analysis/runner.rb
502
508
  - lib/rigor/analysis/runner/buffer_pool_dispatcher.rb
@@ -507,7 +513,10 @@ files:
507
513
  - lib/rigor/analysis/runner/envelope_messages.rb
508
514
  - lib/rigor/analysis/runner/pool_coordinator.rb
509
515
  - lib/rigor/analysis/runner/project_pre_passes.rb
516
+ - lib/rigor/analysis/runner/run_level_facts.rb
510
517
  - lib/rigor/analysis/runner/run_snapshots.rb
518
+ - lib/rigor/analysis/runner/scan_environment.rb
519
+ - lib/rigor/analysis/runner/worker_payload.rb
511
520
  - lib/rigor/analysis/self_call_resolution_recorder.rb
512
521
  - lib/rigor/analysis/severity_stamp.rb
513
522
  - lib/rigor/analysis/shadow_harness.rb
@@ -544,6 +553,7 @@ files:
544
553
  - lib/rigor/cli.rb
545
554
  - lib/rigor/cli/annotate_command.rb
546
555
  - lib/rigor/cli/baseline_command.rb
556
+ - lib/rigor/cli/catalogue.rb
547
557
  - lib/rigor/cli/check_command.rb
548
558
  - lib/rigor/cli/check_invocation.rb
549
559
  - lib/rigor/cli/check_runner_factory.rb
@@ -567,6 +577,7 @@ files:
567
577
  - lib/rigor/cli/explain_command.rb
568
578
  - lib/rigor/cli/fused_protection_renderer.rb
569
579
  - lib/rigor/cli/fused_protection_report.rb
580
+ - lib/rigor/cli/json_document.rb
570
581
  - lib/rigor/cli/lens_command.rb
571
582
  - lib/rigor/cli/lsp_command.rb
572
583
  - lib/rigor/cli/mcp_command.rb
@@ -593,6 +604,7 @@ files:
593
604
  - lib/rigor/cli/triage_command.rb
594
605
  - lib/rigor/cli/triage_renderer.rb
595
606
  - lib/rigor/cli/type_of_command.rb
607
+ - lib/rigor/cli/type_of_project_scope.rb
596
608
  - lib/rigor/cli/type_of_renderer.rb
597
609
  - lib/rigor/cli/type_of_template_probe.rb
598
610
  - lib/rigor/cli/type_scan_command.rb
@@ -652,7 +664,9 @@ files:
652
664
  - lib/rigor/environment/bundle_sig_discovery.rb
653
665
  - lib/rigor/environment/class_registry.rb
654
666
  - lib/rigor/environment/constant_type_cache_holder.rb
667
+ - lib/rigor/environment/core_root.rb
655
668
  - lib/rigor/environment/default_libraries.rb
669
+ - lib/rigor/environment/deferred_signature_plan.rb
656
670
  - lib/rigor/environment/failure_slot.rb
657
671
  - lib/rigor/environment/gated_signature_guard.rb
658
672
  - lib/rigor/environment/gated_signature_plan.rb
@@ -662,6 +676,7 @@ files:
662
676
  - lib/rigor/environment/member_consistency.rb
663
677
  - lib/rigor/environment/member_consistency/comparator.rb
664
678
  - lib/rigor/environment/missing_gem_constant_index.rb
679
+ - lib/rigor/environment/project_path_gems.rb
665
680
  - lib/rigor/environment/rbs_collection_discovery.rb
666
681
  - lib/rigor/environment/rbs_coverage_report.rb
667
682
  - lib/rigor/environment/rbs_hierarchy.rb
@@ -669,7 +684,9 @@ files:
669
684
  - lib/rigor/environment/reflection.rb
670
685
  - lib/rigor/environment/reporters.rb
671
686
  - lib/rigor/environment/required_features.rb
687
+ - lib/rigor/environment/ruby_library_roots.rb
672
688
  - lib/rigor/environment/source_rbs_synthesis.rb
689
+ - lib/rigor/environment/vendored_signature_plan.rb
673
690
  - lib/rigor/flow_contribution.rb
674
691
  - lib/rigor/flow_contribution/conflict.rb
675
692
  - lib/rigor/flow_contribution/element.rb
@@ -683,6 +700,7 @@ files:
683
700
  - lib/rigor/inference/block_call_timing.rb
684
701
  - lib/rigor/inference/block_parameter_binder.rb
685
702
  - lib/rigor/inference/block_repetition.rb
703
+ - lib/rigor/inference/block_run_count.rb
686
704
  - lib/rigor/inference/body_fixpoint.rb
687
705
  - lib/rigor/inference/budget_trace.rb
688
706
  - lib/rigor/inference/builtins/array_catalog.rb
@@ -706,9 +724,12 @@ files:
706
724
  - lib/rigor/inference/builtins/string_catalog.rb
707
725
  - lib/rigor/inference/builtins/struct_catalog.rb
708
726
  - lib/rigor/inference/builtins/time_catalog.rb
727
+ - lib/rigor/inference/callee_mutation_chain.rb
728
+ - lib/rigor/inference/callee_write_census.rb
709
729
  - lib/rigor/inference/captured_locals.rb
710
730
  - lib/rigor/inference/clause_widening.rb
711
731
  - lib/rigor/inference/closure_escape_analyzer.rb
732
+ - lib/rigor/inference/construction_escape.rb
712
733
  - lib/rigor/inference/content_join.rb
713
734
  - lib/rigor/inference/coverage_scanner.rb
714
735
  - lib/rigor/inference/declaration_walk.rb
@@ -716,11 +737,14 @@ files:
716
737
  - lib/rigor/inference/declaration_walk/errors.rb
717
738
  - lib/rigor/inference/declaration_walk/shadow.rb
718
739
  - lib/rigor/inference/declaration_walk/traversal.rb
740
+ - lib/rigor/inference/deep_erasure.rb
719
741
  - lib/rigor/inference/def_handle.rb
720
742
  - lib/rigor/inference/def_node_resolver.rb
721
743
  - lib/rigor/inference/def_return_typer.rb
722
744
  - lib/rigor/inference/define_method_block_self.rb
723
745
  - lib/rigor/inference/definer_resolution.rb
746
+ - lib/rigor/inference/definers_index.rb
747
+ - lib/rigor/inference/direct_ivar_writes.rb
724
748
  - lib/rigor/inference/dynamic_origin.rb
725
749
  - lib/rigor/inference/element_read_widening.rb
726
750
  - lib/rigor/inference/error_info.rb
@@ -732,6 +756,7 @@ files:
732
756
  - lib/rigor/inference/fork_map.rb
733
757
  - lib/rigor/inference/fresh_frame_blocks.rb
734
758
  - lib/rigor/inference/global_write_census.rb
759
+ - lib/rigor/inference/global_writer_reach.rb
735
760
  - lib/rigor/inference/guard_rebinding.rb
736
761
  - lib/rigor/inference/hash_lookup_mutation.rb
737
762
  - lib/rigor/inference/hkt_body.rb
@@ -747,6 +772,7 @@ files:
747
772
  - lib/rigor/inference/index_write_widening.rb
748
773
  - lib/rigor/inference/indexed_narrowing.rb
749
774
  - lib/rigor/inference/intervening_ivar_reset.rb
775
+ - lib/rigor/inference/ivar_writer_census.rb
750
776
  - lib/rigor/inference/jump_targets.rb
751
777
  - lib/rigor/inference/key_presence_guard.rb
752
778
  - lib/rigor/inference/key_presence_guard/scan.rb
@@ -754,14 +780,18 @@ files:
754
780
  - lib/rigor/inference/last_line/implicit_self.rb
755
781
  - lib/rigor/inference/last_line/self_evidence.rb
756
782
  - lib/rigor/inference/last_status.rb
783
+ - lib/rigor/inference/loop_value_record.rb
757
784
  - lib/rigor/inference/macro_block_self_type.rb
758
785
  - lib/rigor/inference/match_rebinding.rb
759
786
  - lib/rigor/inference/match_rebinding/calls.rb
760
787
  - lib/rigor/inference/match_rebinding/frame.rb
761
788
  - lib/rigor/inference/match_rebinding/operands.rb
762
789
  - lib/rigor/inference/match_rebinding/self_calls.rb
790
+ - lib/rigor/inference/match_rebinding/yielding_match.rb
791
+ - lib/rigor/inference/memo_audit.rb
763
792
  - lib/rigor/inference/method_dispatcher.rb
764
793
  - lib/rigor/inference/method_dispatcher/alias_strict_nominals.rb
794
+ - lib/rigor/inference/method_dispatcher/argument_distribution.rb
765
795
  - lib/rigor/inference/method_dispatcher/argument_nodes.rb
766
796
  - lib/rigor/inference/method_dispatcher/arithmetic_sequence_elements.rb
767
797
  - lib/rigor/inference/method_dispatcher/array_to_h_folding.rb
@@ -769,6 +799,7 @@ files:
769
799
  - lib/rigor/inference/method_dispatcher/call_context.rb
770
800
  - lib/rigor/inference/method_dispatcher/cgi_folding.rb
771
801
  - lib/rigor/inference/method_dispatcher/constant_folding.rb
802
+ - lib/rigor/inference/method_dispatcher/contested_overloads.rb
772
803
  - lib/rigor/inference/method_dispatcher/data_folding.rb
773
804
  - lib/rigor/inference/method_dispatcher/facet_distribution.rb
774
805
  - lib/rigor/inference/method_dispatcher/file_folding.rb
@@ -784,6 +815,7 @@ files:
784
815
  - lib/rigor/inference/method_dispatcher/math_folding.rb
785
816
  - lib/rigor/inference/method_dispatcher/member_shape_projection.rb
786
817
  - lib/rigor/inference/method_dispatcher/method_folding.rb
818
+ - lib/rigor/inference/method_dispatcher/no_match_fallback.rb
787
819
  - lib/rigor/inference/method_dispatcher/optional_count.rb
788
820
  - lib/rigor/inference/method_dispatcher/overload_selector.rb
789
821
  - lib/rigor/inference/method_dispatcher/process_folding.rb
@@ -808,6 +840,7 @@ files:
808
840
  - lib/rigor/inference/method_dispatcher/uri_folding.rb
809
841
  - lib/rigor/inference/method_parameter_binder.rb
810
842
  - lib/rigor/inference/module_function_state.rb
843
+ - lib/rigor/inference/module_function_state/spellings.rb
811
844
  - lib/rigor/inference/multi_target_binder.rb
812
845
  - lib/rigor/inference/mutation_rejoin.rb
813
846
  - lib/rigor/inference/mutation_widening.rb
@@ -817,6 +850,7 @@ files:
817
850
  - lib/rigor/inference/operand_walk.rb
818
851
  - lib/rigor/inference/optimistic_origin.rb
819
852
  - lib/rigor/inference/origin_lookup.rb
853
+ - lib/rigor/inference/out_buffer_mutation.rb
820
854
  - lib/rigor/inference/parameter_inference_collector.rb
821
855
  - lib/rigor/inference/pre_eval_constants.rb
822
856
  - lib/rigor/inference/precision_scanner.rb
@@ -827,6 +861,7 @@ files:
827
861
  - lib/rigor/inference/project_patched_scanner.rb
828
862
  - lib/rigor/inference/project_patched_visibility.rb
829
863
  - lib/rigor/inference/project_seed_tables.rb
864
+ - lib/rigor/inference/project_yielder.rb
830
865
  - lib/rigor/inference/protection_scanner.rb
831
866
  - lib/rigor/inference/range_constant.rb
832
867
  - lib/rigor/inference/rbs_type_translator.rb
@@ -840,18 +875,28 @@ files:
840
875
  - lib/rigor/inference/refined_dispatch/own_method.rb
841
876
  - lib/rigor/inference/refinement_mutation.rb
842
877
  - lib/rigor/inference/reflective_ivar_write.rb
878
+ - lib/rigor/inference/remover_holder_scan.rb
879
+ - lib/rigor/inference/remover_narrowing.rb
843
880
  - lib/rigor/inference/repeated_or_writes.rb
844
881
  - lib/rigor/inference/return_barrier.rb
845
882
  - lib/rigor/inference/rewrite_mutation.rb
846
883
  - lib/rigor/inference/scope_indexer.rb
847
884
  - lib/rigor/inference/scope_indexer/certainty.rb
848
885
  - lib/rigor/inference/scope_indexer/class_cvars_collector.rb
886
+ - lib/rigor/inference/scope_indexer/constant_ivar_value.rb
887
+ - lib/rigor/inference/scope_indexer/declared_ivar_types.rb
888
+ - lib/rigor/inference/scope_indexer/declared_param_writes.rb
849
889
  - lib/rigor/inference/scope_indexer/def_nestings_collector.rb
890
+ - lib/rigor/inference/scope_indexer/derived_param_value.rb
891
+ - lib/rigor/inference/scope_indexer/empty_seed.rb
892
+ - lib/rigor/inference/scope_indexer/ivar_contributions.rb
850
893
  - lib/rigor/inference/scope_indexer/layered_def_nestings.rb
851
894
  - lib/rigor/inference/scope_indexer/member_layouts_collector.rb
852
895
  - lib/rigor/inference/scope_indexer/mixin_accumulator.rb
853
896
  - lib/rigor/inference/scope_indexer/superclasses_collector.rb
897
+ - lib/rigor/inference/scope_indexer/unseen_ivar_writers.rb
854
898
  - lib/rigor/inference/self_call_ivar_writes.rb
899
+ - lib/rigor/inference/set_mutation.rb
855
900
  - lib/rigor/inference/singleton_external_ahead.rb
856
901
  - lib/rigor/inference/singleton_hook_decline.rb
857
902
  - lib/rigor/inference/singleton_object_constant.rb
@@ -862,6 +907,8 @@ files:
862
907
  - lib/rigor/inference/synthetic_method.rb
863
908
  - lib/rigor/inference/synthetic_method_index.rb
864
909
  - lib/rigor/inference/synthetic_method_scanner.rb
910
+ - lib/rigor/inference/synthetic_method_scanner/project_members.rb
911
+ - lib/rigor/inference/toplevel_def_census.rb
865
912
  - lib/rigor/inference/unknown_store_widening.rb
866
913
  - lib/rigor/inference/unthreaded_rebinds.rb
867
914
  - lib/rigor/inference/untyped_rejoin.rb
@@ -872,6 +919,7 @@ files:
872
919
  - lib/rigor/language_server/buffer_resolution.rb
873
920
  - lib/rigor/language_server/buffer_table.rb
874
921
  - lib/rigor/language_server/completion_provider.rb
922
+ - lib/rigor/language_server/config_warning_announcer.rb
875
923
  - lib/rigor/language_server/debouncer.rb
876
924
  - lib/rigor/language_server/diagnostic_publisher.rb
877
925
  - lib/rigor/language_server/document_symbol_provider.rb
@@ -956,6 +1004,7 @@ files:
956
1004
  - lib/rigor/reflection/constant_ancestors.rb
957
1005
  - lib/rigor/reflection/constant_path.rb
958
1006
  - lib/rigor/rooted_glob.rb
1007
+ - lib/rigor/run_scoped_slots.rb
959
1008
  - lib/rigor/runtime/jit.rb
960
1009
  - lib/rigor/scope.rb
961
1010
  - lib/rigor/scope/discovery_index.rb
@@ -967,6 +1016,7 @@ files:
967
1016
  - lib/rigor/sig_gen/declaration_equivalence.rb
968
1017
  - lib/rigor/sig_gen/effect_annotation.rb
969
1018
  - lib/rigor/sig_gen/generator.rb
1019
+ - lib/rigor/sig_gen/generic_header_scan.rb
970
1020
  - lib/rigor/sig_gen/inline_declarations.rb
971
1021
  - lib/rigor/sig_gen/layout_index.rb
972
1022
  - lib/rigor/sig_gen/meta_class_shape.rb
@@ -979,6 +1029,7 @@ files:
979
1029
  - lib/rigor/sig_gen/skip_reason_catalog.rb
980
1030
  - lib/rigor/sig_gen/superclass_spelling.rb
981
1031
  - lib/rigor/sig_gen/type_elaborator.rb
1032
+ - lib/rigor/sig_gen/type_name_qualification.rb
982
1033
  - lib/rigor/sig_gen/write_reporter.rb
983
1034
  - lib/rigor/sig_gen/write_result.rb
984
1035
  - lib/rigor/sig_gen/writer.rb
@@ -1106,6 +1157,7 @@ files:
1106
1157
  - plugins/rigor-activesupport-core-ext/lib/rigor-activesupport-core-ext.rb
1107
1158
  - plugins/rigor-activesupport-core-ext/lib/rigor/plugin/activesupport_core_ext.rb
1108
1159
  - plugins/rigor-activesupport-core-ext/lib/rigor/plugin/activesupport_core_ext/effects.rb
1160
+ - plugins/rigor-activesupport-core-ext/lib/rigor/plugin/activesupport_core_ext/symbolize_keys.rb
1109
1161
  - plugins/rigor-activesupport-core-ext/sig/active_support/core_ext.rbs
1110
1162
  - plugins/rigor-alba/lib/rigor-alba.rb
1111
1163
  - plugins/rigor-alba/lib/rigor/plugin/alba.rb
@@ -1417,7 +1469,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
1417
1469
  - !ruby/object:Gem::Version
1418
1470
  version: '0'
1419
1471
  requirements: []
1420
- rubygems_version: 4.0.10
1472
+ rubygems_version: 3.7.2
1421
1473
  specification_version: 4
1422
1474
  summary: Inference-first static analysis for Ruby.
1423
1475
  test_files: []