rigortype 0.4.6 → 0.4.8
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 +4 -2
- data/data/core_overlay/bigdecimal.rbs +33 -0
- data/data/core_overlay/resolv.rbs +30 -0
- data/data/gem_overlay/activesupport/core_ext.rbs +45 -13
- data/data/gem_overlay/addressable/addressable.rbs +40 -0
- data/data/vendored_gem_sigs/bundler/bundler.rbs +1 -1
- data/data/vendored_gem_sigs/rubygems/rubygems_extras.rbs +4 -3
- data/docs/handbook/01-getting-started.md +6 -3
- data/docs/handbook/11-sig-gen.md +85 -3
- data/docs/handbook/appendix-phpstan.md +4 -4
- data/docs/install.md +20 -0
- data/docs/manual/01-installation.md +67 -26
- data/docs/manual/02-cli-reference.md +455 -113
- data/docs/manual/03-configuration.md +76 -5
- data/docs/manual/04-diagnostics.md +5 -4
- data/docs/manual/06-baseline.md +6 -4
- data/docs/manual/08-skills.md +11 -0
- data/docs/manual/09-editor-integration.md +21 -2
- data/docs/manual/10-mcp-server.md +38 -2
- data/docs/manual/12-caching.md +4 -3
- data/docs/manual/14-rails-quickstart.md +1 -1
- data/docs/manual/19-effect-labels.md +3 -4
- data/docs/manual/plugins/rigor-actionpack.md +32 -15
- data/docs/manual/plugins/rigor-activesupport-core-ext.md +23 -1
- data/docs/manual/plugins/rigor-sorbet.md +17 -3
- data/lib/rigor/analysis/baseline.rb +24 -27
- data/lib/rigor/analysis/check_rules/always_raises_shield.rb +147 -0
- data/lib/rigor/analysis/check_rules/always_truthy_condition_collector.rb +5 -6
- data/lib/rigor/analysis/check_rules/call_facts.rb +58 -0
- data/lib/rigor/analysis/check_rules/dead_assignment_collector.rb +2 -2
- data/lib/rigor/analysis/check_rules/declaration_sourced_guard.rb +12 -4
- data/lib/rigor/analysis/check_rules/duplicate_hash_key_collector.rb +2 -2
- data/lib/rigor/analysis/check_rules/inferred_param_guard.rb +85 -13
- data/lib/rigor/analysis/check_rules/ivar_write_collector.rb +16 -4
- data/lib/rigor/analysis/check_rules/lexical_method_sites.rb +6 -1
- data/lib/rigor/analysis/check_rules/main_pass_collector.rb +5 -8
- data/lib/rigor/analysis/check_rules/plugin_api_surface.rb +195 -0
- data/lib/rigor/analysis/check_rules/published_constant_guard.rb +41 -12
- data/lib/rigor/analysis/check_rules/rbs_receiver_surface.rb +27 -1
- data/lib/rigor/analysis/check_rules/rebinding_block_callees.rb +3 -3
- data/lib/rigor/analysis/check_rules/replaced_singleton_defs.rb +96 -0
- data/lib/rigor/analysis/check_rules/return_in_ensure_collector.rb +1 -2
- data/lib/rigor/analysis/check_rules/rule_ids.rb +9 -2
- data/lib/rigor/analysis/check_rules/rule_walk.rb +9 -7
- data/lib/rigor/analysis/check_rules/shadowed_rescue_collector.rb +3 -4
- data/lib/rigor/analysis/check_rules/special_global_setters.rb +3 -3
- data/lib/rigor/analysis/check_rules/unreachable_clause_collector.rb +2 -2
- data/lib/rigor/analysis/check_rules/void_value_use_collector.rb +2 -2
- data/lib/rigor/analysis/check_rules.rb +720 -141
- data/lib/rigor/analysis/crash_signature.rb +45 -3
- data/lib/rigor/analysis/dependency_recorder.rb +237 -80
- data/lib/rigor/analysis/dependency_source_inference/boundary_cross_reporter.rb +14 -3
- data/lib/rigor/analysis/dependency_source_inference/gem_resolver.rb +1 -1
- data/lib/rigor/analysis/dependency_source_inference/index.rb +6 -8
- data/lib/rigor/analysis/dependency_source_inference/walker.rb +4 -4
- data/lib/rigor/analysis/edit_replay.rb +93 -6
- data/lib/rigor/analysis/fact_store.rb +3 -3
- data/lib/rigor/analysis/incremental.rb +11 -1
- data/lib/rigor/analysis/incremental_run_slot/write_guard.rb +4 -3
- data/lib/rigor/analysis/incremental_run_slot.rb +2 -2
- data/lib/rigor/analysis/incremental_session.rb +306 -53
- data/lib/rigor/analysis/reachability/plugin_roots.rb +6 -3
- data/lib/rigor/analysis/rule_catalog.rb +39 -3
- data/lib/rigor/analysis/run_cache_key.rb +27 -3
- data/lib/rigor/analysis/run_disclosure_credit.rb +26 -6
- data/lib/rigor/analysis/run_stats.rb +2 -2
- data/lib/rigor/analysis/runner/buffer_pool_dispatcher.rb +6 -2
- data/lib/rigor/analysis/runner/declaration_position.rb +8 -8
- data/lib/rigor/analysis/runner/diagnostic_aggregator.rb +264 -112
- data/lib/rigor/analysis/runner/effect_envelope_pass.rb +4 -9
- data/lib/rigor/analysis/runner/pool_coordinator.rb +173 -328
- data/lib/rigor/analysis/runner/project_pre_passes.rb +4 -37
- data/lib/rigor/analysis/runner/run_level_facts.rb +304 -0
- data/lib/rigor/analysis/runner/run_snapshots.rb +44 -54
- data/lib/rigor/analysis/runner/worker_payload.rb +36 -0
- data/lib/rigor/analysis/runner.rb +298 -109
- data/lib/rigor/analysis/self_call_resolution_recorder.rb +62 -23
- data/lib/rigor/analysis/template_unit_positions.rb +2 -3
- data/lib/rigor/analysis/template_units.rb +9 -1
- data/lib/rigor/analysis/worker_session.rb +65 -71
- data/lib/rigor/bleeding_edge.rb +22 -10
- data/lib/rigor/builtins/imported_refinements.rb +6 -8
- data/lib/rigor/builtins/predefined_constant_refinements.rb +1 -1
- data/lib/rigor/builtins/regex_refinement.rb +4 -6
- data/lib/rigor/cache/descriptor.rb +6 -5
- data/lib/rigor/cache/file_digest.rb +39 -31
- data/lib/rigor/cache/incremental_snapshot.rb +95 -17
- data/lib/rigor/cache/rbs_cache_producer.rb +2 -2
- data/lib/rigor/cache/rbs_class_ancestor_table.rb +1 -1
- data/lib/rigor/cache/rbs_class_type_param_names.rb +2 -2
- data/lib/rigor/cache/rbs_constant_table.rb +1 -1
- data/lib/rigor/cache/rbs_descriptor.rb +90 -4
- data/lib/rigor/cache/rbs_environment.rb +8 -1
- data/lib/rigor/cache/rbs_environment_marshal_patch.rb +2 -2
- data/lib/rigor/cache/rbs_known_class_names.rb +1 -1
- data/lib/rigor/cache/store.rb +11 -10
- data/lib/rigor/ci_detector.rb +1 -1
- data/lib/rigor/cli/annotate_command.rb +24 -19
- data/lib/rigor/cli/baseline_command.rb +160 -57
- data/lib/rigor/cli/catalogue.rb +256 -0
- data/lib/rigor/cli/check_command.rb +112 -104
- data/lib/rigor/cli/check_runner_factory.rb +2 -2
- data/lib/rigor/cli/command.rb +15 -1
- data/lib/rigor/cli/coverage_command.rb +21 -8
- data/lib/rigor/cli/coverage_mutation.rb +5 -7
- data/lib/rigor/cli/coverage_renderer.rb +2 -1
- data/lib/rigor/cli/coverage_scan.rb +3 -5
- data/lib/rigor/cli/diff_command.rb +25 -20
- data/lib/rigor/cli/docs_command.rb +1 -2
- data/lib/rigor/cli/doctor_command.rb +12 -12
- data/lib/rigor/cli/effects_command.rb +50 -40
- data/lib/rigor/cli/effects_diff_renderer.rb +18 -17
- data/lib/rigor/cli/effects_explain_renderer.rb +13 -12
- data/lib/rigor/cli/effects_renderer.rb +2 -1
- data/lib/rigor/cli/effects_snapshot_command.rb +26 -18
- data/lib/rigor/cli/explain_command.rb +18 -8
- data/lib/rigor/cli/fused_protection_renderer.rb +2 -1
- data/lib/rigor/cli/json_document.rb +41 -0
- data/lib/rigor/cli/lens_command.rb +29 -10
- data/lib/rigor/cli/lsp_command.rb +250 -23
- data/lib/rigor/cli/mcp_command.rb +12 -7
- data/lib/rigor/cli/mutation_fork_scan.rb +1 -1
- data/lib/rigor/cli/mutation_protection_renderer.rb +3 -2
- data/lib/rigor/cli/options.rb +40 -1
- data/lib/rigor/cli/plugin_command.rb +93 -46
- data/lib/rigor/cli/plugins_command.rb +17 -18
- data/lib/rigor/cli/plugins_renderer.rb +10 -6
- data/lib/rigor/cli/protection_fork_scan.rb +2 -2
- data/lib/rigor/cli/protection_renderer.rb +2 -1
- data/lib/rigor/cli/show_bleedingedge_command.rb +21 -15
- data/lib/rigor/cli/sig_gen_command.rb +92 -27
- data/lib/rigor/cli/skill_command.rb +32 -3
- data/lib/rigor/cli/skill_deep_probe.rb +1 -1
- data/lib/rigor/cli/skill_describe.rb +2 -1
- data/lib/rigor/cli/trace_command.rb +14 -9
- data/lib/rigor/cli/triage_command.rb +10 -11
- data/lib/rigor/cli/triage_renderer.rb +2 -1
- data/lib/rigor/cli/type_of_command.rb +16 -11
- data/lib/rigor/cli/type_of_project_scope.rb +1 -4
- data/lib/rigor/cli/type_of_renderer.rb +4 -1
- data/lib/rigor/cli/type_scan_command.rb +14 -9
- data/lib/rigor/cli/type_scan_renderer.rb +2 -1
- data/lib/rigor/cli/unused_command.rb +27 -17
- data/lib/rigor/cli/upgrade_command.rb +5 -0
- data/lib/rigor/cli.rb +214 -56
- data/lib/rigor/config_audit.rb +33 -19
- data/lib/rigor/configuration/severity_profile.rb +14 -5
- data/lib/rigor/configuration.rb +104 -35
- data/lib/rigor/effects/collector.rb +53 -21
- data/lib/rigor/effects/definition_context.rb +0 -2
- data/lib/rigor/effects/envelope.rb +1 -1
- data/lib/rigor/effects/framework_units.rb +1 -1
- data/lib/rigor/effects/mutation_classifier.rb +4 -7
- data/lib/rigor/effects/propagator.rb +1 -1
- data/lib/rigor/effects/registry.rb +2 -2
- data/lib/rigor/effects/snapshot.rb +1 -1
- data/lib/rigor/effects/taint_cause.rb +0 -2
- data/lib/rigor/effects/unit_scan.rb +9 -13
- data/lib/rigor/environment/bundle_sig_discovery.rb +64 -33
- data/lib/rigor/environment/class_registry.rb +3 -3
- data/lib/rigor/environment/constant_type_cache_holder.rb +5 -0
- data/lib/rigor/environment/core_root.rb +77 -0
- data/lib/rigor/environment/default_libraries.rb +18 -1
- data/lib/rigor/environment/deferred_signature_plan.rb +381 -0
- data/lib/rigor/environment/gated_signature_guard.rb +1 -1
- data/lib/rigor/environment/gated_signature_plan.rb +5 -2
- data/lib/rigor/environment/hkt_registry_holder.rb +6 -0
- data/lib/rigor/environment/lockfile_resolver.rb +28 -12
- data/lib/rigor/environment/member_consistency/comparator.rb +18 -1
- data/lib/rigor/environment/member_consistency.rb +56 -7
- data/lib/rigor/environment/missing_gem_constant_index.rb +3 -2
- data/lib/rigor/environment/project_path_gems.rb +124 -0
- data/lib/rigor/environment/rbs_collection_discovery.rb +123 -8
- data/lib/rigor/environment/rbs_coverage_report.rb +12 -11
- data/lib/rigor/environment/rbs_hierarchy.rb +12 -15
- data/lib/rigor/environment/rbs_loader.rb +772 -110
- data/lib/rigor/environment/reflection.rb +7 -7
- data/lib/rigor/environment/required_features.rb +0 -3
- data/lib/rigor/environment/ruby_library_roots.rb +1 -1
- data/lib/rigor/environment/vendored_signature_plan.rb +153 -0
- data/lib/rigor/environment.rb +169 -42
- data/lib/rigor/flow_contribution/merger.rb +4 -4
- data/lib/rigor/inference/acceptance.rb +136 -40
- data/lib/rigor/inference/alias_mutation_floor/foreign_locals.rb +117 -0
- data/lib/rigor/inference/alias_mutation_floor/memos.rb +85 -0
- data/lib/rigor/inference/alias_mutation_floor/reach.rb +119 -0
- data/lib/rigor/inference/alias_mutation_floor/site_collector.rb +252 -0
- data/lib/rigor/inference/alias_mutation_floor.rb +339 -0
- data/lib/rigor/inference/anonymous_meta_class.rb +18 -0
- data/lib/rigor/inference/block_auto_splat.rb +1 -1
- data/lib/rigor/inference/block_parameter_binder.rb +2 -3
- data/lib/rigor/inference/block_run_count.rb +185 -0
- data/lib/rigor/inference/budget_trace.rb +8 -2
- data/lib/rigor/inference/builtins/array_catalog.rb +2 -2
- data/lib/rigor/inference/builtins/exception_catalog.rb +2 -2
- data/lib/rigor/inference/builtins/numeric_catalog.rb +2 -5
- data/lib/rigor/inference/builtins/random_catalog.rb +2 -2
- data/lib/rigor/inference/callee_mutation_chain.rb +88 -77
- data/lib/rigor/inference/callee_write_census.rb +815 -0
- data/lib/rigor/inference/captured_locals.rb +2 -0
- data/lib/rigor/inference/census_foreign_block.rb +354 -0
- data/lib/rigor/inference/clause_widening.rb +1 -1
- data/lib/rigor/inference/closure_escape_analyzer.rb +11 -4
- data/lib/rigor/inference/construction_escape.rb +258 -0
- data/lib/rigor/inference/declaration_walk/traversal.rb +1 -1
- data/lib/rigor/inference/declaration_walk.rb +4 -0
- data/lib/rigor/inference/deep_erasure.rb +39 -7
- data/lib/rigor/inference/def_handle.rb +1 -1
- data/lib/rigor/inference/def_node_resolver.rb +33 -15
- data/lib/rigor/inference/def_return_typer.rb +47 -5
- data/lib/rigor/inference/definer_resolution.rb +19 -9
- data/lib/rigor/inference/definers_index.rb +162 -0
- data/lib/rigor/inference/direct_ivar_writes.rb +300 -0
- data/lib/rigor/inference/element_read_widening.rb +49 -3
- data/lib/rigor/inference/error_info.rb +16 -0
- data/lib/rigor/inference/expression_typer.rb +1559 -320
- data/lib/rigor/inference/external_ancestor_resolution.rb +3 -4
- data/lib/rigor/inference/flow_tracer.rb +31 -14
- data/lib/rigor/inference/fork_map.rb +3 -0
- data/lib/rigor/inference/fresh_frame_blocks.rb +52 -1
- data/lib/rigor/inference/global_write_census.rb +81 -5
- data/lib/rigor/inference/global_writer_reach.rb +260 -0
- data/lib/rigor/inference/hkt_body.rb +1 -2
- data/lib/rigor/inference/hkt_body_parser.rb +3 -5
- data/lib/rigor/inference/hkt_reducer.rb +2 -2
- data/lib/rigor/inference/hkt_registry.rb +3 -5
- data/lib/rigor/inference/in_effect_refinements.rb +7 -0
- data/lib/rigor/inference/indexed_narrowing.rb +61 -15
- data/lib/rigor/inference/intervening_ivar_reset.rb +26 -4
- data/lib/rigor/inference/ivar_writer_census.rb +154 -8
- data/lib/rigor/inference/key_presence_guard.rb +51 -24
- data/lib/rigor/inference/last_line/self_evidence.rb +30 -0
- data/lib/rigor/inference/last_line.rb +5 -2
- data/lib/rigor/inference/loop_value_record.rb +66 -14
- data/lib/rigor/inference/match_rebinding/frame.rb +57 -0
- data/lib/rigor/inference/match_rebinding/yielding_match.rb +101 -0
- data/lib/rigor/inference/match_rebinding.rb +28 -5
- data/lib/rigor/inference/method_dispatcher/alias_strict_nominals.rb +1 -1
- data/lib/rigor/inference/method_dispatcher/argument_distribution.rb +40 -0
- data/lib/rigor/inference/method_dispatcher/block_folding.rb +44 -30
- data/lib/rigor/inference/method_dispatcher/class_keyed_block_params.rb +65 -0
- data/lib/rigor/inference/method_dispatcher/constant_folding.rb +3 -3
- data/lib/rigor/inference/method_dispatcher/contested_overloads.rb +89 -0
- data/lib/rigor/inference/method_dispatcher/core_enumerable_receiver.rb +44 -0
- data/lib/rigor/inference/method_dispatcher/declared_constructor.rb +151 -0
- data/lib/rigor/inference/method_dispatcher/facet_distribution.rb +1 -1
- data/lib/rigor/inference/method_dispatcher/imprecise_argument.rb +2 -2
- data/lib/rigor/inference/method_dispatcher/interface_shape.rb +181 -0
- data/lib/rigor/inference/method_dispatcher/iterator_dispatch.rb +1 -1
- data/lib/rigor/inference/method_dispatcher/kernel_dispatch.rb +1 -1
- data/lib/rigor/inference/method_dispatcher/no_match_fallback.rb +54 -0
- data/lib/rigor/inference/method_dispatcher/overload_selector.rb +51 -27
- data/lib/rigor/inference/method_dispatcher/random_folding.rb +1 -1
- data/lib/rigor/inference/method_dispatcher/rbs_dispatch.rb +606 -78
- data/lib/rigor/inference/method_dispatcher/reduce_folding.rb +1 -1
- data/lib/rigor/inference/method_dispatcher/regexp_folding.rb +2 -2
- data/lib/rigor/inference/method_dispatcher/self_substitute.rb +3 -3
- data/lib/rigor/inference/method_dispatcher/set_folding.rb +9 -7
- data/lib/rigor/inference/method_dispatcher/shape_dispatch.rb +467 -84
- data/lib/rigor/inference/method_dispatcher/singleton_folding.rb +0 -1
- data/lib/rigor/inference/method_dispatcher/singleton_mixin_dispatch.rb +50 -17
- data/lib/rigor/inference/method_dispatcher/singleton_type_params.rb +104 -0
- data/lib/rigor/inference/method_dispatcher/struct_folding.rb +5 -5
- data/lib/rigor/inference/method_dispatcher/struct_materialization.rb +4 -6
- data/lib/rigor/inference/method_dispatcher/uri_folding.rb +1 -1
- data/lib/rigor/inference/method_dispatcher.rb +123 -25
- data/lib/rigor/inference/method_parameter_binder.rb +136 -56
- data/lib/rigor/inference/module_function_state/spellings.rb +2 -2
- data/lib/rigor/inference/module_function_state.rb +24 -3
- data/lib/rigor/inference/multi_target_binder.rb +2 -2
- data/lib/rigor/inference/mutation_rejoin.rb +240 -4
- data/lib/rigor/inference/mutation_widening.rb +199 -29
- data/lib/rigor/inference/narrowing.rb +238 -50
- data/lib/rigor/inference/operand_effects.rb +43 -2
- data/lib/rigor/inference/optimistic_origin.rb +134 -9
- data/lib/rigor/inference/origin_lookup.rb +1 -1
- data/lib/rigor/inference/out_buffer_mutation.rb +72 -0
- data/lib/rigor/inference/parameter_inference_collector.rb +5 -6
- data/lib/rigor/inference/pre_eval_constants.rb +1 -1
- data/lib/rigor/inference/precision_scanner.rb +1 -1
- data/lib/rigor/inference/project_method_ownership.rb +30 -9
- data/lib/rigor/inference/project_patched_methods.rb +65 -13
- data/lib/rigor/inference/project_patched_scanner.rb +120 -25
- data/lib/rigor/inference/project_patched_visibility.rb +39 -3
- data/lib/rigor/inference/project_yielder.rb +11 -17
- data/lib/rigor/inference/rbs_type_translator.rb +68 -15
- data/lib/rigor/inference/receiver_alias.rb +20 -0
- data/lib/rigor/inference/receiver_writer_call.rb +67 -0
- data/lib/rigor/inference/recursion_rebinding.rb +157 -0
- data/lib/rigor/inference/refined_dispatch/constructed_class.rb +57 -17
- data/lib/rigor/inference/refined_dispatch/own_method.rb +51 -16
- data/lib/rigor/inference/refined_dispatch.rb +13 -0
- data/lib/rigor/inference/reflective_ivar_write.rb +19 -11
- data/lib/rigor/inference/remover_holder_scan.rb +287 -0
- data/lib/rigor/inference/remover_narrowing.rb +224 -0
- data/lib/rigor/inference/rewrite_mutation.rb +53 -2
- data/lib/rigor/inference/scope_indexer/certainty.rb +0 -1
- data/lib/rigor/inference/scope_indexer/class_cvars_collector.rb +13 -6
- data/lib/rigor/inference/scope_indexer/constant_ivar_value.rb +93 -0
- data/lib/rigor/inference/scope_indexer/declared_param_writes.rb +70 -26
- data/lib/rigor/inference/scope_indexer/derived_param_value.rb +112 -0
- data/lib/rigor/inference/scope_indexer/empty_seed.rb +99 -0
- data/lib/rigor/inference/scope_indexer/ivar_contributions.rb +295 -0
- data/lib/rigor/inference/scope_indexer/mixin_accumulator.rb +136 -9
- data/lib/rigor/inference/scope_indexer.rb +2213 -226
- data/lib/rigor/inference/self_call_ivar_writes.rb +103 -12
- data/lib/rigor/inference/self_preserving_block.rb +87 -0
- data/lib/rigor/inference/set_mutation.rb +189 -0
- data/lib/rigor/inference/singleton_hook_decline.rb +42 -8
- data/lib/rigor/inference/singleton_object_constant.rb +32 -2
- data/lib/rigor/inference/statement_evaluator.rb +3268 -358
- data/lib/rigor/inference/string_mutation.rb +14 -0
- data/lib/rigor/inference/struct_fold_safety.rb +4 -6
- data/lib/rigor/inference/synthetic_method_scanner.rb +40 -17
- data/lib/rigor/inference/toplevel_def_census.rb +67 -0
- data/lib/rigor/inference/unknown_store_widening.rb +103 -4
- data/lib/rigor/inference/unthreaded_rebinds.rb +2 -3
- data/lib/rigor/inference/untyped_rejoin.rb +1 -1
- data/lib/rigor/inference/void_tail_summary.rb +29 -9
- data/lib/rigor/language_server/buffer_table.rb +3 -3
- data/lib/rigor/language_server/completion_provider.rb +26 -20
- data/lib/rigor/language_server/config_warning_announcer.rb +28 -0
- data/lib/rigor/language_server/diagnostic_publisher.rb +8 -3
- data/lib/rigor/language_server/document_symbol_provider.rb +1 -1
- data/lib/rigor/language_server/folding_range_provider.rb +1 -2
- data/lib/rigor/language_server/hover_provider.rb +1 -7
- data/lib/rigor/language_server/hover_renderer.rb +6 -8
- data/lib/rigor/language_server/project_context.rb +39 -1
- data/lib/rigor/language_server/publish_batcher.rb +3 -4
- data/lib/rigor/language_server/selection_range_provider.rb +2 -4
- data/lib/rigor/language_server/server.rb +7 -3
- data/lib/rigor/language_server/signature_help_provider.rb +4 -4
- data/lib/rigor/lens/claims/comparison.rb +78 -0
- data/lib/rigor/lens/claims/request.rb +131 -0
- data/lib/rigor/lens/claims/type_reader.rb +216 -0
- data/lib/rigor/lens/claims.rb +208 -0
- data/lib/rigor/lens/contract_reader.rb +5 -0
- data/lib/rigor/lens/document.rb +1 -1
- data/lib/rigor/lens/file_reader.rb +21 -8
- data/lib/rigor/lens/plugins.rb +1 -1
- data/lib/rigor/lens/run.rb +8 -0
- data/lib/rigor/lens.rb +1 -1
- data/lib/rigor/library_probe.rb +68 -0
- data/lib/rigor/mcp/server.rb +73 -2
- data/lib/rigor/mcp.rb +1 -1
- data/lib/rigor/memo_audit.rb +282 -0
- data/lib/rigor/plugin/access_denied_error.rb +1 -2
- data/lib/rigor/plugin/base.rb +15 -2
- data/lib/rigor/plugin/bundled_catalog.rb +1 -12
- data/lib/rigor/plugin/io_boundary.rb +26 -4
- data/lib/rigor/plugin/loader.rb +25 -8
- data/lib/rigor/plugin/macro/heredoc_template.rb +7 -8
- data/lib/rigor/plugin/macro/trait_registry.rb +6 -9
- data/lib/rigor/plugin/manifest.rb +16 -16
- data/lib/rigor/plugin/registry.rb +16 -5
- data/lib/rigor/plugin/services.rb +2 -3
- data/lib/rigor/plugin/source_rbs_synthesis_reporter.rb +11 -0
- data/lib/rigor/plugin/trust_policy.rb +48 -2
- data/lib/rigor/plugin/type_node_resolver.rb +2 -4
- data/lib/rigor/plugin.rb +6 -8
- data/lib/rigor/plugin_gap_advisory.rb +5 -1
- data/lib/rigor/project_environment.rb +16 -2
- data/lib/rigor/protection/analysis_guard.rb +1 -1
- data/lib/rigor/protection/discovery_seed.rb +44 -5
- data/lib/rigor/protection/mutation_cache.rb +4 -1
- data/lib/rigor/protection/mutator.rb +1 -1
- data/lib/rigor/rbs_extended/envelope_scanner.rb +4 -6
- data/lib/rigor/rbs_extended/hkt_directives.rb +6 -10
- data/lib/rigor/rbs_extended/reporter.rb +27 -3
- data/lib/rigor/rbs_extended.rb +2 -3
- data/lib/rigor/reflection/constant_ancestors.rb +81 -22
- data/lib/rigor/reflection/declaration_collectors.rb +55 -0
- data/lib/rigor/reflection/declarations.rb +58 -0
- data/lib/rigor/reflection/project_method.rb +177 -0
- data/lib/rigor/reflection.rb +2 -0
- data/lib/rigor/rooted_glob.rb +32 -1
- data/lib/rigor/run_scoped_slots.rb +38 -0
- data/lib/rigor/runtime/jit.rb +1 -1
- data/lib/rigor/scope/discovery_index.rb +168 -8
- data/lib/rigor/scope/resolution_chain/relevance.rb +14 -1
- data/lib/rigor/scope/resolution_chain.rb +901 -54
- data/lib/rigor/scope.rb +644 -37
- data/lib/rigor/sig_gen/bot_proposal_guard.rb +306 -0
- data/lib/rigor/sig_gen/classification.rb +18 -1
- data/lib/rigor/sig_gen/effect_annotation.rb +3 -3
- data/lib/rigor/sig_gen/generator.rb +588 -66
- data/lib/rigor/sig_gen/generic_header_scan.rb +189 -0
- data/lib/rigor/sig_gen/inline_declarations.rb +2 -2
- data/lib/rigor/sig_gen/layout_index.rb +3 -3
- data/lib/rigor/sig_gen/method_candidate.rb +37 -4
- data/lib/rigor/sig_gen/observation_collector.rb +14 -7
- data/lib/rigor/sig_gen/observed_call.rb +1 -1
- data/lib/rigor/sig_gen/path_mapper.rb +6 -0
- data/lib/rigor/sig_gen/platform_guarded_files.rb +184 -0
- data/lib/rigor/sig_gen/renderer.rb +15 -9
- data/lib/rigor/sig_gen/skip_reason_catalog.rb +62 -2
- data/lib/rigor/sig_gen/type_name_qualification.rb +69 -0
- data/lib/rigor/sig_gen/write_reporter.rb +63 -14
- data/lib/rigor/sig_gen/write_result.rb +23 -12
- data/lib/rigor/sig_gen/writer.rb +238 -37
- data/lib/rigor/sig_gen.rb +1 -0
- data/lib/rigor/source/forwardable_delegators.rb +122 -0
- data/lib/rigor/source/node_children.rb +13 -0
- data/lib/rigor/type/acceptance_router.rb +2 -2
- data/lib/rigor/type/accepts_result.rb +1 -1
- data/lib/rigor/type/app.rb +4 -6
- data/lib/rigor/type/combinator.rb +173 -21
- data/lib/rigor/type/constant.rb +4 -5
- data/lib/rigor/type/hash_shape.rb +21 -40
- data/lib/rigor/type/interface.rb +60 -0
- data/lib/rigor/type/union.rb +1 -1
- data/lib/rigor/type.rb +1 -0
- data/lib/rigor/type_node/identifier.rb +1 -2
- data/lib/rigor/type_node/resolver_chain.rb +1 -1
- data/lib/rigor/type_node/string_literal.rb +1 -2
- data/lib/rigor/type_node/symbol_literal.rb +1 -2
- data/lib/rigor/type_node/union.rb +3 -6
- data/lib/rigor/type_of_memo/serving.rb +99 -0
- data/lib/rigor/type_of_memo/stats.rb +43 -0
- data/lib/rigor/type_of_memo.rb +337 -0
- data/lib/rigor/typing_state.rb +1094 -0
- data/lib/rigor/value_semantics.rb +1 -10
- data/lib/rigor/version.rb +1 -1
- data/plugins/rigor-actioncable/lib/rigor/plugin/actioncable/channel_discoverer.rb +2 -2
- data/plugins/rigor-actioncable/lib/rigor/plugin/actioncable/channel_index.rb +2 -3
- data/plugins/rigor-actioncable/lib/rigor/plugin/actioncable.rb +1 -1
- data/plugins/rigor-actionmailer/lib/rigor/plugin/actionmailer/mailer_discoverer.rb +38 -36
- data/plugins/rigor-actionmailer/lib/rigor/plugin/actionmailer/mailer_index.rb +4 -2
- data/plugins/rigor-actionmailer/lib/rigor/plugin/actionmailer.rb +6 -4
- data/plugins/rigor-actionpack/lib/rigor/plugin/actionpack/analyzer.rb +1 -1
- data/plugins/rigor-actionpack/lib/rigor/plugin/actionpack/controller_index.rb +1 -5
- data/plugins/rigor-actionpack/lib/rigor/plugin/actionpack/controller_scan.rb +0 -1
- data/plugins/rigor-actionpack/lib/rigor/plugin/actionpack/erb_compiler.rb +2 -1
- data/plugins/rigor-actionpack/lib/rigor/plugin/actionpack/view_assigns.rb +3 -3
- data/plugins/rigor-actionpack/lib/rigor/plugin/actionpack.rb +115 -36
- data/plugins/rigor-active-model-serializers/lib/rigor/plugin/active_model_serializers.rb +3 -6
- data/plugins/rigor-activejob/lib/rigor/plugin/activejob/analyzer.rb +25 -1
- data/plugins/rigor-activejob/lib/rigor/plugin/activejob/effects.rb +1 -1
- data/plugins/rigor-activejob/lib/rigor/plugin/activejob/job_discoverer.rb +16 -6
- data/plugins/rigor-activejob/lib/rigor/plugin/activejob/job_index.rb +4 -2
- data/plugins/rigor-activejob/lib/rigor/plugin/activejob.rb +4 -3
- data/plugins/rigor-activerecord/lib/rigor/plugin/activerecord/analyzer.rb +2 -1
- data/plugins/rigor-activerecord/lib/rigor/plugin/activerecord/association_roots.rb +3 -2
- data/plugins/rigor-activerecord/lib/rigor/plugin/activerecord/effects.rb +2 -2
- data/plugins/rigor-activerecord/lib/rigor/plugin/activerecord/model_discoverer.rb +21 -31
- data/plugins/rigor-activerecord/lib/rigor/plugin/activerecord/model_index.rb +10 -16
- data/plugins/rigor-activerecord/lib/rigor/plugin/activerecord/schema_parser.rb +132 -33
- data/plugins/rigor-activerecord/lib/rigor/plugin/activerecord/schema_table.rb +20 -6
- data/plugins/rigor-activerecord/lib/rigor/plugin/activerecord/structure_sql_parser.rb +7 -4
- data/plugins/rigor-activerecord/lib/rigor/plugin/activerecord.rb +54 -17
- data/plugins/rigor-activerecord/sig/active_record/relation.rbs +19 -5
- data/plugins/rigor-activestorage/lib/rigor/plugin/activestorage/attachment_discoverer.rb +3 -4
- data/plugins/rigor-activestorage/lib/rigor/plugin/activestorage/attachment_index.rb +1 -1
- data/plugins/rigor-activestorage/lib/rigor/plugin/activestorage.rb +11 -14
- data/plugins/rigor-activestorage/lib/rigor-activestorage.rb +1 -1
- data/plugins/rigor-activesupport-core-ext/lib/rigor/plugin/activesupport_core_ext/effects.rb +1 -1
- data/plugins/rigor-activesupport-core-ext/lib/rigor/plugin/activesupport_core_ext/symbolize_keys.rb +102 -0
- data/plugins/rigor-activesupport-core-ext/lib/rigor/plugin/activesupport_core_ext.rb +30 -9
- data/plugins/rigor-activesupport-core-ext/sig/active_support/core_ext.rbs +55 -13
- data/plugins/rigor-alba/lib/rigor/plugin/alba/resource_collector.rb +15 -21
- data/plugins/rigor-alba/lib/rigor/plugin/alba/resource_discoverer.rb +1 -6
- data/plugins/rigor-alba/lib/rigor/plugin/alba/resource_index.rb +3 -3
- data/plugins/rigor-dry-schema/lib/rigor/plugin/dry_schema/schema_scanner.rb +1 -3
- data/plugins/rigor-dry-struct/lib/rigor/plugin/dry_struct.rb +6 -6
- data/plugins/rigor-dry-types/lib/rigor/plugin/dry_types/alias_scanner.rb +5 -6
- data/plugins/rigor-dry-types/lib/rigor/plugin/dry_types.rb +1 -1
- data/plugins/rigor-dry-validation/lib/rigor/plugin/dry_validation/params_shape.rb +2 -3
- data/plugins/rigor-dry-validation/lib/rigor/plugin/dry_validation.rb +5 -8
- data/plugins/rigor-ethon/lib/rigor/plugin/ethon.rb +0 -1
- data/plugins/rigor-factorybot/lib/rigor/plugin/factorybot/factory_discoverer.rb +1 -1
- data/plugins/rigor-factorybot/lib/rigor/plugin/factorybot.rb +10 -18
- data/plugins/rigor-ffi/lib/rigor/plugin/ffi/analyzer.rb +0 -1
- data/plugins/rigor-ffi/lib/rigor/plugin/ffi/discoverer.rb +0 -2
- data/plugins/rigor-ffi/lib/rigor/plugin/ffi.rb +8 -7
- data/plugins/rigor-grape/lib/rigor/plugin/grape.rb +0 -2
- data/plugins/rigor-graphql/lib/rigor/plugin/graphql/type_scanner.rb +6 -7
- data/plugins/rigor-graphql/lib/rigor/plugin/graphql.rb +12 -2
- data/plugins/rigor-hanami/lib/rigor/plugin/hanami/action_checker.rb +2 -4
- data/plugins/rigor-hanami/lib/rigor/plugin/hanami.rb +2 -5
- data/plugins/rigor-mangrove/lib/rigor/plugin/mangrove.rb +8 -2
- data/plugins/rigor-minitest/lib/rigor/plugin/minitest/assertion_analyzer.rb +6 -6
- data/plugins/rigor-pundit/lib/rigor/plugin/pundit/policy_discoverer.rb +2 -1
- data/plugins/rigor-rails-i18n/lib/rigor/plugin/rails_i18n/analyzer.rb +3 -8
- data/plugins/rigor-rails-i18n/lib/rigor/plugin/rails_i18n/locale_index.rb +2 -3
- data/plugins/rigor-rails-i18n/lib/rigor/plugin/rails_i18n/locale_loader.rb +5 -8
- data/plugins/rigor-rails-routes/lib/rigor/plugin/rails_routes/analyzer.rb +200 -4
- data/plugins/rigor-rails-routes/lib/rigor/plugin/rails_routes/devise_routes.rb +2 -3
- data/plugins/rigor-rails-routes/lib/rigor/plugin/rails_routes/helper_discoverer.rb +1 -1
- data/plugins/rigor-rails-routes/lib/rigor/plugin/rails_routes/routes_parser.rb +4 -11
- data/plugins/rigor-rails-routes/lib/rigor/plugin/rails_routes.rb +4 -3
- data/plugins/rigor-rbs-inline/lib/rigor/plugin/rbs_inline.rb +2 -1
- data/plugins/rigor-rspec/lib/rigor/plugin/rspec/matcher_analyzer.rb +5 -5
- data/plugins/rigor-rspec/lib/rigor/plugin/rspec.rb +2 -2
- data/plugins/rigor-rspec-rails/lib/rigor/plugin/rspec_rails.rb +3 -4
- data/plugins/rigor-shoulda-matchers/lib/rigor/plugin/shoulda_matchers/analyzer.rb +6 -8
- data/plugins/rigor-sidekiq/lib/rigor/plugin/sidekiq.rb +3 -2
- data/plugins/rigor-sorbet/lib/rigor/plugin/sorbet/absurd_recognizer.rb +4 -5
- data/plugins/rigor-sorbet/lib/rigor/plugin/sorbet/assertion_recognizer.rb +6 -7
- data/plugins/rigor-sorbet/lib/rigor/plugin/sorbet/catalog.rb +210 -3
- data/plugins/rigor-sorbet/lib/rigor/plugin/sorbet/catalog_walker.rb +146 -7
- data/plugins/rigor-sorbet/lib/rigor/plugin/sorbet/sig_parser.rb +2 -2
- data/plugins/rigor-sorbet/lib/rigor/plugin/sorbet/type_translator.rb +52 -34
- data/plugins/rigor-sorbet/lib/rigor/plugin/sorbet.rb +97 -24
- data/plugins/rigor-statesman/lib/rigor/plugin/statesman.rb +2 -3
- data/plugins/rigor-typelizer/lib/rigor/plugin/typelizer/serializer_collector.rb +16 -16
- data/plugins/rigor-typelizer/lib/rigor/plugin/typelizer/serializer_discoverer.rb +4 -8
- data/plugins/rigor-typelizer/lib/rigor/plugin/typelizer/serializer_index.rb +4 -4
- data/sig/rigor/analysis/baseline.rbs +0 -3
- data/sig/rigor/analysis/check_rules/rule_walk.rbs +6 -0
- data/sig/rigor/analysis/fact_store.rbs +2 -2
- data/sig/rigor/analysis/reachability/scan_cache.rbs +1 -1
- data/sig/rigor/cache/descriptor.rbs +14 -0
- data/sig/rigor/cli/diff_command.rbs +1 -1
- data/sig/rigor/cli/explain_command.rbs +1 -1
- data/sig/rigor/effects/registry.rbs +2 -2
- data/sig/rigor/environment.rbs +4 -1
- data/sig/rigor/inference.rbs +4 -1
- data/sig/rigor/plugin/additional_initializer.rbs +0 -5
- data/sig/rigor/plugin/base.rbs +53 -18
- data/sig/rigor/plugin/effect_attribution.rbs +3 -3
- data/sig/rigor/plugin/effect_edge.rbs +1 -1
- data/sig/rigor/plugin/effect_entry_points.rbs +3 -3
- data/sig/rigor/plugin/interfaces.rbs +51 -0
- data/sig/rigor/plugin/io_boundary.rbs +3 -3
- data/sig/rigor/plugin/manifest.rbs +9 -9
- data/sig/rigor/plugin/node_context.rbs +21 -0
- data/sig/rigor/plugin/protocol_contract.rbs +3 -7
- data/sig/rigor/reflection.rbs +37 -0
- data/sig/rigor/scope.rbs +43 -4
- data/sig/rigor/trinary.rbs +1 -0
- data/sig/rigor/type.rbs +9 -3
- data/sig/rigor.rbs +3 -2
- data/skills/rigor-ask/SKILL.md +1 -0
- data/skills/rigor-plugin-author/SKILL.md +4 -4
- data/skills/rigor-plugin-author/references/02-walker-and-types.md +5 -5
- data/skills/rigor-plugin-review/SKILL.md +3 -3
- data/skills/rigor-project-init/references/01-detect.md +1 -0
- data/skills/rigor-project-init/references/03-baseline-and-bugs.md +17 -2
- data/skills/rigor-project-init/references/06-agent-contract.md +4 -4
- data/skills/rigor-rbs-contract/SKILL.md +147 -0
- data/skills/rigor-rbs-contract/references/01-finding-candidates.md +212 -0
- data/skills/rigor-rbs-contract/references/02-contract-rules.md +157 -0
- data/skills/rigor-rbs-contract/references/03-target-own-code.md +90 -0
- data/skills/rigor-rbs-contract/references/04-target-gem-rbs-collection.md +210 -0
- data/skills/rigor-rbs-contract/references/05-declaration-mutants.md +182 -0
- data/skills/rigor-rbs-setup/SKILL.md +3 -1
- data/skills/rigor-type-oracle/SKILL.md +26 -1
- data/skills/rigor-type-oracle/references/02-agents-md-fragment.md +4 -3
- metadata +82 -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.
|
|
4
|
+
version: 0.4.8
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Rigor contributors
|
|
8
8
|
bindir: exe
|
|
9
9
|
cert_chain: []
|
|
10
|
-
date: 1980-01-
|
|
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
|
|
@@ -307,6 +307,7 @@ files:
|
|
|
307
307
|
- data/builtins/ruby_core/struct.yml
|
|
308
308
|
- data/builtins/ruby_core/time.yml
|
|
309
309
|
- data/capability_roles/capability_roles.rbs
|
|
310
|
+
- data/core_overlay/bigdecimal.rbs
|
|
310
311
|
- data/core_overlay/csv.rbs
|
|
311
312
|
- data/core_overlay/enumerable.rbs
|
|
312
313
|
- data/core_overlay/enumerator.rbs
|
|
@@ -335,6 +336,7 @@ files:
|
|
|
335
336
|
- data/effects/core.yml
|
|
336
337
|
- data/effects/registry.yml
|
|
337
338
|
- data/gem_overlay/activesupport/core_ext.rbs
|
|
339
|
+
- data/gem_overlay/addressable/addressable.rbs
|
|
338
340
|
- data/vendored_gem_sigs/ast/ast.rbs
|
|
339
341
|
- data/vendored_gem_sigs/bcrypt/bcrypt.rbs
|
|
340
342
|
- data/vendored_gem_sigs/bundler/bundler.rbs
|
|
@@ -445,7 +447,9 @@ files:
|
|
|
445
447
|
- lib/rigor/analysis/baseline.rb
|
|
446
448
|
- lib/rigor/analysis/buffer_binding.rb
|
|
447
449
|
- lib/rigor/analysis/check_rules.rb
|
|
450
|
+
- lib/rigor/analysis/check_rules/always_raises_shield.rb
|
|
448
451
|
- lib/rigor/analysis/check_rules/always_truthy_condition_collector.rb
|
|
452
|
+
- lib/rigor/analysis/check_rules/call_facts.rb
|
|
449
453
|
- lib/rigor/analysis/check_rules/clause_coverage.rb
|
|
450
454
|
- lib/rigor/analysis/check_rules/dead_assignment_collector.rb
|
|
451
455
|
- lib/rigor/analysis/check_rules/dead_version_guard_arms.rb
|
|
@@ -455,10 +459,12 @@ files:
|
|
|
455
459
|
- lib/rigor/analysis/check_rules/ivar_write_collector.rb
|
|
456
460
|
- lib/rigor/analysis/check_rules/lexical_method_sites.rb
|
|
457
461
|
- lib/rigor/analysis/check_rules/main_pass_collector.rb
|
|
462
|
+
- lib/rigor/analysis/check_rules/plugin_api_surface.rb
|
|
458
463
|
- lib/rigor/analysis/check_rules/published_constant_guard.rb
|
|
459
464
|
- lib/rigor/analysis/check_rules/rbs_receiver_surface.rb
|
|
460
465
|
- lib/rigor/analysis/check_rules/rebinding_block_callees.rb
|
|
461
466
|
- lib/rigor/analysis/check_rules/rebinding_block_callees/dispatch.rb
|
|
467
|
+
- lib/rigor/analysis/check_rules/replaced_singleton_defs.rb
|
|
462
468
|
- lib/rigor/analysis/check_rules/return_in_ensure_collector.rb
|
|
463
469
|
- lib/rigor/analysis/check_rules/ruby_deprecations.rb
|
|
464
470
|
- lib/rigor/analysis/check_rules/rule_ids.rb
|
|
@@ -513,8 +519,10 @@ files:
|
|
|
513
519
|
- lib/rigor/analysis/runner/envelope_messages.rb
|
|
514
520
|
- lib/rigor/analysis/runner/pool_coordinator.rb
|
|
515
521
|
- lib/rigor/analysis/runner/project_pre_passes.rb
|
|
522
|
+
- lib/rigor/analysis/runner/run_level_facts.rb
|
|
516
523
|
- lib/rigor/analysis/runner/run_snapshots.rb
|
|
517
524
|
- lib/rigor/analysis/runner/scan_environment.rb
|
|
525
|
+
- lib/rigor/analysis/runner/worker_payload.rb
|
|
518
526
|
- lib/rigor/analysis/self_call_resolution_recorder.rb
|
|
519
527
|
- lib/rigor/analysis/severity_stamp.rb
|
|
520
528
|
- lib/rigor/analysis/shadow_harness.rb
|
|
@@ -551,6 +559,7 @@ files:
|
|
|
551
559
|
- lib/rigor/cli.rb
|
|
552
560
|
- lib/rigor/cli/annotate_command.rb
|
|
553
561
|
- lib/rigor/cli/baseline_command.rb
|
|
562
|
+
- lib/rigor/cli/catalogue.rb
|
|
554
563
|
- lib/rigor/cli/check_command.rb
|
|
555
564
|
- lib/rigor/cli/check_invocation.rb
|
|
556
565
|
- lib/rigor/cli/check_runner_factory.rb
|
|
@@ -574,6 +583,7 @@ files:
|
|
|
574
583
|
- lib/rigor/cli/explain_command.rb
|
|
575
584
|
- lib/rigor/cli/fused_protection_renderer.rb
|
|
576
585
|
- lib/rigor/cli/fused_protection_report.rb
|
|
586
|
+
- lib/rigor/cli/json_document.rb
|
|
577
587
|
- lib/rigor/cli/lens_command.rb
|
|
578
588
|
- lib/rigor/cli/lsp_command.rb
|
|
579
589
|
- lib/rigor/cli/mcp_command.rb
|
|
@@ -660,7 +670,9 @@ files:
|
|
|
660
670
|
- lib/rigor/environment/bundle_sig_discovery.rb
|
|
661
671
|
- lib/rigor/environment/class_registry.rb
|
|
662
672
|
- lib/rigor/environment/constant_type_cache_holder.rb
|
|
673
|
+
- lib/rigor/environment/core_root.rb
|
|
663
674
|
- lib/rigor/environment/default_libraries.rb
|
|
675
|
+
- lib/rigor/environment/deferred_signature_plan.rb
|
|
664
676
|
- lib/rigor/environment/failure_slot.rb
|
|
665
677
|
- lib/rigor/environment/gated_signature_guard.rb
|
|
666
678
|
- lib/rigor/environment/gated_signature_plan.rb
|
|
@@ -670,6 +682,7 @@ files:
|
|
|
670
682
|
- lib/rigor/environment/member_consistency.rb
|
|
671
683
|
- lib/rigor/environment/member_consistency/comparator.rb
|
|
672
684
|
- lib/rigor/environment/missing_gem_constant_index.rb
|
|
685
|
+
- lib/rigor/environment/project_path_gems.rb
|
|
673
686
|
- lib/rigor/environment/rbs_collection_discovery.rb
|
|
674
687
|
- lib/rigor/environment/rbs_coverage_report.rb
|
|
675
688
|
- lib/rigor/environment/rbs_hierarchy.rb
|
|
@@ -679,6 +692,7 @@ files:
|
|
|
679
692
|
- lib/rigor/environment/required_features.rb
|
|
680
693
|
- lib/rigor/environment/ruby_library_roots.rb
|
|
681
694
|
- lib/rigor/environment/source_rbs_synthesis.rb
|
|
695
|
+
- lib/rigor/environment/vendored_signature_plan.rb
|
|
682
696
|
- lib/rigor/flow_contribution.rb
|
|
683
697
|
- lib/rigor/flow_contribution/conflict.rb
|
|
684
698
|
- lib/rigor/flow_contribution/element.rb
|
|
@@ -687,11 +701,17 @@ files:
|
|
|
687
701
|
- lib/rigor/flow_contribution/merger.rb
|
|
688
702
|
- lib/rigor/hashing/xxh3.rb
|
|
689
703
|
- lib/rigor/inference/acceptance.rb
|
|
704
|
+
- lib/rigor/inference/alias_mutation_floor.rb
|
|
705
|
+
- lib/rigor/inference/alias_mutation_floor/foreign_locals.rb
|
|
706
|
+
- lib/rigor/inference/alias_mutation_floor/memos.rb
|
|
707
|
+
- lib/rigor/inference/alias_mutation_floor/reach.rb
|
|
708
|
+
- lib/rigor/inference/alias_mutation_floor/site_collector.rb
|
|
690
709
|
- lib/rigor/inference/anonymous_meta_class.rb
|
|
691
710
|
- lib/rigor/inference/block_auto_splat.rb
|
|
692
711
|
- lib/rigor/inference/block_call_timing.rb
|
|
693
712
|
- lib/rigor/inference/block_parameter_binder.rb
|
|
694
713
|
- lib/rigor/inference/block_repetition.rb
|
|
714
|
+
- lib/rigor/inference/block_run_count.rb
|
|
695
715
|
- lib/rigor/inference/body_fixpoint.rb
|
|
696
716
|
- lib/rigor/inference/budget_trace.rb
|
|
697
717
|
- lib/rigor/inference/builtins/array_catalog.rb
|
|
@@ -716,9 +736,12 @@ files:
|
|
|
716
736
|
- lib/rigor/inference/builtins/struct_catalog.rb
|
|
717
737
|
- lib/rigor/inference/builtins/time_catalog.rb
|
|
718
738
|
- lib/rigor/inference/callee_mutation_chain.rb
|
|
739
|
+
- lib/rigor/inference/callee_write_census.rb
|
|
719
740
|
- lib/rigor/inference/captured_locals.rb
|
|
741
|
+
- lib/rigor/inference/census_foreign_block.rb
|
|
720
742
|
- lib/rigor/inference/clause_widening.rb
|
|
721
743
|
- lib/rigor/inference/closure_escape_analyzer.rb
|
|
744
|
+
- lib/rigor/inference/construction_escape.rb
|
|
722
745
|
- lib/rigor/inference/content_join.rb
|
|
723
746
|
- lib/rigor/inference/coverage_scanner.rb
|
|
724
747
|
- lib/rigor/inference/declaration_walk.rb
|
|
@@ -732,6 +755,8 @@ files:
|
|
|
732
755
|
- lib/rigor/inference/def_return_typer.rb
|
|
733
756
|
- lib/rigor/inference/define_method_block_self.rb
|
|
734
757
|
- lib/rigor/inference/definer_resolution.rb
|
|
758
|
+
- lib/rigor/inference/definers_index.rb
|
|
759
|
+
- lib/rigor/inference/direct_ivar_writes.rb
|
|
735
760
|
- lib/rigor/inference/dynamic_origin.rb
|
|
736
761
|
- lib/rigor/inference/element_read_widening.rb
|
|
737
762
|
- lib/rigor/inference/error_info.rb
|
|
@@ -743,6 +768,7 @@ files:
|
|
|
743
768
|
- lib/rigor/inference/fork_map.rb
|
|
744
769
|
- lib/rigor/inference/fresh_frame_blocks.rb
|
|
745
770
|
- lib/rigor/inference/global_write_census.rb
|
|
771
|
+
- lib/rigor/inference/global_writer_reach.rb
|
|
746
772
|
- lib/rigor/inference/guard_rebinding.rb
|
|
747
773
|
- lib/rigor/inference/hash_lookup_mutation.rb
|
|
748
774
|
- lib/rigor/inference/hkt_body.rb
|
|
@@ -773,21 +799,28 @@ files:
|
|
|
773
799
|
- lib/rigor/inference/match_rebinding/frame.rb
|
|
774
800
|
- lib/rigor/inference/match_rebinding/operands.rb
|
|
775
801
|
- lib/rigor/inference/match_rebinding/self_calls.rb
|
|
802
|
+
- lib/rigor/inference/match_rebinding/yielding_match.rb
|
|
776
803
|
- lib/rigor/inference/method_dispatcher.rb
|
|
777
804
|
- lib/rigor/inference/method_dispatcher/alias_strict_nominals.rb
|
|
805
|
+
- lib/rigor/inference/method_dispatcher/argument_distribution.rb
|
|
778
806
|
- lib/rigor/inference/method_dispatcher/argument_nodes.rb
|
|
779
807
|
- lib/rigor/inference/method_dispatcher/arithmetic_sequence_elements.rb
|
|
780
808
|
- lib/rigor/inference/method_dispatcher/array_to_h_folding.rb
|
|
781
809
|
- lib/rigor/inference/method_dispatcher/block_folding.rb
|
|
782
810
|
- lib/rigor/inference/method_dispatcher/call_context.rb
|
|
783
811
|
- lib/rigor/inference/method_dispatcher/cgi_folding.rb
|
|
812
|
+
- lib/rigor/inference/method_dispatcher/class_keyed_block_params.rb
|
|
784
813
|
- lib/rigor/inference/method_dispatcher/constant_folding.rb
|
|
814
|
+
- lib/rigor/inference/method_dispatcher/contested_overloads.rb
|
|
815
|
+
- lib/rigor/inference/method_dispatcher/core_enumerable_receiver.rb
|
|
785
816
|
- lib/rigor/inference/method_dispatcher/data_folding.rb
|
|
817
|
+
- lib/rigor/inference/method_dispatcher/declared_constructor.rb
|
|
786
818
|
- lib/rigor/inference/method_dispatcher/facet_distribution.rb
|
|
787
819
|
- lib/rigor/inference/method_dispatcher/file_folding.rb
|
|
788
820
|
- lib/rigor/inference/method_dispatcher/hash_transform_keys_folding.rb
|
|
789
821
|
- lib/rigor/inference/method_dispatcher/imprecise_argument.rb
|
|
790
822
|
- lib/rigor/inference/method_dispatcher/integer_step_block_params.rb
|
|
823
|
+
- lib/rigor/inference/method_dispatcher/interface_shape.rb
|
|
791
824
|
- lib/rigor/inference/method_dispatcher/iterator_dispatch.rb
|
|
792
825
|
- lib/rigor/inference/method_dispatcher/json_folding.rb
|
|
793
826
|
- lib/rigor/inference/method_dispatcher/kernel_dispatch.rb
|
|
@@ -797,6 +830,7 @@ files:
|
|
|
797
830
|
- lib/rigor/inference/method_dispatcher/math_folding.rb
|
|
798
831
|
- lib/rigor/inference/method_dispatcher/member_shape_projection.rb
|
|
799
832
|
- lib/rigor/inference/method_dispatcher/method_folding.rb
|
|
833
|
+
- lib/rigor/inference/method_dispatcher/no_match_fallback.rb
|
|
800
834
|
- lib/rigor/inference/method_dispatcher/optional_count.rb
|
|
801
835
|
- lib/rigor/inference/method_dispatcher/overload_selector.rb
|
|
802
836
|
- lib/rigor/inference/method_dispatcher/process_folding.rb
|
|
@@ -812,6 +846,7 @@ files:
|
|
|
812
846
|
- lib/rigor/inference/method_dispatcher/shellwords_folding.rb
|
|
813
847
|
- lib/rigor/inference/method_dispatcher/singleton_folding.rb
|
|
814
848
|
- lib/rigor/inference/method_dispatcher/singleton_mixin_dispatch.rb
|
|
849
|
+
- lib/rigor/inference/method_dispatcher/singleton_type_params.rb
|
|
815
850
|
- lib/rigor/inference/method_dispatcher/splat_arity.rb
|
|
816
851
|
- lib/rigor/inference/method_dispatcher/struct_folding.rb
|
|
817
852
|
- lib/rigor/inference/method_dispatcher/struct_materialization.rb
|
|
@@ -831,6 +866,7 @@ files:
|
|
|
831
866
|
- lib/rigor/inference/operand_walk.rb
|
|
832
867
|
- lib/rigor/inference/optimistic_origin.rb
|
|
833
868
|
- lib/rigor/inference/origin_lookup.rb
|
|
869
|
+
- lib/rigor/inference/out_buffer_mutation.rb
|
|
834
870
|
- lib/rigor/inference/parameter_inference_collector.rb
|
|
835
871
|
- lib/rigor/inference/pre_eval_constants.rb
|
|
836
872
|
- lib/rigor/inference/precision_scanner.rb
|
|
@@ -847,6 +883,8 @@ files:
|
|
|
847
883
|
- lib/rigor/inference/rbs_type_translator.rb
|
|
848
884
|
- lib/rigor/inference/receiver_alias.rb
|
|
849
885
|
- lib/rigor/inference/receiver_blind_block.rb
|
|
886
|
+
- lib/rigor/inference/receiver_writer_call.rb
|
|
887
|
+
- lib/rigor/inference/recursion_rebinding.rb
|
|
850
888
|
- lib/rigor/inference/refine_census.rb
|
|
851
889
|
- lib/rigor/inference/refine_self.rb
|
|
852
890
|
- lib/rigor/inference/refined_dispatch.rb
|
|
@@ -855,21 +893,29 @@ files:
|
|
|
855
893
|
- lib/rigor/inference/refined_dispatch/own_method.rb
|
|
856
894
|
- lib/rigor/inference/refinement_mutation.rb
|
|
857
895
|
- lib/rigor/inference/reflective_ivar_write.rb
|
|
896
|
+
- lib/rigor/inference/remover_holder_scan.rb
|
|
897
|
+
- lib/rigor/inference/remover_narrowing.rb
|
|
858
898
|
- lib/rigor/inference/repeated_or_writes.rb
|
|
859
899
|
- lib/rigor/inference/return_barrier.rb
|
|
860
900
|
- lib/rigor/inference/rewrite_mutation.rb
|
|
861
901
|
- lib/rigor/inference/scope_indexer.rb
|
|
862
902
|
- lib/rigor/inference/scope_indexer/certainty.rb
|
|
863
903
|
- lib/rigor/inference/scope_indexer/class_cvars_collector.rb
|
|
904
|
+
- lib/rigor/inference/scope_indexer/constant_ivar_value.rb
|
|
864
905
|
- lib/rigor/inference/scope_indexer/declared_ivar_types.rb
|
|
865
906
|
- lib/rigor/inference/scope_indexer/declared_param_writes.rb
|
|
866
907
|
- lib/rigor/inference/scope_indexer/def_nestings_collector.rb
|
|
908
|
+
- lib/rigor/inference/scope_indexer/derived_param_value.rb
|
|
909
|
+
- lib/rigor/inference/scope_indexer/empty_seed.rb
|
|
910
|
+
- lib/rigor/inference/scope_indexer/ivar_contributions.rb
|
|
867
911
|
- lib/rigor/inference/scope_indexer/layered_def_nestings.rb
|
|
868
912
|
- lib/rigor/inference/scope_indexer/member_layouts_collector.rb
|
|
869
913
|
- lib/rigor/inference/scope_indexer/mixin_accumulator.rb
|
|
870
914
|
- lib/rigor/inference/scope_indexer/superclasses_collector.rb
|
|
871
915
|
- lib/rigor/inference/scope_indexer/unseen_ivar_writers.rb
|
|
872
916
|
- lib/rigor/inference/self_call_ivar_writes.rb
|
|
917
|
+
- lib/rigor/inference/self_preserving_block.rb
|
|
918
|
+
- lib/rigor/inference/set_mutation.rb
|
|
873
919
|
- lib/rigor/inference/singleton_external_ahead.rb
|
|
874
920
|
- lib/rigor/inference/singleton_hook_decline.rb
|
|
875
921
|
- lib/rigor/inference/singleton_object_constant.rb
|
|
@@ -881,6 +927,7 @@ files:
|
|
|
881
927
|
- lib/rigor/inference/synthetic_method_index.rb
|
|
882
928
|
- lib/rigor/inference/synthetic_method_scanner.rb
|
|
883
929
|
- lib/rigor/inference/synthetic_method_scanner/project_members.rb
|
|
930
|
+
- lib/rigor/inference/toplevel_def_census.rb
|
|
884
931
|
- lib/rigor/inference/unknown_store_widening.rb
|
|
885
932
|
- lib/rigor/inference/unthreaded_rebinds.rb
|
|
886
933
|
- lib/rigor/inference/untyped_rejoin.rb
|
|
@@ -891,6 +938,7 @@ files:
|
|
|
891
938
|
- lib/rigor/language_server/buffer_resolution.rb
|
|
892
939
|
- lib/rigor/language_server/buffer_table.rb
|
|
893
940
|
- lib/rigor/language_server/completion_provider.rb
|
|
941
|
+
- lib/rigor/language_server/config_warning_announcer.rb
|
|
894
942
|
- lib/rigor/language_server/debouncer.rb
|
|
895
943
|
- lib/rigor/language_server/diagnostic_publisher.rb
|
|
896
944
|
- lib/rigor/language_server/document_symbol_provider.rb
|
|
@@ -908,6 +956,10 @@ files:
|
|
|
908
956
|
- lib/rigor/language_server/uri.rb
|
|
909
957
|
- lib/rigor/lens.rb
|
|
910
958
|
- lib/rigor/lens/anchor.rb
|
|
959
|
+
- lib/rigor/lens/claims.rb
|
|
960
|
+
- lib/rigor/lens/claims/comparison.rb
|
|
961
|
+
- lib/rigor/lens/claims/request.rb
|
|
962
|
+
- lib/rigor/lens/claims/type_reader.rb
|
|
911
963
|
- lib/rigor/lens/contract_reader.rb
|
|
912
964
|
- lib/rigor/lens/document.rb
|
|
913
965
|
- lib/rigor/lens/file_reader.rb
|
|
@@ -916,9 +968,11 @@ files:
|
|
|
916
968
|
- lib/rigor/lens/plugins.rb
|
|
917
969
|
- lib/rigor/lens/run.rb
|
|
918
970
|
- lib/rigor/lens/slot.rb
|
|
971
|
+
- lib/rigor/library_probe.rb
|
|
919
972
|
- lib/rigor/mcp.rb
|
|
920
973
|
- lib/rigor/mcp/loop.rb
|
|
921
974
|
- lib/rigor/mcp/server.rb
|
|
975
|
+
- lib/rigor/memo_audit.rb
|
|
922
976
|
- lib/rigor/plugin.rb
|
|
923
977
|
- lib/rigor/plugin/access_denied_error.rb
|
|
924
978
|
- lib/rigor/plugin/additional_initializer.rb
|
|
@@ -974,7 +1028,11 @@ files:
|
|
|
974
1028
|
- lib/rigor/reflection.rb
|
|
975
1029
|
- lib/rigor/reflection/constant_ancestors.rb
|
|
976
1030
|
- lib/rigor/reflection/constant_path.rb
|
|
1031
|
+
- lib/rigor/reflection/declaration_collectors.rb
|
|
1032
|
+
- lib/rigor/reflection/declarations.rb
|
|
1033
|
+
- lib/rigor/reflection/project_method.rb
|
|
977
1034
|
- lib/rigor/rooted_glob.rb
|
|
1035
|
+
- lib/rigor/run_scoped_slots.rb
|
|
978
1036
|
- lib/rigor/runtime/jit.rb
|
|
979
1037
|
- lib/rigor/scope.rb
|
|
980
1038
|
- lib/rigor/scope/discovery_index.rb
|
|
@@ -982,10 +1040,12 @@ files:
|
|
|
982
1040
|
- lib/rigor/scope/resolution_chain/relevance.rb
|
|
983
1041
|
- lib/rigor/sig_gen.rb
|
|
984
1042
|
- lib/rigor/sig_gen/alias_index.rb
|
|
1043
|
+
- lib/rigor/sig_gen/bot_proposal_guard.rb
|
|
985
1044
|
- lib/rigor/sig_gen/classification.rb
|
|
986
1045
|
- lib/rigor/sig_gen/declaration_equivalence.rb
|
|
987
1046
|
- lib/rigor/sig_gen/effect_annotation.rb
|
|
988
1047
|
- lib/rigor/sig_gen/generator.rb
|
|
1048
|
+
- lib/rigor/sig_gen/generic_header_scan.rb
|
|
989
1049
|
- lib/rigor/sig_gen/inline_declarations.rb
|
|
990
1050
|
- lib/rigor/sig_gen/layout_index.rb
|
|
991
1051
|
- lib/rigor/sig_gen/meta_class_shape.rb
|
|
@@ -993,11 +1053,13 @@ files:
|
|
|
993
1053
|
- lib/rigor/sig_gen/observation_collector.rb
|
|
994
1054
|
- lib/rigor/sig_gen/observed_call.rb
|
|
995
1055
|
- lib/rigor/sig_gen/path_mapper.rb
|
|
1056
|
+
- lib/rigor/sig_gen/platform_guarded_files.rb
|
|
996
1057
|
- lib/rigor/sig_gen/rbs_validity.rb
|
|
997
1058
|
- lib/rigor/sig_gen/renderer.rb
|
|
998
1059
|
- lib/rigor/sig_gen/skip_reason_catalog.rb
|
|
999
1060
|
- lib/rigor/sig_gen/superclass_spelling.rb
|
|
1000
1061
|
- lib/rigor/sig_gen/type_elaborator.rb
|
|
1062
|
+
- lib/rigor/sig_gen/type_name_qualification.rb
|
|
1001
1063
|
- lib/rigor/sig_gen/write_reporter.rb
|
|
1002
1064
|
- lib/rigor/sig_gen/write_result.rb
|
|
1003
1065
|
- lib/rigor/sig_gen/writer.rb
|
|
@@ -1005,6 +1067,7 @@ files:
|
|
|
1005
1067
|
- lib/rigor/source.rb
|
|
1006
1068
|
- lib/rigor/source/alias_names.rb
|
|
1007
1069
|
- lib/rigor/source/constant_path.rb
|
|
1070
|
+
- lib/rigor/source/forwardable_delegators.rb
|
|
1008
1071
|
- lib/rigor/source/literals.rb
|
|
1009
1072
|
- lib/rigor/source/node_children.rb
|
|
1010
1073
|
- lib/rigor/source/node_locator.rb
|
|
@@ -1032,6 +1095,7 @@ files:
|
|
|
1032
1095
|
- lib/rigor/type/float_range.rb
|
|
1033
1096
|
- lib/rigor/type/hash_shape.rb
|
|
1034
1097
|
- lib/rigor/type/integer_range.rb
|
|
1098
|
+
- lib/rigor/type/interface.rb
|
|
1035
1099
|
- lib/rigor/type/intersection.rb
|
|
1036
1100
|
- lib/rigor/type/maybe.rb
|
|
1037
1101
|
- lib/rigor/type/nominal.rb
|
|
@@ -1055,6 +1119,10 @@ files:
|
|
|
1055
1119
|
- lib/rigor/type_node/string_literal.rb
|
|
1056
1120
|
- lib/rigor/type_node/symbol_literal.rb
|
|
1057
1121
|
- lib/rigor/type_node/union.rb
|
|
1122
|
+
- lib/rigor/type_of_memo.rb
|
|
1123
|
+
- lib/rigor/type_of_memo/serving.rb
|
|
1124
|
+
- lib/rigor/type_of_memo/stats.rb
|
|
1125
|
+
- lib/rigor/typing_state.rb
|
|
1058
1126
|
- lib/rigor/value_semantics.rb
|
|
1059
1127
|
- lib/rigor/version.rb
|
|
1060
1128
|
- lib/rigortype.rb
|
|
@@ -1125,6 +1193,7 @@ files:
|
|
|
1125
1193
|
- plugins/rigor-activesupport-core-ext/lib/rigor-activesupport-core-ext.rb
|
|
1126
1194
|
- plugins/rigor-activesupport-core-ext/lib/rigor/plugin/activesupport_core_ext.rb
|
|
1127
1195
|
- plugins/rigor-activesupport-core-ext/lib/rigor/plugin/activesupport_core_ext/effects.rb
|
|
1196
|
+
- plugins/rigor-activesupport-core-ext/lib/rigor/plugin/activesupport_core_ext/symbolize_keys.rb
|
|
1128
1197
|
- plugins/rigor-activesupport-core-ext/sig/active_support/core_ext.rbs
|
|
1129
1198
|
- plugins/rigor-alba/lib/rigor-alba.rb
|
|
1130
1199
|
- plugins/rigor-alba/lib/rigor/plugin/alba.rb
|
|
@@ -1269,6 +1338,7 @@ files:
|
|
|
1269
1338
|
- sig/rigor/analysis/baseline.rbs
|
|
1270
1339
|
- sig/rigor/analysis/check_rules/always_truthy_condition_collector.rbs
|
|
1271
1340
|
- sig/rigor/analysis/check_rules/dead_assignment_collector.rbs
|
|
1341
|
+
- sig/rigor/analysis/check_rules/rule_walk.rbs
|
|
1272
1342
|
- sig/rigor/analysis/dependency_source_inference/gem_resolver.rbs
|
|
1273
1343
|
- sig/rigor/analysis/dependency_source_inference/index.rbs
|
|
1274
1344
|
- sig/rigor/analysis/fact_store.rbs
|
|
@@ -1276,6 +1346,7 @@ files:
|
|
|
1276
1346
|
- sig/rigor/analysis/reachability/scan_cache.rbs
|
|
1277
1347
|
- sig/rigor/ast.rbs
|
|
1278
1348
|
- sig/rigor/cache.rbs
|
|
1349
|
+
- sig/rigor/cache/descriptor.rbs
|
|
1279
1350
|
- sig/rigor/cli/diff_command.rbs
|
|
1280
1351
|
- sig/rigor/cli/explain_command.rbs
|
|
1281
1352
|
- sig/rigor/cli/sig_gen_command.rbs
|
|
@@ -1309,10 +1380,12 @@ files:
|
|
|
1309
1380
|
- sig/rigor/plugin/effect_edge.rbs
|
|
1310
1381
|
- sig/rigor/plugin/effect_entry_points.rbs
|
|
1311
1382
|
- sig/rigor/plugin/fact_store.rbs
|
|
1383
|
+
- sig/rigor/plugin/interfaces.rbs
|
|
1312
1384
|
- sig/rigor/plugin/io_boundary.rbs
|
|
1313
1385
|
- sig/rigor/plugin/load_error.rbs
|
|
1314
1386
|
- sig/rigor/plugin/loader.rbs
|
|
1315
1387
|
- sig/rigor/plugin/manifest.rbs
|
|
1388
|
+
- sig/rigor/plugin/node_context.rbs
|
|
1316
1389
|
- sig/rigor/plugin/protocol_contract.rbs
|
|
1317
1390
|
- sig/rigor/plugin/registry.rbs
|
|
1318
1391
|
- sig/rigor/plugin/services.rbs
|
|
@@ -1353,6 +1426,12 @@ files:
|
|
|
1353
1426
|
- skills/rigor-project-init/references/05-jit-performance.md
|
|
1354
1427
|
- skills/rigor-project-init/references/06-agent-contract.md
|
|
1355
1428
|
- skills/rigor-protection-uplift/SKILL.md
|
|
1429
|
+
- skills/rigor-rbs-contract/SKILL.md
|
|
1430
|
+
- skills/rigor-rbs-contract/references/01-finding-candidates.md
|
|
1431
|
+
- skills/rigor-rbs-contract/references/02-contract-rules.md
|
|
1432
|
+
- skills/rigor-rbs-contract/references/03-target-own-code.md
|
|
1433
|
+
- skills/rigor-rbs-contract/references/04-target-gem-rbs-collection.md
|
|
1434
|
+
- skills/rigor-rbs-contract/references/05-declaration-mutants.md
|
|
1356
1435
|
- skills/rigor-rbs-setup/SKILL.md
|
|
1357
1436
|
- skills/rigor-type-oracle/SKILL.md
|
|
1358
1437
|
- skills/rigor-type-oracle/references/01-oracle-commands.md
|
|
@@ -1436,7 +1515,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
1436
1515
|
- !ruby/object:Gem::Version
|
|
1437
1516
|
version: '0'
|
|
1438
1517
|
requirements: []
|
|
1439
|
-
rubygems_version:
|
|
1518
|
+
rubygems_version: 3.7.2
|
|
1440
1519
|
specification_version: 4
|
|
1441
1520
|
summary: Inference-first static analysis for Ruby.
|
|
1442
1521
|
test_files: []
|