rigortype 0.3.1 → 0.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (101) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +10 -10
  3. data/data/core_overlay/pathname.rbs +5 -0
  4. data/data/core_overlay/resolv.rbs +31 -0
  5. data/data/core_overlay/string_scanner.rbs +5 -0
  6. data/data/gem_overlay/activesupport/core_ext.rbs +10 -6
  7. data/data/vendored_gem_sigs/bundler/bundler.rbs +39 -27
  8. data/data/vendored_gem_sigs/cgi/cgi_extras.rbs +6 -0
  9. data/data/vendored_gem_sigs/prism/prism_supplement.rbs +7 -0
  10. data/data/vendored_gem_sigs/racc/racc.rbs +67 -0
  11. data/data/vendored_gem_sigs/rubygems/rubygems_extras.rbs +20 -9
  12. data/docs/manual/02-cli-reference.md +71 -11
  13. data/docs/manual/03-configuration.md +16 -1
  14. data/docs/manual/12-caching.md +17 -5
  15. data/docs/manual/15-type-protection-coverage.md +122 -1
  16. data/docs/manual/plugins/rigor-rbs-inline.md +22 -0
  17. data/lib/rigor/analysis/check_rules/rule_ids.rb +1 -0
  18. data/lib/rigor/analysis/check_rules.rb +45 -6
  19. data/lib/rigor/analysis/incremental_session.rb +156 -11
  20. data/lib/rigor/analysis/plugin_fact_fingerprint.rb +14 -0
  21. data/lib/rigor/analysis/run_cache_key.rb +17 -1
  22. data/lib/rigor/analysis/runner/buffer_pool_dispatcher.rb +201 -0
  23. data/lib/rigor/analysis/runner/diagnostic_aggregator.rb +28 -10
  24. data/lib/rigor/analysis/runner/pool_coordinator.rb +7 -10
  25. data/lib/rigor/analysis/runner/project_pre_passes.rb +3 -1
  26. data/lib/rigor/analysis/runner.rb +78 -7
  27. data/lib/rigor/bleeding_edge.rb +132 -7
  28. data/lib/rigor/cache/descriptor.rb +6 -1
  29. data/lib/rigor/cache/engine_source.rb +162 -0
  30. data/lib/rigor/cache/incremental_snapshot.rb +87 -18
  31. data/lib/rigor/cli/check_command.rb +49 -28
  32. data/lib/rigor/cli/coverage_command.rb +15 -2
  33. data/lib/rigor/cli/coverage_mutation.rb +242 -11
  34. data/lib/rigor/cli/fused_protection_renderer.rb +10 -0
  35. data/lib/rigor/cli/fused_protection_report.rb +12 -3
  36. data/lib/rigor/cli/mutation_fork_scan.rb +64 -0
  37. data/lib/rigor/cli/mutation_protection_renderer.rb +12 -0
  38. data/lib/rigor/cli/mutation_protection_report.rb +26 -5
  39. data/lib/rigor/cli/protection_renderer.rb +13 -0
  40. data/lib/rigor/cli/protection_report.rb +11 -3
  41. data/lib/rigor/cli/show_bleedingedge_command.rb +17 -4
  42. data/lib/rigor/cli/sig_gen_command.rb +5 -4
  43. data/lib/rigor/configuration.rb +45 -6
  44. data/lib/rigor/environment/bundle_sig_discovery.rb +2 -1
  45. data/lib/rigor/environment/rbs_coverage_report.rb +1 -1
  46. data/lib/rigor/environment/rbs_loader.rb +434 -75
  47. data/lib/rigor/environment.rb +28 -13
  48. data/lib/rigor/inference/expression_typer.rb +15 -0
  49. data/lib/rigor/inference/fork_map.rb +9 -0
  50. data/lib/rigor/inference/method_dispatcher/constant_folding.rb +50 -2
  51. data/lib/rigor/inference/method_dispatcher/data_folding.rb +1 -1
  52. data/lib/rigor/inference/method_dispatcher/member_shape_projection.rb +35 -1
  53. data/lib/rigor/inference/method_dispatcher/rbs_dispatch.rb +16 -0
  54. data/lib/rigor/inference/method_dispatcher/regexp_folding.rb +64 -5
  55. data/lib/rigor/inference/method_dispatcher/shape_dispatch.rb +137 -9
  56. data/lib/rigor/inference/method_dispatcher/struct_folding.rb +3 -2
  57. data/lib/rigor/inference/method_dispatcher/uri_folding.rb +124 -1
  58. data/lib/rigor/inference/mutation_widening.rb +30 -25
  59. data/lib/rigor/inference/narrowing.rb +3 -1
  60. data/lib/rigor/inference/optimistic_origin.rb +58 -0
  61. data/lib/rigor/inference/protection_scanner.rb +18 -2
  62. data/lib/rigor/inference/receiver_alias.rb +57 -0
  63. data/lib/rigor/inference/scope_indexer.rb +78 -27
  64. data/lib/rigor/inference/statement_evaluator.rb +40 -2
  65. data/lib/rigor/language_server/buffer_table.rb +22 -0
  66. data/lib/rigor/language_server/diagnostic_publisher.rb +203 -4
  67. data/lib/rigor/language_server/project_context.rb +45 -0
  68. data/lib/rigor/language_server/publish_batcher.rb +82 -0
  69. data/lib/rigor/language_server/server.rb +20 -1
  70. data/lib/rigor/language_server.rb +1 -0
  71. data/lib/rigor/plugin/source_rbs_synthesis_reporter.rb +9 -3
  72. data/lib/rigor/protection/closure_kill_oracle.rb +171 -0
  73. data/lib/rigor/protection/dependency_closure.rb +59 -0
  74. data/lib/rigor/protection/diagnostic_oracle.rb +12 -8
  75. data/lib/rigor/protection/discovery_seed.rb +116 -0
  76. data/lib/rigor/protection/kill_signature.rb +31 -0
  77. data/lib/rigor/protection/mutation_cache.rb +355 -0
  78. data/lib/rigor/protection/mutation_scanner.rb +55 -11
  79. data/lib/rigor/protection/mutator.rb +26 -4
  80. data/lib/rigor/runtime/jit.rb +63 -1
  81. data/lib/rigor/scope/discovery_index.rb +9 -0
  82. data/lib/rigor/scope.rb +52 -8
  83. data/lib/rigor/sig_gen/generator.rb +130 -31
  84. data/lib/rigor/sig_gen/layout_index.rb +6 -0
  85. data/lib/rigor/sig_gen/meta_class_shape.rb +84 -0
  86. data/lib/rigor/sig_gen/renderer.rb +20 -1
  87. data/lib/rigor/sig_gen/write_result.rb +6 -4
  88. data/lib/rigor/sig_gen/writer.rb +12 -0
  89. data/lib/rigor/sig_gen.rb +1 -0
  90. data/lib/rigor/version.rb +1 -1
  91. data/plugins/rigor-activesupport-core-ext/sig/active_support/core_ext.rbs +6 -6
  92. data/plugins/rigor-dry-schema/lib/rigor/plugin/dry_schema/result_shape.rb +146 -0
  93. data/plugins/rigor-dry-schema/lib/rigor/plugin/dry_schema/schema_scanner.rb +177 -12
  94. data/plugins/rigor-dry-schema/lib/rigor/plugin/dry_schema.rb +74 -7
  95. data/plugins/rigor-dry-validation/lib/rigor/plugin/dry_validation/contract_scanner.rb +257 -0
  96. data/plugins/rigor-dry-validation/lib/rigor/plugin/dry_validation/params_shape.rb +69 -0
  97. data/plugins/rigor-dry-validation/lib/rigor/plugin/dry_validation.rb +87 -11
  98. data/plugins/rigor-rbs-inline/lib/rigor/plugin/rbs_inline.rb +34 -4
  99. data/sig/rigor/inference/void_origin.rbs +6 -3
  100. data/sig/rigor/scope.rbs +8 -0
  101. metadata +17 -1
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rigortype
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.1
4
+ version: 0.3.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rigor contributors
@@ -290,6 +290,7 @@ files:
290
290
  - data/core_overlay/numeric.rbs
291
291
  - data/core_overlay/pathname.rbs
292
292
  - data/core_overlay/psych.rbs
293
+ - data/core_overlay/resolv.rbs
293
294
  - data/core_overlay/string_scanner.rbs
294
295
  - data/gem_overlay/activesupport/core_ext.rbs
295
296
  - data/vendored_gem_sigs/ast/ast.rbs
@@ -306,6 +307,7 @@ files:
306
307
  - data/vendored_gem_sigs/nokogiri/nokogiri_html5.rbs
307
308
  - data/vendored_gem_sigs/pg/pg.rbs
308
309
  - data/vendored_gem_sigs/prism/prism_supplement.rbs
310
+ - data/vendored_gem_sigs/racc/racc.rbs
309
311
  - data/vendored_gem_sigs/redis/errors.rbs
310
312
  - data/vendored_gem_sigs/redis/future.rbs
311
313
  - data/vendored_gem_sigs/redis/redis.rbs
@@ -428,6 +430,7 @@ files:
428
430
  - lib/rigor/analysis/run_cache_probe.rb
429
431
  - lib/rigor/analysis/run_stats.rb
430
432
  - lib/rigor/analysis/runner.rb
433
+ - lib/rigor/analysis/runner/buffer_pool_dispatcher.rb
431
434
  - lib/rigor/analysis/runner/diagnostic_aggregator.rb
432
435
  - lib/rigor/analysis/runner/pool_coordinator.rb
433
436
  - lib/rigor/analysis/runner/project_pre_passes.rb
@@ -444,6 +447,7 @@ files:
444
447
  - lib/rigor/builtins/regex_refinement.rb
445
448
  - lib/rigor/builtins/static_return_refinements.rb
446
449
  - lib/rigor/cache/descriptor.rb
450
+ - lib/rigor/cache/engine_source.rb
447
451
  - lib/rigor/cache/file_digest.rb
448
452
  - lib/rigor/cache/incremental_snapshot.rb
449
453
  - lib/rigor/cache/rbs_cache_producer.rb
@@ -477,6 +481,7 @@ files:
477
481
  - lib/rigor/cli/fused_protection_report.rb
478
482
  - lib/rigor/cli/lsp_command.rb
479
483
  - lib/rigor/cli/mcp_command.rb
484
+ - lib/rigor/cli/mutation_fork_scan.rb
480
485
  - lib/rigor/cli/mutation_protection_renderer.rb
481
486
  - lib/rigor/cli/mutation_protection_report.rb
482
487
  - lib/rigor/cli/options.rb
@@ -599,6 +604,7 @@ files:
599
604
  - lib/rigor/inference/multi_target_binder.rb
600
605
  - lib/rigor/inference/mutation_widening.rb
601
606
  - lib/rigor/inference/narrowing.rb
607
+ - lib/rigor/inference/optimistic_origin.rb
602
608
  - lib/rigor/inference/origin_lookup.rb
603
609
  - lib/rigor/inference/parameter_inference_collector.rb
604
610
  - lib/rigor/inference/precision_scanner.rb
@@ -606,6 +612,7 @@ files:
606
612
  - lib/rigor/inference/project_patched_scanner.rb
607
613
  - lib/rigor/inference/protection_scanner.rb
608
614
  - lib/rigor/inference/rbs_type_translator.rb
615
+ - lib/rigor/inference/receiver_alias.rb
609
616
  - lib/rigor/inference/scope_indexer.rb
610
617
  - lib/rigor/inference/statement_evaluator.rb
611
618
  - lib/rigor/inference/struct_fold_safety.rb
@@ -627,6 +634,7 @@ files:
627
634
  - lib/rigor/language_server/incremental_sync.rb
628
635
  - lib/rigor/language_server/loop.rb
629
636
  - lib/rigor/language_server/project_context.rb
637
+ - lib/rigor/language_server/publish_batcher.rb
630
638
  - lib/rigor/language_server/selection_range_provider.rb
631
639
  - lib/rigor/language_server/server.rb
632
640
  - lib/rigor/language_server/signature_help_provider.rb
@@ -661,7 +669,12 @@ files:
661
669
  - lib/rigor/plugin/source_rbs_synthesis_reporter.rb
662
670
  - lib/rigor/plugin/trust_policy.rb
663
671
  - lib/rigor/plugin/type_node_resolver.rb
672
+ - lib/rigor/protection/closure_kill_oracle.rb
673
+ - lib/rigor/protection/dependency_closure.rb
664
674
  - lib/rigor/protection/diagnostic_oracle.rb
675
+ - lib/rigor/protection/discovery_seed.rb
676
+ - lib/rigor/protection/kill_signature.rb
677
+ - lib/rigor/protection/mutation_cache.rb
665
678
  - lib/rigor/protection/mutation_scanner.rb
666
679
  - lib/rigor/protection/mutator.rb
667
680
  - lib/rigor/protection/test_suite_oracle.rb
@@ -677,6 +690,7 @@ files:
677
690
  - lib/rigor/sig_gen/classification.rb
678
691
  - lib/rigor/sig_gen/generator.rb
679
692
  - lib/rigor/sig_gen/layout_index.rb
693
+ - lib/rigor/sig_gen/meta_class_shape.rb
680
694
  - lib/rigor/sig_gen/method_candidate.rb
681
695
  - lib/rigor/sig_gen/observation_collector.rb
682
696
  - lib/rigor/sig_gen/observed_call.rb
@@ -776,6 +790,7 @@ files:
776
790
  - plugins/rigor-devise/lib/rigor/plugin/devise.rb
777
791
  - plugins/rigor-dry-schema/lib/rigor-dry-schema.rb
778
792
  - plugins/rigor-dry-schema/lib/rigor/plugin/dry_schema.rb
793
+ - plugins/rigor-dry-schema/lib/rigor/plugin/dry_schema/result_shape.rb
779
794
  - plugins/rigor-dry-schema/lib/rigor/plugin/dry_schema/schema_scanner.rb
780
795
  - plugins/rigor-dry-struct/lib/rigor-dry-struct.rb
781
796
  - plugins/rigor-dry-struct/lib/rigor/plugin/dry_struct.rb
@@ -785,6 +800,7 @@ files:
785
800
  - plugins/rigor-dry-validation/lib/rigor-dry-validation.rb
786
801
  - plugins/rigor-dry-validation/lib/rigor/plugin/dry_validation.rb
787
802
  - plugins/rigor-dry-validation/lib/rigor/plugin/dry_validation/contract_scanner.rb
803
+ - plugins/rigor-dry-validation/lib/rigor/plugin/dry_validation/params_shape.rb
788
804
  - plugins/rigor-dry-validation/sig/dry_validation.rbs
789
805
  - plugins/rigor-factorybot/lib/rigor-factorybot.rb
790
806
  - plugins/rigor-factorybot/lib/rigor/plugin/factorybot.rb