rigortype 0.1.4 → 0.1.5

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 (63) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +40 -13
  3. data/lib/rigor/analysis/fact_store.rb +15 -3
  4. data/lib/rigor/analysis/result.rb +11 -3
  5. data/lib/rigor/analysis/run_stats.rb +193 -0
  6. data/lib/rigor/analysis/runner.rb +387 -12
  7. data/lib/rigor/analysis/worker_session.rb +327 -0
  8. data/lib/rigor/builtins/imported_refinements.rb +6 -2
  9. data/lib/rigor/builtins/regex_refinement.rb +17 -12
  10. data/lib/rigor/cache/rbs_descriptor.rb +3 -1
  11. data/lib/rigor/cache/store.rb +40 -7
  12. data/lib/rigor/cli.rb +52 -2
  13. data/lib/rigor/configuration.rb +131 -6
  14. data/lib/rigor/environment/bundle_sig_discovery.rb +198 -0
  15. data/lib/rigor/environment/class_registry.rb +12 -3
  16. data/lib/rigor/environment/lockfile_resolver.rb +125 -0
  17. data/lib/rigor/environment/rbs_collection_discovery.rb +126 -0
  18. data/lib/rigor/environment/rbs_coverage_report.rb +112 -0
  19. data/lib/rigor/environment/rbs_loader.rb +194 -6
  20. data/lib/rigor/environment/reflection.rb +152 -0
  21. data/lib/rigor/environment.rb +78 -6
  22. data/lib/rigor/inference/acceptance.rb +35 -1
  23. data/lib/rigor/inference/builtins/method_catalog.rb +12 -5
  24. data/lib/rigor/inference/builtins/numeric_catalog.rb +15 -4
  25. data/lib/rigor/inference/expression_typer.rb +12 -2
  26. data/lib/rigor/inference/macro_block_self_type.rb +96 -0
  27. data/lib/rigor/inference/method_dispatcher/constant_folding.rb +29 -29
  28. data/lib/rigor/inference/method_dispatcher/kernel_dispatch.rb +4 -4
  29. data/lib/rigor/inference/method_dispatcher/method_folding.rb +18 -1
  30. data/lib/rigor/inference/method_dispatcher/overload_selector.rb +1 -1
  31. data/lib/rigor/inference/method_dispatcher/shape_dispatch.rb +46 -40
  32. data/lib/rigor/inference/method_dispatcher.rb +128 -3
  33. data/lib/rigor/inference/method_parameter_binder.rb +21 -11
  34. data/lib/rigor/inference/narrowing.rb +127 -8
  35. data/lib/rigor/inference/synthetic_method.rb +86 -0
  36. data/lib/rigor/inference/synthetic_method_index.rb +82 -0
  37. data/lib/rigor/inference/synthetic_method_scanner.rb +521 -0
  38. data/lib/rigor/plugin/blueprint.rb +60 -0
  39. data/lib/rigor/plugin/loader.rb +3 -1
  40. data/lib/rigor/plugin/macro/block_as_method.rb +131 -0
  41. data/lib/rigor/plugin/macro/external_file.rb +143 -0
  42. data/lib/rigor/plugin/macro/heredoc_template.rb +201 -0
  43. data/lib/rigor/plugin/macro/trait_registry.rb +198 -0
  44. data/lib/rigor/plugin/macro.rb +31 -0
  45. data/lib/rigor/plugin/manifest.rb +78 -7
  46. data/lib/rigor/plugin/registry.rb +32 -2
  47. data/lib/rigor/plugin.rb +1 -0
  48. data/lib/rigor/trinary.rb +15 -11
  49. data/lib/rigor/type/bot.rb +6 -3
  50. data/lib/rigor/type/combinator.rb +12 -1
  51. data/lib/rigor/type/integer_range.rb +7 -7
  52. data/lib/rigor/type/refined.rb +18 -12
  53. data/lib/rigor/type/top.rb +4 -3
  54. data/lib/rigor/type_node/generic.rb +7 -1
  55. data/lib/rigor/type_node/identifier.rb +9 -1
  56. data/lib/rigor/type_node/string_literal.rb +4 -1
  57. data/lib/rigor/version.rb +1 -1
  58. data/sig/rigor/environment.rbs +5 -2
  59. data/sig/rigor/plugin/blueprint.rbs +7 -0
  60. data/sig/rigor/plugin/manifest.rbs +1 -1
  61. data/sig/rigor/plugin/registry.rbs +14 -1
  62. data/sig/rigor.rbs +35 -2
  63. metadata +39 -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.1.4
4
+ version: 0.1.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rigor contributors
@@ -49,6 +49,26 @@ dependencies:
49
49
  - - "<"
50
50
  - !ruby/object:Gem::Version
51
51
  version: '5.0'
52
+ - !ruby/object:Gem::Dependency
53
+ name: parallel_tests
54
+ requirement: !ruby/object:Gem::Requirement
55
+ requirements:
56
+ - - ">="
57
+ - !ruby/object:Gem::Version
58
+ version: '4.0'
59
+ - - "<"
60
+ - !ruby/object:Gem::Version
61
+ version: '6.0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '4.0'
69
+ - - "<"
70
+ - !ruby/object:Gem::Version
71
+ version: '6.0'
52
72
  - !ruby/object:Gem::Dependency
53
73
  name: rake
54
74
  requirement: !ruby/object:Gem::Requirement
@@ -197,7 +217,9 @@ files:
197
217
  - lib/rigor/analysis/fact_store.rb
198
218
  - lib/rigor/analysis/result.rb
199
219
  - lib/rigor/analysis/rule_catalog.rb
220
+ - lib/rigor/analysis/run_stats.rb
200
221
  - lib/rigor/analysis/runner.rb
222
+ - lib/rigor/analysis/worker_session.rb
201
223
  - lib/rigor/ast.rb
202
224
  - lib/rigor/ast/type_node.rb
203
225
  - lib/rigor/builtins/imported_refinements.rb
@@ -225,9 +247,14 @@ files:
225
247
  - lib/rigor/configuration/dependencies.rb
226
248
  - lib/rigor/configuration/severity_profile.rb
227
249
  - lib/rigor/environment.rb
250
+ - lib/rigor/environment/bundle_sig_discovery.rb
228
251
  - lib/rigor/environment/class_registry.rb
252
+ - lib/rigor/environment/lockfile_resolver.rb
253
+ - lib/rigor/environment/rbs_collection_discovery.rb
254
+ - lib/rigor/environment/rbs_coverage_report.rb
229
255
  - lib/rigor/environment/rbs_hierarchy.rb
230
256
  - lib/rigor/environment/rbs_loader.rb
257
+ - lib/rigor/environment/reflection.rb
231
258
  - lib/rigor/flow_contribution.rb
232
259
  - lib/rigor/flow_contribution/conflict.rb
233
260
  - lib/rigor/flow_contribution/element.rb
@@ -261,6 +288,7 @@ files:
261
288
  - lib/rigor/inference/expression_typer.rb
262
289
  - lib/rigor/inference/fallback.rb
263
290
  - lib/rigor/inference/fallback_tracer.rb
291
+ - lib/rigor/inference/macro_block_self_type.rb
264
292
  - lib/rigor/inference/method_dispatcher.rb
265
293
  - lib/rigor/inference/method_dispatcher/block_folding.rb
266
294
  - lib/rigor/inference/method_dispatcher/constant_folding.rb
@@ -278,13 +306,22 @@ files:
278
306
  - lib/rigor/inference/rbs_type_translator.rb
279
307
  - lib/rigor/inference/scope_indexer.rb
280
308
  - lib/rigor/inference/statement_evaluator.rb
309
+ - lib/rigor/inference/synthetic_method.rb
310
+ - lib/rigor/inference/synthetic_method_index.rb
311
+ - lib/rigor/inference/synthetic_method_scanner.rb
281
312
  - lib/rigor/plugin.rb
282
313
  - lib/rigor/plugin/access_denied_error.rb
283
314
  - lib/rigor/plugin/base.rb
315
+ - lib/rigor/plugin/blueprint.rb
284
316
  - lib/rigor/plugin/fact_store.rb
285
317
  - lib/rigor/plugin/io_boundary.rb
286
318
  - lib/rigor/plugin/load_error.rb
287
319
  - lib/rigor/plugin/loader.rb
320
+ - lib/rigor/plugin/macro.rb
321
+ - lib/rigor/plugin/macro/block_as_method.rb
322
+ - lib/rigor/plugin/macro/external_file.rb
323
+ - lib/rigor/plugin/macro/heredoc_template.rb
324
+ - lib/rigor/plugin/macro/trait_registry.rb
288
325
  - lib/rigor/plugin/manifest.rb
289
326
  - lib/rigor/plugin/registry.rb
290
327
  - lib/rigor/plugin/services.rb
@@ -358,6 +395,7 @@ files:
358
395
  - sig/rigor/plugin.rbs
359
396
  - sig/rigor/plugin/access_denied_error.rbs
360
397
  - sig/rigor/plugin/base.rbs
398
+ - sig/rigor/plugin/blueprint.rbs
361
399
  - sig/rigor/plugin/fact_store.rbs
362
400
  - sig/rigor/plugin/io_boundary.rbs
363
401
  - sig/rigor/plugin/load_error.rbs