rigortype 0.3.9 → 0.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +5 -4
- data/data/core_overlay/enumerable.rbs +51 -0
- data/data/core_overlay/enumerator.rbs +84 -0
- data/data/core_overlay/hash_rbs3.rbs +41 -0
- data/data/core_overlay/process.rbs +40 -0
- data/data/core_overlay/string_io.rbs +33 -0
- data/data/effects/core.yml +3 -3
- data/data/gem_overlay/activesupport/core_ext.rbs +127 -4
- data/docs/handbook/03-narrowing.md +95 -10
- data/docs/handbook/04-tuples-and-shapes.md +8 -6
- data/docs/handbook/07-rbs-and-extended.md +16 -11
- data/docs/handbook/08-understanding-errors.md +3 -2
- data/docs/handbook/10-sorbet.md +9 -10
- data/docs/handbook/11-sig-gen.md +454 -13
- data/docs/install.md +87 -15
- data/docs/manual/02-cli-reference.md +65 -4
- data/docs/manual/03-configuration.md +12 -0
- data/docs/manual/04-diagnostics.md +4 -0
- data/docs/manual/07-plugins.md +1 -1
- data/docs/manual/08-skills.md +4 -3
- data/docs/manual/10-mcp-server.md +3 -2
- data/docs/manual/12-caching.md +43 -4
- data/docs/manual/14-rails-quickstart.md +19 -11
- data/docs/manual/16-rbs-extended-annotations.md +40 -7
- data/docs/manual/19-effect-labels.md +10 -0
- data/docs/manual/plugins/README.md +7 -0
- data/docs/manual/plugins/rigor-actioncable.md +8 -1
- data/docs/manual/plugins/rigor-actionmailer.md +7 -0
- data/docs/manual/plugins/rigor-actionpack.md +243 -0
- data/docs/manual/plugins/rigor-active-model-serializers.md +153 -0
- data/docs/manual/plugins/rigor-activejob.md +7 -0
- data/docs/manual/plugins/rigor-activerecord.md +110 -4
- data/docs/manual/plugins/rigor-activestorage.md +8 -1
- data/docs/manual/plugins/rigor-activesupport-core-ext.md +11 -5
- data/docs/manual/plugins/rigor-grape.md +106 -0
- data/docs/manual/plugins/rigor-graphql.md +23 -2
- data/docs/manual/plugins/rigor-pundit.md +8 -1
- data/docs/manual/plugins/rigor-rails-i18n.md +10 -5
- data/docs/manual/plugins/rigor-rails-routes.md +7 -0
- data/docs/manual/plugins/rigor-rbs-inline.md +212 -25
- data/docs/manual/plugins/rigor-sidekiq.md +8 -1
- data/docs/manual/plugins/rigor-sorbet.md +21 -5
- data/exe/rigor +19 -4
- data/lib/rigor/analysis/baseline.rb +1 -1
- data/lib/rigor/analysis/check_rules/declaration_sourced_guard.rb +167 -2
- data/lib/rigor/analysis/check_rules/lexical_method_sites.rb +189 -0
- data/lib/rigor/analysis/check_rules/main_pass_collector.rb +5 -3
- data/lib/rigor/analysis/check_rules/rule_ids.rb +20 -5
- data/lib/rigor/analysis/check_rules/rule_walk.rb +2 -1
- data/lib/rigor/analysis/check_rules/source_arity.rb +427 -0
- data/lib/rigor/analysis/check_rules/special_global_setters.rb +146 -0
- data/lib/rigor/analysis/check_rules/unreachable_clause_collector.rb +36 -2
- data/lib/rigor/analysis/check_rules.rb +638 -136
- data/lib/rigor/analysis/dependency_recorder.rb +222 -17
- data/lib/rigor/analysis/fact_store.rb +9 -0
- data/lib/rigor/analysis/incremental.rb +26 -0
- data/lib/rigor/analysis/incremental_run_slot/write_guard.rb +266 -0
- data/lib/rigor/analysis/incremental_run_slot.rb +171 -0
- data/lib/rigor/analysis/incremental_session.rb +309 -53
- data/lib/rigor/analysis/plugin_fact_fingerprint.rb +24 -13
- data/lib/rigor/analysis/project_scan.rb +11 -1
- data/lib/rigor/analysis/reachability/plugin_roots.rb +0 -1
- data/lib/rigor/analysis/reachability/scan_cache.rb +3 -1
- data/lib/rigor/analysis/rule_catalog.rb +127 -0
- data/lib/rigor/analysis/run_cache_key.rb +46 -18
- data/lib/rigor/analysis/run_stats.rb +2 -2
- data/lib/rigor/analysis/runner/diagnostic_aggregator.rb +168 -12
- data/lib/rigor/analysis/runner/effect_envelope_pass.rb +9 -4
- data/lib/rigor/analysis/runner/pool_coordinator.rb +109 -17
- data/lib/rigor/analysis/runner/project_pre_passes.rb +44 -17
- data/lib/rigor/analysis/runner.rb +603 -54
- data/lib/rigor/analysis/shadow_harness.rb +27 -0
- data/lib/rigor/analysis/source_rbs_gate.rb +157 -0
- data/lib/rigor/analysis/template_unit_collector.rb +303 -0
- data/lib/rigor/analysis/template_unit_paths.rb +93 -0
- data/lib/rigor/analysis/template_unit_positions.rb +293 -0
- data/lib/rigor/analysis/template_units.rb +409 -0
- data/lib/rigor/analysis/worker_session.rb +57 -13
- data/lib/rigor/bleeding_edge.rb +0 -2
- data/lib/rigor/builtins/hkt_builtins.rb +1 -0
- data/lib/rigor/builtins/imported_refinements.rb +4 -0
- data/lib/rigor/builtins/regex_refinement.rb +17 -9
- data/lib/rigor/builtins/static_return_refinements.rb +2 -0
- data/lib/rigor/cache/descriptor.rb +45 -1
- data/lib/rigor/cache/engine_source.rb +29 -1
- data/lib/rigor/cache/file_digest.rb +28 -0
- data/lib/rigor/cache/incremental_snapshot.rb +102 -8
- data/lib/rigor/cache/rbs_cache_producer.rb +4 -0
- data/lib/rigor/cache/rbs_descriptor.rb +37 -7
- data/lib/rigor/cache/store.rb +63 -4
- data/lib/rigor/cache/value_digest.rb +325 -0
- data/lib/rigor/ci_detector.rb +1 -0
- data/lib/rigor/cli/check_command.rb +83 -13
- data/lib/rigor/cli/doc_links.rb +1 -1
- data/lib/rigor/cli/docs_command.rb +4 -4
- data/lib/rigor/cli/doctor_command.rb +1 -1
- data/lib/rigor/cli/effects_report.rb +2 -2
- data/lib/rigor/cli/plugin_command.rb +3 -3
- data/lib/rigor/cli/prism_colorizer.rb +0 -1
- data/lib/rigor/cli/sig_gen_command.rb +210 -29
- data/lib/rigor/cli/skill_command.rb +1 -1
- data/lib/rigor/cli/skill_describe.rb +0 -1
- data/lib/rigor/cli/type_of_command.rb +19 -5
- data/lib/rigor/cli/type_of_renderer.rb +20 -9
- data/lib/rigor/cli/type_of_template_probe.rb +189 -0
- data/lib/rigor/cli/unused_command.rb +3 -3
- data/lib/rigor/cli.rb +21 -3
- data/lib/rigor/config_audit.rb +3 -2
- data/lib/rigor/config_path.rb +29 -0
- data/lib/rigor/configuration/severity_profile.rb +24 -3
- data/lib/rigor/configuration.rb +71 -7
- data/lib/rigor/effects/ancestry_recorder.rb +191 -0
- data/lib/rigor/effects/attribution.rb +11 -2
- data/lib/rigor/effects/callee_rule.rb +368 -0
- data/lib/rigor/effects/catalog.rb +7 -4
- data/lib/rigor/effects/collector.rb +11 -5
- data/lib/rigor/effects/config_envelopes.rb +9 -2
- data/lib/rigor/effects/definition_context.rb +179 -0
- data/lib/rigor/effects/effect_table.rb +11 -3
- data/lib/rigor/effects/envelope_check.rb +1 -1
- data/lib/rigor/effects/envelope_index.rb +15 -0
- data/lib/rigor/effects/file_collection.rb +59 -5
- data/lib/rigor/effects/framework_units.rb +1 -1
- data/lib/rigor/effects/identity.rb +16 -0
- data/lib/rigor/effects/local_ownership.rb +38 -12
- data/lib/rigor/effects/method_key.rb +21 -0
- data/lib/rigor/effects/mutation_classifier.rb +23 -12
- data/lib/rigor/effects/plugin_facts.rb +49 -37
- data/lib/rigor/effects/propagator.rb +295 -16
- data/lib/rigor/effects/registry.rb +1 -1
- data/lib/rigor/effects/scanner.rb +121 -72
- data/lib/rigor/effects/signature_sources.rb +1 -1
- data/lib/rigor/effects/snapshot.rb +2 -1
- data/lib/rigor/effects/summary.rb +27 -4
- data/lib/rigor/effects/unit_scan.rb +385 -30
- data/lib/rigor/effects/visibility.rb +101 -0
- data/lib/rigor/environment/bundle_sig_discovery.rb +5 -3
- data/lib/rigor/environment/lockfile_resolver.rb +27 -1
- data/lib/rigor/environment/member_consistency/comparator.rb +708 -0
- data/lib/rigor/environment/member_consistency.rb +298 -0
- data/lib/rigor/environment/rbs_collection_discovery.rb +10 -1
- data/lib/rigor/environment/rbs_loader.rb +400 -134
- data/lib/rigor/environment/source_rbs_synthesis.rb +147 -0
- data/lib/rigor/environment.rb +104 -96
- data/lib/rigor/hashing/xxh3.rb +264 -0
- data/lib/rigor/inference/acceptance.rb +139 -9
- data/lib/rigor/inference/block_auto_splat.rb +216 -0
- data/lib/rigor/inference/block_call_timing.rb +338 -0
- data/lib/rigor/inference/block_parameter_binder.rb +88 -26
- data/lib/rigor/inference/block_repetition.rb +71 -0
- data/lib/rigor/inference/body_fixpoint.rb +2 -1
- data/lib/rigor/inference/budget_trace.rb +2 -1
- data/lib/rigor/inference/builtins/method_catalog.rb +2 -1
- data/lib/rigor/inference/builtins/string_catalog.rb +1 -1
- data/lib/rigor/inference/captured_locals.rb +393 -15
- data/lib/rigor/inference/closure_escape_analyzer.rb +157 -13
- data/lib/rigor/inference/content_join.rb +200 -27
- data/lib/rigor/inference/declaration_walk/context.rb +195 -0
- data/lib/rigor/inference/declaration_walk/errors.rb +18 -0
- data/lib/rigor/inference/declaration_walk/shadow.rb +147 -0
- data/lib/rigor/inference/declaration_walk/traversal.rb +441 -0
- data/lib/rigor/inference/declaration_walk.rb +7 -0
- data/lib/rigor/inference/def_node_resolver.rb +3 -2
- data/lib/rigor/inference/def_return_typer.rb +11 -7
- data/lib/rigor/inference/define_method_block_self.rb +64 -0
- data/lib/rigor/inference/definer_resolution.rb +266 -0
- data/lib/rigor/inference/element_read_widening.rb +22 -10
- data/lib/rigor/inference/error_info.rb +196 -0
- data/lib/rigor/inference/expression_typer.rb +1665 -538
- data/lib/rigor/inference/external_ancestor_resolution.rb +264 -0
- data/lib/rigor/inference/fresh_frame_blocks.rb +127 -0
- data/lib/rigor/inference/global_write_census.rb +239 -0
- data/lib/rigor/inference/guard_rebinding.rb +488 -0
- data/lib/rigor/inference/hash_lookup_mutation.rb +88 -0
- data/lib/rigor/inference/index_write_widening.rb +16 -3
- data/lib/rigor/inference/indexed_narrowing.rb +61 -9
- data/lib/rigor/inference/jump_targets.rb +82 -0
- data/lib/rigor/inference/last_line/implicit_self.rb +210 -0
- data/lib/rigor/inference/last_line/self_evidence.rb +329 -0
- data/lib/rigor/inference/last_line.rb +340 -0
- data/lib/rigor/inference/last_status.rb +144 -0
- data/lib/rigor/inference/macro_block_self_type.rb +179 -17
- data/lib/rigor/inference/match_rebinding/calls.rb +281 -0
- data/lib/rigor/inference/match_rebinding/frame.rb +148 -0
- data/lib/rigor/inference/match_rebinding/operands.rb +236 -0
- data/lib/rigor/inference/match_rebinding/self_calls.rb +83 -0
- data/lib/rigor/inference/match_rebinding.rb +392 -0
- data/lib/rigor/inference/method_dispatcher/alias_strict_nominals.rb +36 -0
- data/lib/rigor/inference/method_dispatcher/block_folding.rb +85 -24
- data/lib/rigor/inference/method_dispatcher/facet_distribution.rb +147 -0
- data/lib/rigor/inference/method_dispatcher/hash_transform_keys_folding.rb +191 -0
- data/lib/rigor/inference/method_dispatcher/iterator_dispatch.rb +4 -0
- data/lib/rigor/inference/method_dispatcher/match_data_folding.rb +159 -0
- data/lib/rigor/inference/method_dispatcher/overload_selector.rb +113 -73
- data/lib/rigor/inference/method_dispatcher/process_folding.rb +56 -0
- data/lib/rigor/inference/method_dispatcher/proven_overload.rb +72 -0
- data/lib/rigor/inference/method_dispatcher/rbs_dispatch.rb +901 -38
- data/lib/rigor/inference/method_dispatcher/self_substitute.rb +142 -0
- data/lib/rigor/inference/method_dispatcher/shape_dispatch.rb +128 -53
- data/lib/rigor/inference/method_dispatcher/struct_folding.rb +1 -1
- data/lib/rigor/inference/method_dispatcher.rb +214 -13
- data/lib/rigor/inference/method_parameter_binder.rb +8 -3
- data/lib/rigor/inference/module_function_state.rb +213 -0
- data/lib/rigor/inference/multi_target_binder.rb +345 -52
- data/lib/rigor/inference/mutation_rejoin.rb +4 -1
- data/lib/rigor/inference/mutation_widening.rb +70 -48
- data/lib/rigor/inference/narrowing.rb +674 -124
- data/lib/rigor/inference/operand_effects.rb +167 -0
- data/lib/rigor/inference/operand_walk.rb +88 -0
- data/lib/rigor/inference/optimistic_origin.rb +152 -9
- data/lib/rigor/inference/parameter_inference_collector.rb +13 -11
- data/lib/rigor/inference/project_method_ownership.rb +136 -0
- data/lib/rigor/inference/project_patched_methods.rb +7 -2
- data/lib/rigor/inference/project_patched_scanner.rb +7 -3
- data/lib/rigor/inference/receiver_alias.rb +90 -1
- data/lib/rigor/inference/receiver_blind_block.rb +219 -0
- data/lib/rigor/inference/refinement_mutation.rb +15 -11
- data/lib/rigor/inference/repeated_or_writes.rb +463 -0
- data/lib/rigor/inference/return_barrier.rb +54 -0
- data/lib/rigor/inference/rewrite_mutation.rb +120 -0
- data/lib/rigor/inference/scope_indexer/certainty.rb +176 -0
- data/lib/rigor/inference/scope_indexer/class_cvars_collector.rb +35 -0
- data/lib/rigor/inference/scope_indexer/def_nestings_collector.rb +47 -0
- data/lib/rigor/inference/scope_indexer/layered_def_nestings.rb +36 -0
- data/lib/rigor/inference/scope_indexer/member_layouts_collector.rb +61 -0
- data/lib/rigor/inference/scope_indexer/mixin_accumulator.rb +130 -0
- data/lib/rigor/inference/scope_indexer/superclasses_collector.rb +64 -0
- data/lib/rigor/inference/scope_indexer.rb +5913 -701
- data/lib/rigor/inference/singleton_hook_decline.rb +253 -0
- data/lib/rigor/inference/statement_evaluator.rb +3249 -497
- data/lib/rigor/inference/stored_block_call.rb +54 -0
- data/lib/rigor/inference/string_mutation.rb +44 -7
- data/lib/rigor/inference/unknown_store_widening.rb +200 -0
- data/lib/rigor/inference/unthreaded_rebinds.rb +282 -0
- data/lib/rigor/language_server/debouncer.rb +0 -1
- data/lib/rigor/language_server/diagnostic_publisher.rb +3 -2
- data/lib/rigor/language_server/hover_renderer.rb +3 -3
- data/lib/rigor/language_server/project_context.rb +5 -3
- data/lib/rigor/mcp/server.rb +2 -1
- data/lib/rigor/plugin/base.rb +196 -13
- data/lib/rigor/plugin/box_probe.rb +91 -0
- data/lib/rigor/plugin/bundled_catalog.rb +1 -1
- data/lib/rigor/plugin/effect_attribution.rb +58 -4
- data/lib/rigor/plugin/io_boundary.rb +82 -4
- data/lib/rigor/plugin/isolation.rb +1 -1
- data/lib/rigor/plugin/loader.rb +2 -1
- data/lib/rigor/plugin/macro/block_as_method.rb +45 -6
- data/lib/rigor/plugin/manifest.rb +71 -10
- data/lib/rigor/plugin/registry.rb +35 -1
- data/lib/rigor/plugin/source_rbs_synthesis_reporter.rb +9 -3
- data/lib/rigor/plugin/template_unit.rb +196 -0
- data/lib/rigor/plugin/trust_policy.rb +3 -3
- data/lib/rigor/plugin.rb +1 -0
- data/lib/rigor/protection/discovery_seed.rb +20 -9
- data/lib/rigor/protection/kill_signature.rb +0 -1
- data/lib/rigor/protection/mutation_cache.rb +4 -5
- data/lib/rigor/rbs_extended.rb +27 -0
- data/lib/rigor/reflection/constant_ancestors.rb +146 -0
- data/lib/rigor/reflection/constant_path.rb +41 -13
- data/lib/rigor/reflection.rb +73 -107
- data/lib/rigor/scope/discovery_index.rb +351 -2
- data/lib/rigor/scope/resolution_chain/relevance.rb +165 -0
- data/lib/rigor/scope/resolution_chain.rb +884 -0
- data/lib/rigor/scope.rb +981 -198
- data/lib/rigor/sig_gen/alias_index.rb +289 -0
- data/lib/rigor/sig_gen/classification.rb +22 -5
- data/lib/rigor/sig_gen/declaration_equivalence.rb +127 -0
- data/lib/rigor/sig_gen/effect_annotation.rb +202 -0
- data/lib/rigor/sig_gen/generator.rb +580 -47
- data/lib/rigor/sig_gen/inline_declarations.rb +184 -0
- data/lib/rigor/sig_gen/method_candidate.rb +47 -3
- data/lib/rigor/sig_gen/observation_collector.rb +1 -1
- data/lib/rigor/sig_gen/renderer.rb +124 -9
- data/lib/rigor/sig_gen/skip_reason_catalog.rb +44 -1
- data/lib/rigor/sig_gen/write_result.rb +19 -3
- data/lib/rigor/sig_gen/writer.rb +166 -35
- data/lib/rigor/sig_gen.rb +3 -0
- data/lib/rigor/signature_path_audit.rb +1 -1
- data/lib/rigor/source/node_walker.rb +0 -3
- data/lib/rigor/source/parameter_envelope.rb +72 -0
- data/lib/rigor/source.rb +1 -0
- data/lib/rigor/type/combinator.rb +112 -12
- data/lib/rigor/type/difference.rb +1 -0
- data/lib/rigor/type/hash_shape.rb +1 -1
- data/lib/rigor/type/refined.rb +1 -0
- data/lib/rigor/version.rb +1 -1
- data/lib/rigor.rb +1 -0
- data/plugins/rigor-actioncable/lib/rigor/plugin/actioncable/effects.rb +1 -0
- data/plugins/rigor-actioncable/lib/rigor/plugin/actioncable.rb +9 -5
- data/plugins/rigor-actionmailer/lib/rigor/plugin/actionmailer.rb +13 -4
- data/plugins/rigor-actionpack/lib/rigor/plugin/actionpack/analyzer.rb +0 -1
- data/plugins/rigor-actionpack/lib/rigor/plugin/actionpack/controller_scan.rb +96 -0
- data/plugins/rigor-actionpack/lib/rigor/plugin/actionpack/effects.rb +65 -8
- data/plugins/rigor-actionpack/lib/rigor/plugin/actionpack/erb_compiler.rb +270 -0
- data/plugins/rigor-actionpack/lib/rigor/plugin/actionpack/render_locals.rb +402 -0
- data/plugins/rigor-actionpack/lib/rigor/plugin/actionpack/view_assigns.rb +370 -0
- data/plugins/rigor-actionpack/lib/rigor/plugin/actionpack/view_units.rb +132 -0
- data/plugins/rigor-actionpack/lib/rigor/plugin/actionpack.rb +239 -4
- data/plugins/rigor-actionpack/sig/action_view.rbs +43 -0
- data/plugins/rigor-active-model-serializers/lib/rigor/plugin/active_model_serializers/serializer_discoverer.rb +220 -0
- data/plugins/rigor-active-model-serializers/lib/rigor/plugin/active_model_serializers/serializer_index.rb +56 -0
- data/plugins/rigor-active-model-serializers/lib/rigor/plugin/active_model_serializers.rb +263 -0
- data/plugins/rigor-active-model-serializers/lib/rigor-active-model-serializers.rb +7 -0
- data/plugins/rigor-active-model-serializers/sig/active_model_serializers.rbs +45 -0
- data/plugins/rigor-activejob/lib/rigor/plugin/activejob/effects.rb +1 -0
- data/plugins/rigor-activejob/lib/rigor/plugin/activejob.rb +9 -5
- data/plugins/rigor-activerecord/lib/rigor/plugin/activerecord/analyzer.rb +35 -3
- data/plugins/rigor-activerecord/lib/rigor/plugin/activerecord/effects.rb +72 -12
- data/plugins/rigor-activerecord/lib/rigor/plugin/activerecord/model_discoverer.rb +380 -3
- data/plugins/rigor-activerecord/lib/rigor/plugin/activerecord/model_index.rb +14 -6
- data/plugins/rigor-activerecord/lib/rigor/plugin/activerecord.rb +281 -35
- data/plugins/rigor-activerecord/sig/active_record/relation.rbs +206 -31
- data/plugins/rigor-activestorage/lib/rigor/plugin/activestorage.rb +25 -14
- data/plugins/rigor-activesupport-core-ext/lib/rigor/plugin/activesupport_core_ext/effects.rb +9 -2
- data/plugins/rigor-activesupport-core-ext/sig/active_support/core_ext.rbs +171 -5
- data/plugins/rigor-dry-monads/lib/rigor/plugin/dry_monads.rb +2 -0
- data/plugins/rigor-ethon/lib/rigor/plugin/ethon.rb +1 -0
- data/plugins/rigor-ffi/lib/rigor/plugin/ffi/types.rb +1 -1
- data/plugins/rigor-ffi/lib/rigor/plugin/ffi.rb +10 -0
- data/plugins/rigor-grape/lib/rigor/plugin/grape.rb +141 -0
- data/plugins/rigor-grape/lib/rigor-grape.rb +6 -0
- data/plugins/rigor-grape/sig/grape.rbs +263 -0
- data/plugins/rigor-graphql/lib/rigor/plugin/graphql.rb +72 -2
- data/plugins/rigor-graphql/sig/graphql.rbs +485 -0
- data/plugins/rigor-minitest/lib/rigor/plugin/minitest/assertion_analyzer.rb +2 -0
- data/plugins/rigor-pundit/lib/rigor/plugin/pundit.rb +11 -7
- data/plugins/rigor-rails-i18n/lib/rigor/plugin/rails_i18n.rb +35 -37
- data/plugins/rigor-rails-routes/lib/rigor/plugin/rails_routes/analyzer.rb +0 -1
- data/plugins/rigor-rails-routes/lib/rigor/plugin/rails_routes/devise_routes.rb +2 -0
- data/plugins/rigor-rails-routes/lib/rigor/plugin/rails_routes/doorkeeper_routes.rb +1 -0
- data/plugins/rigor-rails-routes/lib/rigor/plugin/rails_routes.rb +9 -17
- data/plugins/rigor-rbs-inline/lib/rigor/plugin/rbs_inline/same_line_annotations.rb +149 -0
- data/plugins/rigor-rbs-inline/lib/rigor/plugin/rbs_inline.rb +217 -36
- data/plugins/rigor-sidekiq/lib/rigor/plugin/sidekiq/schedule_scan.rb +1 -0
- data/plugins/rigor-sidekiq/lib/rigor/plugin/sidekiq.rb +9 -5
- data/plugins/rigor-sorbet/lib/rigor/plugin/sorbet/sigil_detector.rb +0 -1
- data/plugins/rigor-sorbet/lib/rigor/plugin/sorbet.rb +46 -1
- data/plugins/rigor-sorbet/sig/sorbet.rbs +277 -0
- data/sig/rigor/analysis/baseline.rbs +69 -7
- data/sig/rigor/analysis/fact_store.rbs +1 -1
- data/sig/rigor/analysis/project_scan.rbs +74 -0
- data/sig/rigor/effects/config_envelopes.rbs +100 -0
- data/sig/rigor/effects/effect_table.rbs +60 -0
- data/sig/rigor/effects/envelope.rbs +97 -0
- data/sig/rigor/effects/envelope_index.rbs +33 -0
- data/sig/rigor/effects/file_collection.rbs +81 -0
- data/sig/rigor/effects/label.rbs +26 -0
- data/sig/rigor/effects/label_set.rbs +46 -0
- data/sig/rigor/effects/method_key.rbs +24 -0
- data/sig/rigor/effects/origin.rbs +50 -0
- data/sig/rigor/effects/plugin_facts.rbs +141 -0
- data/sig/rigor/effects/registry.rbs +68 -0
- data/sig/rigor/effects/summary.rbs +50 -0
- data/sig/rigor/effects/taint_cause.rbs +12 -0
- data/sig/rigor/environment.rbs +14 -10
- data/sig/rigor/inference/optimistic_origin.rbs +10 -0
- data/sig/rigor/inference.rbs +6 -4
- data/sig/rigor/plugin/additional_initializer.rbs +36 -0
- data/sig/rigor/plugin/base.rbs +30 -7
- data/sig/rigor/plugin/effect_ancestry.rbs +27 -0
- data/sig/rigor/plugin/effect_attribution.rbs +66 -0
- data/sig/rigor/plugin/effect_edge.rbs +33 -0
- data/sig/rigor/plugin/effect_entry_points.rbs +25 -0
- data/sig/rigor/plugin/io_boundary.rbs +2 -1
- data/sig/rigor/plugin/loader.rbs +3 -3
- data/sig/rigor/plugin/manifest.rbs +50 -11
- data/sig/rigor/plugin/protocol_contract.rbs +68 -0
- data/sig/rigor/plugin/registry.rbs +62 -1
- data/sig/rigor/plugin.rbs +1 -1
- data/sig/rigor/rbs_extended.rbs +1 -1
- data/sig/rigor/reflection.rbs +7 -6
- data/sig/rigor/scope.rbs +177 -20
- data/sig/rigor/sig_gen/skip_reason_catalog.rbs +14 -7
- data/sig/rigor/source.rbs +4 -4
- data/sig/rigor/testing.rbs +10 -4
- data/sig/rigor/type.rbs +6 -0
- data/sig/rigor.rbs +38 -20
- data/skills/rigor-ask/SKILL.md +8 -5
- data/skills/rigor-baseline-reduce/SKILL.md +4 -6
- data/skills/rigor-ci-setup/SKILL.md +17 -21
- data/skills/rigor-doctor/SKILL.md +24 -22
- data/skills/rigor-doctor/references/01-checks.md +97 -33
- data/skills/rigor-editor-setup/SKILL.md +6 -4
- data/skills/rigor-mcp-setup/SKILL.md +5 -4
- data/skills/rigor-monkeypatch-resolve/SKILL.md +5 -3
- data/skills/rigor-next-steps/SKILL.md +4 -2
- data/skills/rigor-plugin-author/SKILL.md +19 -23
- data/skills/rigor-plugin-author/references/01-plan-and-scaffold.md +9 -8
- data/skills/rigor-plugin-author/references/02-walker-and-types.md +12 -25
- data/skills/rigor-plugin-author/references/03-test-and-ship.md +6 -8
- data/skills/rigor-plugin-review/SKILL.md +6 -4
- data/skills/rigor-plugin-review/references/01-best-practices-checklist.md +2 -1
- data/skills/rigor-plugin-tune/SKILL.md +4 -2
- data/skills/rigor-project-init/SKILL.md +46 -18
- data/skills/rigor-project-init/references/01-detect.md +13 -9
- data/skills/rigor-project-init/references/02-configure.md +40 -10
- data/skills/rigor-project-init/references/03-baseline-and-bugs.md +14 -14
- data/skills/rigor-project-init/references/04-sig-uplift.md +27 -14
- data/skills/rigor-protection-uplift/SKILL.md +4 -6
- data/skills/rigor-rbs-setup/SKILL.md +4 -2
- data/skills/rigor-type-oracle/SKILL.md +4 -6
- data/skills/rigor-type-oracle/references/01-oracle-commands.md +12 -8
- data/skills/rigor-type-oracle/references/03-gap-protocol.md +0 -3
- data/skills/rigor-unused-adjudicate/SKILL.md +4 -2
- data/skills/rigor-upgrade/SKILL.md +13 -8
- metadata +132 -1
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: rigor-rbs-setup
|
|
3
|
-
description:
|
|
4
|
-
Install community RBS for
|
|
3
|
+
description: >-
|
|
4
|
+
Install community RBS for a project's gems so Rigor can type dependencies that currently become
|
|
5
|
+
`Dynamic`. Use when `rbs collection` is missing or untyped gems limit coverage; not for first-time
|
|
6
|
+
Rigor setup or a gem with no community RBS entry.
|
|
5
7
|
license: MPL-2.0
|
|
6
8
|
metadata:
|
|
7
9
|
version: 0.1.0
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: rigor-type-oracle
|
|
3
|
-
description:
|
|
4
|
-
|
|
3
|
+
description: >-
|
|
4
|
+
Obtain a Ruby type from Rigor before writing or asserting it, using `type-of`, `annotate`, or `sig-gen`
|
|
5
|
+
as appropriate. Use when adding RBS, inline annotations, Sorbet/YARD types, type-shaped docs, or
|
|
6
|
+
type-justified guards; not for Rigor setup or baseline reduction.
|
|
5
7
|
license: MPL-2.0
|
|
6
8
|
metadata:
|
|
7
9
|
version: 0.1.0
|
|
@@ -59,10 +61,6 @@ scope the moment you are about to write or assert one:
|
|
|
59
61
|
- Being asked "what type is this?", "what does this method return?",
|
|
60
62
|
"add types to this class", "document this file".
|
|
61
63
|
|
|
62
|
-
It applies to **Rigor's own tree** as well: `lib/`, the bundled plugins,
|
|
63
|
-
and the examples are held to the same rule, and a gap found there is
|
|
64
|
-
engine signal worth more than the annotation you would have written.
|
|
65
|
-
|
|
66
64
|
## When NOT to use
|
|
67
65
|
|
|
68
66
|
- **Setting Rigor up on a project that has none** → `rigor-next-steps`
|
|
@@ -101,7 +101,7 @@ rigor sig-gen [paths]
|
|
|
101
101
|
| `--overwrite` | Allow a tighter return to replace user-authored RBS. |
|
|
102
102
|
| `--include-private` | Emit private / protected instance methods too (default: public only). |
|
|
103
103
|
| `--params=untyped\|observed\|observed-strict` | Parameter policy. Default `untyped`. `observed-strict` is reserved and currently a usage error. |
|
|
104
|
-
| `--observe=PATH` | Directory / file to scan for call-site observations. Repeatable. Defaults to `spec/`
|
|
104
|
+
| `--observe=PATH` | Directory / file to scan for call-site observations. Repeatable. Defaults to the configured `test_paths:` (unset: whichever of `spec/` and `test/` exist). |
|
|
105
105
|
| `--new-files` / `--new-methods` / `--tighter-returns` | Emit only that classification. |
|
|
106
106
|
| `--format=text\|json` | Text RBS, or the structured candidate report. |
|
|
107
107
|
| `--config=PATH` | Explicit `.rigor.yml`. |
|
|
@@ -133,8 +133,9 @@ skip is a finding. `--format=json` names each one:
|
|
|
133
133
|
"classification": "skipped", "skip_reason": "sig.skipped.untyped-return" }
|
|
134
134
|
```
|
|
135
135
|
|
|
136
|
-
Classifications
|
|
137
|
-
(nothing to tighten;
|
|
136
|
+
Classifications (the JSON `classification` values): `new_file`,
|
|
137
|
+
`new_method`, `tighter_return`, `equivalent` (nothing to tighten;
|
|
138
|
+
silently dropped), `skipped`. Skip reasons and what
|
|
138
139
|
each one means for you: [`03-gap-protocol.md`](03-gap-protocol.md).
|
|
139
140
|
|
|
140
141
|
### Deriving a parameter type from call sites
|
|
@@ -215,10 +216,11 @@ a family prefix (`call`, `flow`, `assert`, `dump`, `def`) it prints the
|
|
|
215
216
|
rule's firing conditions, the severity per profile, the evidence tier,
|
|
216
217
|
and how to suppress it.
|
|
217
218
|
|
|
218
|
-
**`explain`
|
|
219
|
-
|
|
220
|
-
sig.skipped.untyped-return` answers
|
|
221
|
-
|
|
219
|
+
**`explain` has two catalogues.** A `sig.skipped.*` id is a sig-gen
|
|
220
|
+
*skip reason*, not a diagnostic rule, but `rigor explain
|
|
221
|
+
sig.skipped.untyped-return` answers it from a second catalogue (no
|
|
222
|
+
severity, no profile, nothing to suppress). The table in
|
|
223
|
+
[`03-gap-protocol.md`](03-gap-protocol.md) is the summary.
|
|
222
224
|
|
|
223
225
|
## `rigor check` — the gate, not the oracle
|
|
224
226
|
|
|
@@ -255,7 +257,9 @@ Two shape differences from the CLI worth knowing:
|
|
|
255
257
|
- `rigor_sig_gen` returns the **JSON candidate report**, always — there
|
|
256
258
|
is no `--print` text mode and no `--diff`. Read `rbs` per candidate.
|
|
257
259
|
- `rigor_sig_gen` exposes `params` but **not** `observe`; observation
|
|
258
|
-
|
|
260
|
+
reads the configured `test_paths:` (unset: whichever of `spec/` and
|
|
261
|
+
`test/` exist). To observe anything else, declare it in `test_paths:`
|
|
262
|
+
or use the CLI's `--observe`.
|
|
259
263
|
|
|
260
264
|
`rigor_triage` and `rigor_coverage` are also served, and belong to
|
|
261
265
|
`rigor-baseline-reduce` / `rigor-protection-uplift` rather than here.
|
|
@@ -123,6 +123,3 @@ more to the project than any annotation. File it at
|
|
|
123
123
|
Also say `rigor --version`, and note whether `sig/` and the relevant
|
|
124
124
|
plugins were in play — a gap that only appears without community RBS is a
|
|
125
125
|
different bug from one that survives it.
|
|
126
|
-
|
|
127
|
-
Inside Rigor's own tree the same report is the deliverable: the gap is
|
|
128
|
-
the reason not to hand-write the RBS there.
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: rigor-unused-adjudicate
|
|
3
|
-
description:
|
|
4
|
-
|
|
3
|
+
description: >-
|
|
4
|
+
Adjudicate a `rigor unused` report safely before proposing dead-code removal. Use when interpreting or
|
|
5
|
+
reviewing Rigor's unused classes/modules/constants, or when a cleanup is based on that report; not for
|
|
6
|
+
a specific deletion already known to be safe or for ordinary `rigor check` diagnostics.
|
|
5
7
|
license: MPL-2.0
|
|
6
8
|
metadata:
|
|
7
9
|
version: 0.2.0
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: rigor-upgrade
|
|
3
|
-
description:
|
|
4
|
-
Adopt a new
|
|
3
|
+
description: >-
|
|
4
|
+
Adopt a new `rigortype` version by comparing its diagnostics with the committed baseline and separating
|
|
5
|
+
new catches from signature-quality false positives. Use after a Rigor gem upgrade; not for first-time
|
|
6
|
+
setup or routine baseline reduction.
|
|
5
7
|
license: MPL-2.0
|
|
6
8
|
metadata:
|
|
7
9
|
version: 0.1.0
|
|
@@ -50,12 +52,15 @@ rigor --version
|
|
|
50
52
|
### Phase 2 — see the delta against the committed baseline
|
|
51
53
|
|
|
52
54
|
```sh
|
|
53
|
-
rigor check
|
|
54
|
-
rigor
|
|
55
|
+
rigor check # everything outside the committed baseline's envelope
|
|
56
|
+
rigor baseline drift # per-bucket movement against .rigor-baseline.yml
|
|
55
57
|
```
|
|
56
58
|
|
|
57
|
-
|
|
58
|
-
what the
|
|
59
|
+
With `baseline:` wired, `rigor check` already hides what the baseline
|
|
60
|
+
covers, so what it prints is **new** relative to the baseline — that set
|
|
61
|
+
is what the upgrade changed. `rigor baseline drift` adds the bucket view:
|
|
62
|
+
buckets now over their recorded count, and buckets the new version
|
|
63
|
+
cleared or shrank.
|
|
59
64
|
|
|
60
65
|
### Phase 3 — sort the new diagnostics
|
|
61
66
|
|
|
@@ -80,8 +85,8 @@ envelope so the regeneration does not bury what you just fixed:
|
|
|
80
85
|
rigor baseline regenerate
|
|
81
86
|
```
|
|
82
87
|
|
|
83
|
-
|
|
84
|
-
team adopts the same post-upgrade baseline.
|
|
88
|
+
Recommend committing the updated `.rigor-baseline.yml` together with any
|
|
89
|
+
fixes, so the team adopts the same post-upgrade baseline.
|
|
85
90
|
|
|
86
91
|
## Note
|
|
87
92
|
|
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.
|
|
4
|
+
version: 0.4.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Rigor contributors
|
|
@@ -308,10 +308,15 @@ files:
|
|
|
308
308
|
- data/builtins/ruby_core/time.yml
|
|
309
309
|
- data/capability_roles/capability_roles.rbs
|
|
310
310
|
- data/core_overlay/csv.rbs
|
|
311
|
+
- data/core_overlay/enumerable.rbs
|
|
312
|
+
- data/core_overlay/enumerator.rbs
|
|
313
|
+
- data/core_overlay/hash_rbs3.rbs
|
|
311
314
|
- data/core_overlay/numeric.rbs
|
|
312
315
|
- data/core_overlay/pathname.rbs
|
|
316
|
+
- data/core_overlay/process.rbs
|
|
313
317
|
- data/core_overlay/psych.rbs
|
|
314
318
|
- data/core_overlay/resolv.rbs
|
|
319
|
+
- data/core_overlay/string_io.rbs
|
|
315
320
|
- data/core_overlay/string_scanner.rbs
|
|
316
321
|
- data/effects/core.yml
|
|
317
322
|
- data/effects/registry.yml
|
|
@@ -388,6 +393,7 @@ files:
|
|
|
388
393
|
- docs/manual/plugins/rigor-actioncable.md
|
|
389
394
|
- docs/manual/plugins/rigor-actionmailer.md
|
|
390
395
|
- docs/manual/plugins/rigor-actionpack.md
|
|
396
|
+
- docs/manual/plugins/rigor-active-model-serializers.md
|
|
391
397
|
- docs/manual/plugins/rigor-activejob.md
|
|
392
398
|
- docs/manual/plugins/rigor-activerecord.md
|
|
393
399
|
- docs/manual/plugins/rigor-activestorage.md
|
|
@@ -398,6 +404,7 @@ files:
|
|
|
398
404
|
- docs/manual/plugins/rigor-dry-types.md
|
|
399
405
|
- docs/manual/plugins/rigor-dry-validation.md
|
|
400
406
|
- docs/manual/plugins/rigor-factorybot.md
|
|
407
|
+
- docs/manual/plugins/rigor-grape.md
|
|
401
408
|
- docs/manual/plugins/rigor-graphql.md
|
|
402
409
|
- docs/manual/plugins/rigor-hanami.md
|
|
403
410
|
- docs/manual/plugins/rigor-mangrove.md
|
|
@@ -427,6 +434,7 @@ files:
|
|
|
427
434
|
- lib/rigor/analysis/check_rules/duplicate_hash_key_collector.rb
|
|
428
435
|
- lib/rigor/analysis/check_rules/inferred_param_guard.rb
|
|
429
436
|
- lib/rigor/analysis/check_rules/ivar_write_collector.rb
|
|
437
|
+
- lib/rigor/analysis/check_rules/lexical_method_sites.rb
|
|
430
438
|
- lib/rigor/analysis/check_rules/main_pass_collector.rb
|
|
431
439
|
- lib/rigor/analysis/check_rules/published_constant_guard.rb
|
|
432
440
|
- lib/rigor/analysis/check_rules/return_in_ensure_collector.rb
|
|
@@ -434,6 +442,8 @@ files:
|
|
|
434
442
|
- lib/rigor/analysis/check_rules/rule_walk.rb
|
|
435
443
|
- lib/rigor/analysis/check_rules/self_closedness_scanner.rb
|
|
436
444
|
- lib/rigor/analysis/check_rules/shadowed_rescue_collector.rb
|
|
445
|
+
- lib/rigor/analysis/check_rules/source_arity.rb
|
|
446
|
+
- lib/rigor/analysis/check_rules/special_global_setters.rb
|
|
437
447
|
- lib/rigor/analysis/check_rules/unreachable_clause_collector.rb
|
|
438
448
|
- lib/rigor/analysis/check_rules/void_value_use_collector.rb
|
|
439
449
|
- lib/rigor/analysis/crash_signature.rb
|
|
@@ -450,6 +460,8 @@ files:
|
|
|
450
460
|
- lib/rigor/analysis/erb_template_detector.rb
|
|
451
461
|
- lib/rigor/analysis/fact_store.rb
|
|
452
462
|
- lib/rigor/analysis/incremental.rb
|
|
463
|
+
- lib/rigor/analysis/incremental_run_slot.rb
|
|
464
|
+
- lib/rigor/analysis/incremental_run_slot/write_guard.rb
|
|
453
465
|
- lib/rigor/analysis/incremental_session.rb
|
|
454
466
|
- lib/rigor/analysis/path_expansion.rb
|
|
455
467
|
- lib/rigor/analysis/plugin_fact_fingerprint.rb
|
|
@@ -477,6 +489,12 @@ files:
|
|
|
477
489
|
- lib/rigor/analysis/runner/run_snapshots.rb
|
|
478
490
|
- lib/rigor/analysis/self_call_resolution_recorder.rb
|
|
479
491
|
- lib/rigor/analysis/severity_stamp.rb
|
|
492
|
+
- lib/rigor/analysis/shadow_harness.rb
|
|
493
|
+
- lib/rigor/analysis/source_rbs_gate.rb
|
|
494
|
+
- lib/rigor/analysis/template_unit_collector.rb
|
|
495
|
+
- lib/rigor/analysis/template_unit_paths.rb
|
|
496
|
+
- lib/rigor/analysis/template_unit_positions.rb
|
|
497
|
+
- lib/rigor/analysis/template_units.rb
|
|
480
498
|
- lib/rigor/analysis/worker_session.rb
|
|
481
499
|
- lib/rigor/ast.rb
|
|
482
500
|
- lib/rigor/ast/type_node.rb
|
|
@@ -500,6 +518,7 @@ files:
|
|
|
500
518
|
- lib/rigor/cache/rbs_environment_marshal_patch.rb
|
|
501
519
|
- lib/rigor/cache/rbs_known_class_names.rb
|
|
502
520
|
- lib/rigor/cache/store.rb
|
|
521
|
+
- lib/rigor/cache/value_digest.rb
|
|
503
522
|
- lib/rigor/ci_detector.rb
|
|
504
523
|
- lib/rigor/cli.rb
|
|
505
524
|
- lib/rigor/cli/annotate_command.rb
|
|
@@ -553,21 +572,26 @@ files:
|
|
|
553
572
|
- lib/rigor/cli/triage_renderer.rb
|
|
554
573
|
- lib/rigor/cli/type_of_command.rb
|
|
555
574
|
- lib/rigor/cli/type_of_renderer.rb
|
|
575
|
+
- lib/rigor/cli/type_of_template_probe.rb
|
|
556
576
|
- lib/rigor/cli/type_scan_command.rb
|
|
557
577
|
- lib/rigor/cli/type_scan_renderer.rb
|
|
558
578
|
- lib/rigor/cli/type_scan_report.rb
|
|
559
579
|
- lib/rigor/cli/unused_command.rb
|
|
560
580
|
- lib/rigor/cli/upgrade_command.rb
|
|
561
581
|
- lib/rigor/config_audit.rb
|
|
582
|
+
- lib/rigor/config_path.rb
|
|
562
583
|
- lib/rigor/configuration.rb
|
|
563
584
|
- lib/rigor/configuration/dependencies.rb
|
|
564
585
|
- lib/rigor/configuration/severity_profile.rb
|
|
565
586
|
- lib/rigor/configuration_error.rb
|
|
566
587
|
- lib/rigor/effects.rb
|
|
588
|
+
- lib/rigor/effects/ancestry_recorder.rb
|
|
567
589
|
- lib/rigor/effects/attribution.rb
|
|
590
|
+
- lib/rigor/effects/callee_rule.rb
|
|
568
591
|
- lib/rigor/effects/catalog.rb
|
|
569
592
|
- lib/rigor/effects/collector.rb
|
|
570
593
|
- lib/rigor/effects/config_envelopes.rb
|
|
594
|
+
- lib/rigor/effects/definition_context.rb
|
|
571
595
|
- lib/rigor/effects/definition_lines.rb
|
|
572
596
|
- lib/rigor/effects/discharge.rb
|
|
573
597
|
- lib/rigor/effects/effect_table.rb
|
|
@@ -601,6 +625,7 @@ files:
|
|
|
601
625
|
- lib/rigor/effects/unit_scan.rb
|
|
602
626
|
- lib/rigor/effects/unknown_label_check.rb
|
|
603
627
|
- lib/rigor/effects/unknown_label_report.rb
|
|
628
|
+
- lib/rigor/effects/visibility.rb
|
|
604
629
|
- lib/rigor/environment.rb
|
|
605
630
|
- lib/rigor/environment/bundle_sig_discovery.rb
|
|
606
631
|
- lib/rigor/environment/class_registry.rb
|
|
@@ -610,6 +635,8 @@ files:
|
|
|
610
635
|
- lib/rigor/environment/hkt_registry_holder.rb
|
|
611
636
|
- lib/rigor/environment/installed_gem_set.rb
|
|
612
637
|
- lib/rigor/environment/lockfile_resolver.rb
|
|
638
|
+
- lib/rigor/environment/member_consistency.rb
|
|
639
|
+
- lib/rigor/environment/member_consistency/comparator.rb
|
|
613
640
|
- lib/rigor/environment/missing_gem_constant_index.rb
|
|
614
641
|
- lib/rigor/environment/rbs_collection_discovery.rb
|
|
615
642
|
- lib/rigor/environment/rbs_coverage_report.rb
|
|
@@ -617,15 +644,20 @@ files:
|
|
|
617
644
|
- lib/rigor/environment/rbs_loader.rb
|
|
618
645
|
- lib/rigor/environment/reflection.rb
|
|
619
646
|
- lib/rigor/environment/reporters.rb
|
|
647
|
+
- lib/rigor/environment/source_rbs_synthesis.rb
|
|
620
648
|
- lib/rigor/flow_contribution.rb
|
|
621
649
|
- lib/rigor/flow_contribution/conflict.rb
|
|
622
650
|
- lib/rigor/flow_contribution/element.rb
|
|
623
651
|
- lib/rigor/flow_contribution/fact.rb
|
|
624
652
|
- lib/rigor/flow_contribution/merge_result.rb
|
|
625
653
|
- lib/rigor/flow_contribution/merger.rb
|
|
654
|
+
- lib/rigor/hashing/xxh3.rb
|
|
626
655
|
- lib/rigor/inference/acceptance.rb
|
|
627
656
|
- lib/rigor/inference/anonymous_meta_class.rb
|
|
657
|
+
- lib/rigor/inference/block_auto_splat.rb
|
|
658
|
+
- lib/rigor/inference/block_call_timing.rb
|
|
628
659
|
- lib/rigor/inference/block_parameter_binder.rb
|
|
660
|
+
- lib/rigor/inference/block_repetition.rb
|
|
629
661
|
- lib/rigor/inference/body_fixpoint.rb
|
|
630
662
|
- lib/rigor/inference/budget_trace.rb
|
|
631
663
|
- lib/rigor/inference/builtins/array_catalog.rb
|
|
@@ -652,16 +684,29 @@ files:
|
|
|
652
684
|
- lib/rigor/inference/closure_escape_analyzer.rb
|
|
653
685
|
- lib/rigor/inference/content_join.rb
|
|
654
686
|
- lib/rigor/inference/coverage_scanner.rb
|
|
687
|
+
- lib/rigor/inference/declaration_walk.rb
|
|
688
|
+
- lib/rigor/inference/declaration_walk/context.rb
|
|
689
|
+
- lib/rigor/inference/declaration_walk/errors.rb
|
|
690
|
+
- lib/rigor/inference/declaration_walk/shadow.rb
|
|
691
|
+
- lib/rigor/inference/declaration_walk/traversal.rb
|
|
655
692
|
- lib/rigor/inference/def_handle.rb
|
|
656
693
|
- lib/rigor/inference/def_node_resolver.rb
|
|
657
694
|
- lib/rigor/inference/def_return_typer.rb
|
|
695
|
+
- lib/rigor/inference/define_method_block_self.rb
|
|
696
|
+
- lib/rigor/inference/definer_resolution.rb
|
|
658
697
|
- lib/rigor/inference/dynamic_origin.rb
|
|
659
698
|
- lib/rigor/inference/element_read_widening.rb
|
|
699
|
+
- lib/rigor/inference/error_info.rb
|
|
660
700
|
- lib/rigor/inference/expression_typer.rb
|
|
701
|
+
- lib/rigor/inference/external_ancestor_resolution.rb
|
|
661
702
|
- lib/rigor/inference/fallback.rb
|
|
662
703
|
- lib/rigor/inference/fallback_tracer.rb
|
|
663
704
|
- lib/rigor/inference/flow_tracer.rb
|
|
664
705
|
- lib/rigor/inference/fork_map.rb
|
|
706
|
+
- lib/rigor/inference/fresh_frame_blocks.rb
|
|
707
|
+
- lib/rigor/inference/global_write_census.rb
|
|
708
|
+
- lib/rigor/inference/guard_rebinding.rb
|
|
709
|
+
- lib/rigor/inference/hash_lookup_mutation.rb
|
|
665
710
|
- lib/rigor/inference/hkt_body.rb
|
|
666
711
|
- lib/rigor/inference/hkt_body_parser.rb
|
|
667
712
|
- lib/rigor/inference/hkt_reducer.rb
|
|
@@ -669,28 +714,45 @@ files:
|
|
|
669
714
|
- lib/rigor/inference/hkt_sugar_translator.rb
|
|
670
715
|
- lib/rigor/inference/index_write_widening.rb
|
|
671
716
|
- lib/rigor/inference/indexed_narrowing.rb
|
|
717
|
+
- lib/rigor/inference/jump_targets.rb
|
|
718
|
+
- lib/rigor/inference/last_line.rb
|
|
719
|
+
- lib/rigor/inference/last_line/implicit_self.rb
|
|
720
|
+
- lib/rigor/inference/last_line/self_evidence.rb
|
|
721
|
+
- lib/rigor/inference/last_status.rb
|
|
672
722
|
- lib/rigor/inference/macro_block_self_type.rb
|
|
723
|
+
- lib/rigor/inference/match_rebinding.rb
|
|
724
|
+
- lib/rigor/inference/match_rebinding/calls.rb
|
|
725
|
+
- lib/rigor/inference/match_rebinding/frame.rb
|
|
726
|
+
- lib/rigor/inference/match_rebinding/operands.rb
|
|
727
|
+
- lib/rigor/inference/match_rebinding/self_calls.rb
|
|
673
728
|
- lib/rigor/inference/method_dispatcher.rb
|
|
729
|
+
- lib/rigor/inference/method_dispatcher/alias_strict_nominals.rb
|
|
674
730
|
- lib/rigor/inference/method_dispatcher/array_to_h_folding.rb
|
|
675
731
|
- lib/rigor/inference/method_dispatcher/block_folding.rb
|
|
676
732
|
- lib/rigor/inference/method_dispatcher/call_context.rb
|
|
677
733
|
- lib/rigor/inference/method_dispatcher/cgi_folding.rb
|
|
678
734
|
- lib/rigor/inference/method_dispatcher/constant_folding.rb
|
|
679
735
|
- lib/rigor/inference/method_dispatcher/data_folding.rb
|
|
736
|
+
- lib/rigor/inference/method_dispatcher/facet_distribution.rb
|
|
680
737
|
- lib/rigor/inference/method_dispatcher/file_folding.rb
|
|
738
|
+
- lib/rigor/inference/method_dispatcher/hash_transform_keys_folding.rb
|
|
681
739
|
- lib/rigor/inference/method_dispatcher/iterator_dispatch.rb
|
|
682
740
|
- lib/rigor/inference/method_dispatcher/json_folding.rb
|
|
683
741
|
- lib/rigor/inference/method_dispatcher/kernel_dispatch.rb
|
|
684
742
|
- lib/rigor/inference/method_dispatcher/literal_string_folding.rb
|
|
743
|
+
- lib/rigor/inference/method_dispatcher/match_data_folding.rb
|
|
685
744
|
- lib/rigor/inference/method_dispatcher/math_folding.rb
|
|
686
745
|
- lib/rigor/inference/method_dispatcher/member_shape_projection.rb
|
|
687
746
|
- lib/rigor/inference/method_dispatcher/method_folding.rb
|
|
688
747
|
- lib/rigor/inference/method_dispatcher/overload_selector.rb
|
|
748
|
+
- lib/rigor/inference/method_dispatcher/process_folding.rb
|
|
749
|
+
- lib/rigor/inference/method_dispatcher/proven_overload.rb
|
|
689
750
|
- lib/rigor/inference/method_dispatcher/random_folding.rb
|
|
690
751
|
- lib/rigor/inference/method_dispatcher/rbs_dispatch.rb
|
|
691
752
|
- lib/rigor/inference/method_dispatcher/receiver_affinity.rb
|
|
692
753
|
- lib/rigor/inference/method_dispatcher/reduce_folding.rb
|
|
693
754
|
- lib/rigor/inference/method_dispatcher/regexp_folding.rb
|
|
755
|
+
- lib/rigor/inference/method_dispatcher/self_substitute.rb
|
|
694
756
|
- lib/rigor/inference/method_dispatcher/set_folding.rb
|
|
695
757
|
- lib/rigor/inference/method_dispatcher/shape_dispatch.rb
|
|
696
758
|
- lib/rigor/inference/method_dispatcher/shellwords_folding.rb
|
|
@@ -702,30 +764,49 @@ files:
|
|
|
702
764
|
- lib/rigor/inference/method_dispatcher/universal_object_dispatch.rb
|
|
703
765
|
- lib/rigor/inference/method_dispatcher/uri_folding.rb
|
|
704
766
|
- lib/rigor/inference/method_parameter_binder.rb
|
|
767
|
+
- lib/rigor/inference/module_function_state.rb
|
|
705
768
|
- lib/rigor/inference/multi_target_binder.rb
|
|
706
769
|
- lib/rigor/inference/mutation_rejoin.rb
|
|
707
770
|
- lib/rigor/inference/mutation_widening.rb
|
|
708
771
|
- lib/rigor/inference/narrowing.rb
|
|
772
|
+
- lib/rigor/inference/operand_effects.rb
|
|
773
|
+
- lib/rigor/inference/operand_walk.rb
|
|
709
774
|
- lib/rigor/inference/optimistic_origin.rb
|
|
710
775
|
- lib/rigor/inference/origin_lookup.rb
|
|
711
776
|
- lib/rigor/inference/parameter_inference_collector.rb
|
|
712
777
|
- lib/rigor/inference/pre_eval_constants.rb
|
|
713
778
|
- lib/rigor/inference/precision_scanner.rb
|
|
779
|
+
- lib/rigor/inference/project_method_ownership.rb
|
|
714
780
|
- lib/rigor/inference/project_patched_methods.rb
|
|
715
781
|
- lib/rigor/inference/project_patched_scanner.rb
|
|
716
782
|
- lib/rigor/inference/protection_scanner.rb
|
|
717
783
|
- lib/rigor/inference/range_constant.rb
|
|
718
784
|
- lib/rigor/inference/rbs_type_translator.rb
|
|
719
785
|
- lib/rigor/inference/receiver_alias.rb
|
|
786
|
+
- lib/rigor/inference/receiver_blind_block.rb
|
|
720
787
|
- lib/rigor/inference/refinement_mutation.rb
|
|
788
|
+
- lib/rigor/inference/repeated_or_writes.rb
|
|
789
|
+
- lib/rigor/inference/return_barrier.rb
|
|
790
|
+
- lib/rigor/inference/rewrite_mutation.rb
|
|
721
791
|
- lib/rigor/inference/scope_indexer.rb
|
|
792
|
+
- lib/rigor/inference/scope_indexer/certainty.rb
|
|
793
|
+
- lib/rigor/inference/scope_indexer/class_cvars_collector.rb
|
|
794
|
+
- lib/rigor/inference/scope_indexer/def_nestings_collector.rb
|
|
795
|
+
- lib/rigor/inference/scope_indexer/layered_def_nestings.rb
|
|
796
|
+
- lib/rigor/inference/scope_indexer/member_layouts_collector.rb
|
|
797
|
+
- lib/rigor/inference/scope_indexer/mixin_accumulator.rb
|
|
798
|
+
- lib/rigor/inference/scope_indexer/superclasses_collector.rb
|
|
799
|
+
- lib/rigor/inference/singleton_hook_decline.rb
|
|
722
800
|
- lib/rigor/inference/singleton_object_constant.rb
|
|
723
801
|
- lib/rigor/inference/statement_evaluator.rb
|
|
802
|
+
- lib/rigor/inference/stored_block_call.rb
|
|
724
803
|
- lib/rigor/inference/string_mutation.rb
|
|
725
804
|
- lib/rigor/inference/struct_fold_safety.rb
|
|
726
805
|
- lib/rigor/inference/synthetic_method.rb
|
|
727
806
|
- lib/rigor/inference/synthetic_method_index.rb
|
|
728
807
|
- lib/rigor/inference/synthetic_method_scanner.rb
|
|
808
|
+
- lib/rigor/inference/unknown_store_widening.rb
|
|
809
|
+
- lib/rigor/inference/unthreaded_rebinds.rb
|
|
729
810
|
- lib/rigor/inference/version_guard.rb
|
|
730
811
|
- lib/rigor/inference/void_origin.rb
|
|
731
812
|
- lib/rigor/inference/void_tail_summary.rb
|
|
@@ -757,6 +838,7 @@ files:
|
|
|
757
838
|
- lib/rigor/plugin/base.rb
|
|
758
839
|
- lib/rigor/plugin/blueprint.rb
|
|
759
840
|
- lib/rigor/plugin/box.rb
|
|
841
|
+
- lib/rigor/plugin/box_probe.rb
|
|
760
842
|
- lib/rigor/plugin/bundled_catalog.rb
|
|
761
843
|
- lib/rigor/plugin/effect_ancestry.rb
|
|
762
844
|
- lib/rigor/plugin/effect_attribution.rb
|
|
@@ -781,6 +863,7 @@ files:
|
|
|
781
863
|
- lib/rigor/plugin/registry.rb
|
|
782
864
|
- lib/rigor/plugin/services.rb
|
|
783
865
|
- lib/rigor/plugin/source_rbs_synthesis_reporter.rb
|
|
866
|
+
- lib/rigor/plugin/template_unit.rb
|
|
784
867
|
- lib/rigor/plugin/trust_policy.rb
|
|
785
868
|
- lib/rigor/plugin/type_node_resolver.rb
|
|
786
869
|
- lib/rigor/plugin_gap_advisory.rb
|
|
@@ -802,13 +885,20 @@ files:
|
|
|
802
885
|
- lib/rigor/rbs_extended/hkt_directives.rb
|
|
803
886
|
- lib/rigor/rbs_extended/reporter.rb
|
|
804
887
|
- lib/rigor/reflection.rb
|
|
888
|
+
- lib/rigor/reflection/constant_ancestors.rb
|
|
805
889
|
- lib/rigor/reflection/constant_path.rb
|
|
806
890
|
- lib/rigor/runtime/jit.rb
|
|
807
891
|
- lib/rigor/scope.rb
|
|
808
892
|
- lib/rigor/scope/discovery_index.rb
|
|
893
|
+
- lib/rigor/scope/resolution_chain.rb
|
|
894
|
+
- lib/rigor/scope/resolution_chain/relevance.rb
|
|
809
895
|
- lib/rigor/sig_gen.rb
|
|
896
|
+
- lib/rigor/sig_gen/alias_index.rb
|
|
810
897
|
- lib/rigor/sig_gen/classification.rb
|
|
898
|
+
- lib/rigor/sig_gen/declaration_equivalence.rb
|
|
899
|
+
- lib/rigor/sig_gen/effect_annotation.rb
|
|
811
900
|
- lib/rigor/sig_gen/generator.rb
|
|
901
|
+
- lib/rigor/sig_gen/inline_declarations.rb
|
|
812
902
|
- lib/rigor/sig_gen/layout_index.rb
|
|
813
903
|
- lib/rigor/sig_gen/meta_class_shape.rb
|
|
814
904
|
- lib/rigor/sig_gen/method_candidate.rb
|
|
@@ -829,6 +919,7 @@ files:
|
|
|
829
919
|
- lib/rigor/source/node_children.rb
|
|
830
920
|
- lib/rigor/source/node_locator.rb
|
|
831
921
|
- lib/rigor/source/node_walker.rb
|
|
922
|
+
- lib/rigor/source/parameter_envelope.rb
|
|
832
923
|
- lib/rigor/testing.rb
|
|
833
924
|
- lib/rigor/triage.rb
|
|
834
925
|
- lib/rigor/triage/catalogue.rb
|
|
@@ -893,8 +984,19 @@ files:
|
|
|
893
984
|
- plugins/rigor-actionpack/lib/rigor/plugin/actionpack/analyzer.rb
|
|
894
985
|
- plugins/rigor-actionpack/lib/rigor/plugin/actionpack/controller_discoverer.rb
|
|
895
986
|
- plugins/rigor-actionpack/lib/rigor/plugin/actionpack/controller_index.rb
|
|
987
|
+
- plugins/rigor-actionpack/lib/rigor/plugin/actionpack/controller_scan.rb
|
|
896
988
|
- plugins/rigor-actionpack/lib/rigor/plugin/actionpack/effects.rb
|
|
989
|
+
- plugins/rigor-actionpack/lib/rigor/plugin/actionpack/erb_compiler.rb
|
|
990
|
+
- plugins/rigor-actionpack/lib/rigor/plugin/actionpack/render_locals.rb
|
|
991
|
+
- plugins/rigor-actionpack/lib/rigor/plugin/actionpack/view_assigns.rb
|
|
992
|
+
- plugins/rigor-actionpack/lib/rigor/plugin/actionpack/view_units.rb
|
|
897
993
|
- plugins/rigor-actionpack/sig/action_controller.rbs
|
|
994
|
+
- plugins/rigor-actionpack/sig/action_view.rbs
|
|
995
|
+
- plugins/rigor-active-model-serializers/lib/rigor-active-model-serializers.rb
|
|
996
|
+
- plugins/rigor-active-model-serializers/lib/rigor/plugin/active_model_serializers.rb
|
|
997
|
+
- plugins/rigor-active-model-serializers/lib/rigor/plugin/active_model_serializers/serializer_discoverer.rb
|
|
998
|
+
- plugins/rigor-active-model-serializers/lib/rigor/plugin/active_model_serializers/serializer_index.rb
|
|
999
|
+
- plugins/rigor-active-model-serializers/sig/active_model_serializers.rbs
|
|
898
1000
|
- plugins/rigor-activejob/lib/rigor-activejob.rb
|
|
899
1001
|
- plugins/rigor-activejob/lib/rigor/plugin/activejob.rb
|
|
900
1002
|
- plugins/rigor-activejob/lib/rigor/plugin/activejob/analyzer.rb
|
|
@@ -961,9 +1063,13 @@ files:
|
|
|
961
1063
|
- plugins/rigor-ffi/lib/rigor/plugin/ffi/target_detector.rb
|
|
962
1064
|
- plugins/rigor-ffi/lib/rigor/plugin/ffi/types.rb
|
|
963
1065
|
- plugins/rigor-ffi/sig/ffi.rbs
|
|
1066
|
+
- plugins/rigor-grape/lib/rigor-grape.rb
|
|
1067
|
+
- plugins/rigor-grape/lib/rigor/plugin/grape.rb
|
|
1068
|
+
- plugins/rigor-grape/sig/grape.rbs
|
|
964
1069
|
- plugins/rigor-graphql/lib/rigor-graphql.rb
|
|
965
1070
|
- plugins/rigor-graphql/lib/rigor/plugin/graphql.rb
|
|
966
1071
|
- plugins/rigor-graphql/lib/rigor/plugin/graphql/type_scanner.rb
|
|
1072
|
+
- plugins/rigor-graphql/sig/graphql.rbs
|
|
967
1073
|
- plugins/rigor-hanami/lib/rigor-hanami.rb
|
|
968
1074
|
- plugins/rigor-hanami/lib/rigor/plugin/hanami.rb
|
|
969
1075
|
- plugins/rigor-hanami/lib/rigor/plugin/hanami/action_checker.rb
|
|
@@ -1004,6 +1110,7 @@ files:
|
|
|
1004
1110
|
- plugins/rigor-rbnacl/sig/rbnacl.rbs
|
|
1005
1111
|
- plugins/rigor-rbs-inline/lib/rigor-rbs-inline.rb
|
|
1006
1112
|
- plugins/rigor-rbs-inline/lib/rigor/plugin/rbs_inline.rb
|
|
1113
|
+
- plugins/rigor-rbs-inline/lib/rigor/plugin/rbs_inline/same_line_annotations.rb
|
|
1007
1114
|
- plugins/rigor-rspec-rails/lib/rigor-rspec-rails.rb
|
|
1008
1115
|
- plugins/rigor-rspec-rails/lib/rigor/plugin/rspec_rails.rb
|
|
1009
1116
|
- plugins/rigor-rspec-rails/lib/rigor/plugin/rspec_rails/have_http_status_analyzer.rb
|
|
@@ -1040,6 +1147,7 @@ files:
|
|
|
1040
1147
|
- plugins/rigor-sorbet/lib/rigor/plugin/sorbet/sig_parser.rb
|
|
1041
1148
|
- plugins/rigor-sorbet/lib/rigor/plugin/sorbet/sigil_detector.rb
|
|
1042
1149
|
- plugins/rigor-sorbet/lib/rigor/plugin/sorbet/type_translator.rb
|
|
1150
|
+
- plugins/rigor-sorbet/sig/sorbet.rbs
|
|
1043
1151
|
- plugins/rigor-statesman/lib/rigor-statesman.rb
|
|
1044
1152
|
- plugins/rigor-statesman/lib/rigor/plugin/statesman.rb
|
|
1045
1153
|
- plugins/rigor-typescript-utility-types/lib/rigor-typescript-utility-types.rb
|
|
@@ -1052,6 +1160,7 @@ files:
|
|
|
1052
1160
|
- sig/rigor/analysis/dependency_source_inference/gem_resolver.rbs
|
|
1053
1161
|
- sig/rigor/analysis/dependency_source_inference/index.rbs
|
|
1054
1162
|
- sig/rigor/analysis/fact_store.rbs
|
|
1163
|
+
- sig/rigor/analysis/project_scan.rbs
|
|
1055
1164
|
- sig/rigor/analysis/reachability/scan_cache.rbs
|
|
1056
1165
|
- sig/rigor/ast.rbs
|
|
1057
1166
|
- sig/rigor/cache.rbs
|
|
@@ -1059,20 +1168,40 @@ files:
|
|
|
1059
1168
|
- sig/rigor/cli/explain_command.rbs
|
|
1060
1169
|
- sig/rigor/cli/sig_gen_command.rbs
|
|
1061
1170
|
- sig/rigor/cli/type_scan_command.rbs
|
|
1171
|
+
- sig/rigor/effects/config_envelopes.rbs
|
|
1172
|
+
- sig/rigor/effects/effect_table.rbs
|
|
1173
|
+
- sig/rigor/effects/envelope.rbs
|
|
1174
|
+
- sig/rigor/effects/envelope_index.rbs
|
|
1175
|
+
- sig/rigor/effects/file_collection.rbs
|
|
1176
|
+
- sig/rigor/effects/label.rbs
|
|
1177
|
+
- sig/rigor/effects/label_set.rbs
|
|
1178
|
+
- sig/rigor/effects/method_key.rbs
|
|
1179
|
+
- sig/rigor/effects/origin.rbs
|
|
1180
|
+
- sig/rigor/effects/plugin_facts.rbs
|
|
1181
|
+
- sig/rigor/effects/registry.rbs
|
|
1182
|
+
- sig/rigor/effects/summary.rbs
|
|
1183
|
+
- sig/rigor/effects/taint_cause.rbs
|
|
1062
1184
|
- sig/rigor/environment.rbs
|
|
1063
1185
|
- sig/rigor/inference.rbs
|
|
1064
1186
|
- sig/rigor/inference/builtins.rbs
|
|
1065
1187
|
- sig/rigor/inference/builtins/method_catalog.rbs
|
|
1188
|
+
- sig/rigor/inference/optimistic_origin.rbs
|
|
1066
1189
|
- sig/rigor/inference/void_origin.rbs
|
|
1067
1190
|
- sig/rigor/plugin.rbs
|
|
1068
1191
|
- sig/rigor/plugin/access_denied_error.rbs
|
|
1192
|
+
- sig/rigor/plugin/additional_initializer.rbs
|
|
1069
1193
|
- sig/rigor/plugin/base.rbs
|
|
1070
1194
|
- sig/rigor/plugin/blueprint.rbs
|
|
1195
|
+
- sig/rigor/plugin/effect_ancestry.rbs
|
|
1196
|
+
- sig/rigor/plugin/effect_attribution.rbs
|
|
1197
|
+
- sig/rigor/plugin/effect_edge.rbs
|
|
1198
|
+
- sig/rigor/plugin/effect_entry_points.rbs
|
|
1071
1199
|
- sig/rigor/plugin/fact_store.rbs
|
|
1072
1200
|
- sig/rigor/plugin/io_boundary.rbs
|
|
1073
1201
|
- sig/rigor/plugin/load_error.rbs
|
|
1074
1202
|
- sig/rigor/plugin/loader.rbs
|
|
1075
1203
|
- sig/rigor/plugin/manifest.rbs
|
|
1204
|
+
- sig/rigor/plugin/protocol_contract.rbs
|
|
1076
1205
|
- sig/rigor/plugin/registry.rbs
|
|
1077
1206
|
- sig/rigor/plugin/services.rbs
|
|
1078
1207
|
- sig/rigor/plugin/trust_policy.rbs
|
|
@@ -1141,6 +1270,7 @@ require_paths:
|
|
|
1141
1270
|
- plugins/rigor-actioncable/lib
|
|
1142
1271
|
- plugins/rigor-actionmailer/lib
|
|
1143
1272
|
- plugins/rigor-actionpack/lib
|
|
1273
|
+
- plugins/rigor-active-model-serializers/lib
|
|
1144
1274
|
- plugins/rigor-activejob/lib
|
|
1145
1275
|
- plugins/rigor-activerecord/lib
|
|
1146
1276
|
- plugins/rigor-activestorage/lib
|
|
@@ -1155,6 +1285,7 @@ require_paths:
|
|
|
1155
1285
|
- plugins/rigor-factorybot/lib
|
|
1156
1286
|
- plugins/rigor-ffi/lib
|
|
1157
1287
|
- plugins/rigor-ffi-rzmq/lib
|
|
1288
|
+
- plugins/rigor-grape/lib
|
|
1158
1289
|
- plugins/rigor-graphql/lib
|
|
1159
1290
|
- plugins/rigor-hanami/lib
|
|
1160
1291
|
- plugins/rigor-mangrove/lib
|