rigortype 0.1.3 → 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.
- checksums.yaml +4 -4
- data/README.md +154 -33
- data/lib/rigor/analysis/check_rules.rb +10 -18
- data/lib/rigor/analysis/dependency_source_inference/boundary_cross_reporter.rb +75 -0
- data/lib/rigor/analysis/dependency_source_inference/builder.rb +47 -21
- data/lib/rigor/analysis/dependency_source_inference/gem_resolver.rb +1 -1
- data/lib/rigor/analysis/dependency_source_inference/index.rb +32 -3
- data/lib/rigor/analysis/dependency_source_inference/walker.rb +1 -1
- data/lib/rigor/analysis/dependency_source_inference.rb +1 -0
- data/lib/rigor/analysis/diagnostic.rb +0 -2
- data/lib/rigor/analysis/fact_store.rb +26 -6
- data/lib/rigor/analysis/result.rb +11 -3
- data/lib/rigor/analysis/rule_catalog.rb +2 -2
- data/lib/rigor/analysis/run_stats.rb +193 -0
- data/lib/rigor/analysis/runner.rb +498 -12
- data/lib/rigor/analysis/worker_session.rb +327 -0
- data/lib/rigor/builtins/imported_refinements.rb +364 -55
- data/lib/rigor/builtins/regex_refinement.rb +17 -12
- data/lib/rigor/cache/descriptor.rb +1 -1
- data/lib/rigor/cache/rbs_descriptor.rb +3 -1
- data/lib/rigor/cache/store.rb +39 -6
- data/lib/rigor/cli/diff_command.rb +1 -1
- data/lib/rigor/cli/sig_gen_command.rb +173 -0
- data/lib/rigor/cli/type_of_command.rb +1 -1
- data/lib/rigor/cli/type_scan_renderer.rb +1 -1
- data/lib/rigor/cli/type_scan_report.rb +2 -2
- data/lib/rigor/cli.rb +61 -3
- data/lib/rigor/configuration/dependencies.rb +2 -2
- data/lib/rigor/configuration.rb +131 -6
- data/lib/rigor/environment/bundle_sig_discovery.rb +198 -0
- data/lib/rigor/environment/class_registry.rb +12 -3
- data/lib/rigor/environment/lockfile_resolver.rb +125 -0
- data/lib/rigor/environment/rbs_collection_discovery.rb +126 -0
- data/lib/rigor/environment/rbs_coverage_report.rb +112 -0
- data/lib/rigor/environment/rbs_loader.rb +194 -6
- data/lib/rigor/environment/reflection.rb +152 -0
- data/lib/rigor/environment.rb +109 -6
- data/lib/rigor/flow_contribution/conflict.rb +2 -2
- data/lib/rigor/flow_contribution/element.rb +1 -1
- data/lib/rigor/flow_contribution/fact.rb +1 -1
- data/lib/rigor/flow_contribution/merge_result.rb +1 -1
- data/lib/rigor/flow_contribution/merger.rb +3 -3
- data/lib/rigor/flow_contribution.rb +2 -2
- data/lib/rigor/inference/acceptance.rb +35 -1
- data/lib/rigor/inference/block_parameter_binder.rb +0 -2
- data/lib/rigor/inference/builtins/method_catalog.rb +12 -5
- data/lib/rigor/inference/builtins/numeric_catalog.rb +15 -4
- data/lib/rigor/inference/coverage_scanner.rb +1 -1
- data/lib/rigor/inference/expression_typer.rb +77 -11
- data/lib/rigor/inference/fallback.rb +1 -1
- data/lib/rigor/inference/macro_block_self_type.rb +96 -0
- data/lib/rigor/inference/method_dispatcher/block_folding.rb +3 -5
- data/lib/rigor/inference/method_dispatcher/constant_folding.rb +29 -41
- data/lib/rigor/inference/method_dispatcher/iterator_dispatch.rb +1 -3
- data/lib/rigor/inference/method_dispatcher/kernel_dispatch.rb +4 -4
- data/lib/rigor/inference/method_dispatcher/literal_string_folding.rb +1 -1
- data/lib/rigor/inference/method_dispatcher/method_folding.rb +135 -0
- data/lib/rigor/inference/method_dispatcher/overload_selector.rb +7 -12
- data/lib/rigor/inference/method_dispatcher/rbs_dispatch.rb +27 -11
- data/lib/rigor/inference/method_dispatcher/shape_dispatch.rb +46 -44
- data/lib/rigor/inference/method_dispatcher.rb +274 -5
- data/lib/rigor/inference/method_parameter_binder.rb +22 -14
- data/lib/rigor/inference/narrowing.rb +129 -12
- data/lib/rigor/inference/rbs_type_translator.rb +0 -2
- data/lib/rigor/inference/scope_indexer.rb +14 -9
- data/lib/rigor/inference/statement_evaluator.rb +7 -7
- data/lib/rigor/inference/synthetic_method.rb +86 -0
- data/lib/rigor/inference/synthetic_method_index.rb +82 -0
- data/lib/rigor/inference/synthetic_method_scanner.rb +521 -0
- data/lib/rigor/plugin/blueprint.rb +60 -0
- data/lib/rigor/plugin/io_boundary.rb +0 -2
- data/lib/rigor/plugin/loader.rb +5 -3
- data/lib/rigor/plugin/macro/block_as_method.rb +131 -0
- data/lib/rigor/plugin/macro/external_file.rb +143 -0
- data/lib/rigor/plugin/macro/heredoc_template.rb +201 -0
- data/lib/rigor/plugin/macro/trait_registry.rb +198 -0
- data/lib/rigor/plugin/macro.rb +31 -0
- data/lib/rigor/plugin/manifest.rb +102 -10
- data/lib/rigor/plugin/registry.rb +43 -2
- data/lib/rigor/plugin/services.rb +1 -1
- data/lib/rigor/plugin/type_node_resolver.rb +52 -0
- data/lib/rigor/plugin.rb +2 -0
- data/lib/rigor/rbs_extended/reporter.rb +91 -0
- data/lib/rigor/rbs_extended.rb +131 -32
- data/lib/rigor/scope.rb +25 -8
- data/lib/rigor/sig_gen/classification.rb +36 -0
- data/lib/rigor/sig_gen/generator.rb +1048 -0
- data/lib/rigor/sig_gen/layout_index.rb +108 -0
- data/lib/rigor/sig_gen/method_candidate.rb +62 -0
- data/lib/rigor/sig_gen/observation_collector.rb +391 -0
- data/lib/rigor/sig_gen/observed_call.rb +62 -0
- data/lib/rigor/sig_gen/path_mapper.rb +116 -0
- data/lib/rigor/sig_gen/renderer.rb +157 -0
- data/lib/rigor/sig_gen/type_elaborator.rb +92 -0
- data/lib/rigor/sig_gen/write_result.rb +48 -0
- data/lib/rigor/sig_gen/writer.rb +530 -0
- data/lib/rigor/sig_gen.rb +25 -0
- data/lib/rigor/trinary.rb +15 -11
- data/lib/rigor/type/bot.rb +6 -3
- data/lib/rigor/type/bound_method.rb +79 -0
- data/lib/rigor/type/combinator.rb +207 -3
- data/lib/rigor/type/constant.rb +13 -0
- data/lib/rigor/type/hash_shape.rb +0 -2
- data/lib/rigor/type/integer_range.rb +7 -7
- data/lib/rigor/type/refined.rb +18 -12
- data/lib/rigor/type/top.rb +4 -3
- data/lib/rigor/type/union.rb +20 -1
- data/lib/rigor/type.rb +1 -0
- data/lib/rigor/type_node/generic.rb +68 -0
- data/lib/rigor/type_node/identifier.rb +38 -0
- data/lib/rigor/type_node/indexed_access.rb +41 -0
- data/lib/rigor/type_node/integer_literal.rb +29 -0
- data/lib/rigor/type_node/name_scope.rb +52 -0
- data/lib/rigor/type_node/resolver_chain.rb +56 -0
- data/lib/rigor/type_node/string_literal.rb +32 -0
- data/lib/rigor/type_node/symbol_literal.rb +28 -0
- data/lib/rigor/type_node/union.rb +42 -0
- data/lib/rigor/type_node.rb +29 -0
- data/lib/rigor/version.rb +1 -1
- data/lib/rigor.rb +2 -0
- data/sig/rigor/analysis/check_rules/always_truthy_condition_collector.rbs +10 -0
- data/sig/rigor/analysis/check_rules/dead_assignment_collector.rbs +10 -0
- data/sig/rigor/analysis/dependency_source_inference/gem_resolver.rbs +25 -0
- data/sig/rigor/analysis/dependency_source_inference/index.rbs +9 -0
- data/sig/rigor/cli/diff_command.rbs +4 -0
- data/sig/rigor/cli/explain_command.rbs +4 -0
- data/sig/rigor/cli/sig_gen_command.rbs +4 -0
- data/sig/rigor/cli/type_scan_command.rbs +3 -0
- data/sig/rigor/environment.rbs +8 -2
- data/sig/rigor/inference/builtins/method_catalog.rbs +4 -0
- data/sig/rigor/inference/builtins/numeric_catalog.rbs +3 -0
- data/sig/rigor/inference/builtins.rbs +2 -0
- data/sig/rigor/plugin/access_denied_error.rbs +3 -0
- data/sig/rigor/plugin/base.rbs +6 -0
- data/sig/rigor/plugin/blueprint.rbs +7 -0
- data/sig/rigor/plugin/fact_store.rbs +11 -0
- data/sig/rigor/plugin/io_boundary.rbs +4 -0
- data/sig/rigor/plugin/load_error.rbs +6 -0
- data/sig/rigor/plugin/loader.rbs +20 -0
- data/sig/rigor/plugin/manifest.rbs +9 -0
- data/sig/rigor/plugin/registry.rbs +16 -0
- data/sig/rigor/plugin/services.rbs +3 -0
- data/sig/rigor/plugin/trust_policy.rbs +4 -0
- data/sig/rigor/plugin/type_node_resolver.rbs +3 -0
- data/sig/rigor/plugin.rbs +8 -0
- data/sig/rigor/scope.rbs +4 -2
- data/sig/rigor/type.rbs +28 -6
- data/sig/rigor.rbs +35 -2
- metadata +90 -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
|
+
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
|
|
@@ -188,6 +208,7 @@ files:
|
|
|
188
208
|
- lib/rigor/analysis/check_rules/dead_assignment_collector.rb
|
|
189
209
|
- lib/rigor/analysis/check_rules/ivar_write_collector.rb
|
|
190
210
|
- lib/rigor/analysis/dependency_source_inference.rb
|
|
211
|
+
- lib/rigor/analysis/dependency_source_inference/boundary_cross_reporter.rb
|
|
191
212
|
- lib/rigor/analysis/dependency_source_inference/builder.rb
|
|
192
213
|
- lib/rigor/analysis/dependency_source_inference/gem_resolver.rb
|
|
193
214
|
- lib/rigor/analysis/dependency_source_inference/index.rb
|
|
@@ -196,7 +217,9 @@ files:
|
|
|
196
217
|
- lib/rigor/analysis/fact_store.rb
|
|
197
218
|
- lib/rigor/analysis/result.rb
|
|
198
219
|
- lib/rigor/analysis/rule_catalog.rb
|
|
220
|
+
- lib/rigor/analysis/run_stats.rb
|
|
199
221
|
- lib/rigor/analysis/runner.rb
|
|
222
|
+
- lib/rigor/analysis/worker_session.rb
|
|
200
223
|
- lib/rigor/ast.rb
|
|
201
224
|
- lib/rigor/ast/type_node.rb
|
|
202
225
|
- lib/rigor/builtins/imported_refinements.rb
|
|
@@ -214,6 +237,7 @@ files:
|
|
|
214
237
|
- lib/rigor/cli.rb
|
|
215
238
|
- lib/rigor/cli/diff_command.rb
|
|
216
239
|
- lib/rigor/cli/explain_command.rb
|
|
240
|
+
- lib/rigor/cli/sig_gen_command.rb
|
|
217
241
|
- lib/rigor/cli/type_of_command.rb
|
|
218
242
|
- lib/rigor/cli/type_of_renderer.rb
|
|
219
243
|
- lib/rigor/cli/type_scan_command.rb
|
|
@@ -223,9 +247,14 @@ files:
|
|
|
223
247
|
- lib/rigor/configuration/dependencies.rb
|
|
224
248
|
- lib/rigor/configuration/severity_profile.rb
|
|
225
249
|
- lib/rigor/environment.rb
|
|
250
|
+
- lib/rigor/environment/bundle_sig_discovery.rb
|
|
226
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
|
|
227
255
|
- lib/rigor/environment/rbs_hierarchy.rb
|
|
228
256
|
- lib/rigor/environment/rbs_loader.rb
|
|
257
|
+
- lib/rigor/environment/reflection.rb
|
|
229
258
|
- lib/rigor/flow_contribution.rb
|
|
230
259
|
- lib/rigor/flow_contribution/conflict.rb
|
|
231
260
|
- lib/rigor/flow_contribution/element.rb
|
|
@@ -259,6 +288,7 @@ files:
|
|
|
259
288
|
- lib/rigor/inference/expression_typer.rb
|
|
260
289
|
- lib/rigor/inference/fallback.rb
|
|
261
290
|
- lib/rigor/inference/fallback_tracer.rb
|
|
291
|
+
- lib/rigor/inference/macro_block_self_type.rb
|
|
262
292
|
- lib/rigor/inference/method_dispatcher.rb
|
|
263
293
|
- lib/rigor/inference/method_dispatcher/block_folding.rb
|
|
264
294
|
- lib/rigor/inference/method_dispatcher/constant_folding.rb
|
|
@@ -266,6 +296,7 @@ files:
|
|
|
266
296
|
- lib/rigor/inference/method_dispatcher/iterator_dispatch.rb
|
|
267
297
|
- lib/rigor/inference/method_dispatcher/kernel_dispatch.rb
|
|
268
298
|
- lib/rigor/inference/method_dispatcher/literal_string_folding.rb
|
|
299
|
+
- lib/rigor/inference/method_dispatcher/method_folding.rb
|
|
269
300
|
- lib/rigor/inference/method_dispatcher/overload_selector.rb
|
|
270
301
|
- lib/rigor/inference/method_dispatcher/rbs_dispatch.rb
|
|
271
302
|
- lib/rigor/inference/method_dispatcher/shape_dispatch.rb
|
|
@@ -275,20 +306,43 @@ files:
|
|
|
275
306
|
- lib/rigor/inference/rbs_type_translator.rb
|
|
276
307
|
- lib/rigor/inference/scope_indexer.rb
|
|
277
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
|
|
278
312
|
- lib/rigor/plugin.rb
|
|
279
313
|
- lib/rigor/plugin/access_denied_error.rb
|
|
280
314
|
- lib/rigor/plugin/base.rb
|
|
315
|
+
- lib/rigor/plugin/blueprint.rb
|
|
281
316
|
- lib/rigor/plugin/fact_store.rb
|
|
282
317
|
- lib/rigor/plugin/io_boundary.rb
|
|
283
318
|
- lib/rigor/plugin/load_error.rb
|
|
284
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
|
|
285
325
|
- lib/rigor/plugin/manifest.rb
|
|
286
326
|
- lib/rigor/plugin/registry.rb
|
|
287
327
|
- lib/rigor/plugin/services.rb
|
|
288
328
|
- lib/rigor/plugin/trust_policy.rb
|
|
329
|
+
- lib/rigor/plugin/type_node_resolver.rb
|
|
289
330
|
- lib/rigor/rbs_extended.rb
|
|
331
|
+
- lib/rigor/rbs_extended/reporter.rb
|
|
290
332
|
- lib/rigor/reflection.rb
|
|
291
333
|
- lib/rigor/scope.rb
|
|
334
|
+
- lib/rigor/sig_gen.rb
|
|
335
|
+
- lib/rigor/sig_gen/classification.rb
|
|
336
|
+
- lib/rigor/sig_gen/generator.rb
|
|
337
|
+
- lib/rigor/sig_gen/layout_index.rb
|
|
338
|
+
- lib/rigor/sig_gen/method_candidate.rb
|
|
339
|
+
- lib/rigor/sig_gen/observation_collector.rb
|
|
340
|
+
- lib/rigor/sig_gen/observed_call.rb
|
|
341
|
+
- lib/rigor/sig_gen/path_mapper.rb
|
|
342
|
+
- lib/rigor/sig_gen/renderer.rb
|
|
343
|
+
- lib/rigor/sig_gen/type_elaborator.rb
|
|
344
|
+
- lib/rigor/sig_gen/write_result.rb
|
|
345
|
+
- lib/rigor/sig_gen/writer.rb
|
|
292
346
|
- lib/rigor/source.rb
|
|
293
347
|
- lib/rigor/source/node_locator.rb
|
|
294
348
|
- lib/rigor/source/node_walker.rb
|
|
@@ -297,6 +351,7 @@ files:
|
|
|
297
351
|
- lib/rigor/type.rb
|
|
298
352
|
- lib/rigor/type/accepts_result.rb
|
|
299
353
|
- lib/rigor/type/bot.rb
|
|
354
|
+
- lib/rigor/type/bound_method.rb
|
|
300
355
|
- lib/rigor/type/combinator.rb
|
|
301
356
|
- lib/rigor/type/constant.rb
|
|
302
357
|
- lib/rigor/type/difference.rb
|
|
@@ -310,12 +365,46 @@ files:
|
|
|
310
365
|
- lib/rigor/type/top.rb
|
|
311
366
|
- lib/rigor/type/tuple.rb
|
|
312
367
|
- lib/rigor/type/union.rb
|
|
368
|
+
- lib/rigor/type_node.rb
|
|
369
|
+
- lib/rigor/type_node/generic.rb
|
|
370
|
+
- lib/rigor/type_node/identifier.rb
|
|
371
|
+
- lib/rigor/type_node/indexed_access.rb
|
|
372
|
+
- lib/rigor/type_node/integer_literal.rb
|
|
373
|
+
- lib/rigor/type_node/name_scope.rb
|
|
374
|
+
- lib/rigor/type_node/resolver_chain.rb
|
|
375
|
+
- lib/rigor/type_node/string_literal.rb
|
|
376
|
+
- lib/rigor/type_node/symbol_literal.rb
|
|
377
|
+
- lib/rigor/type_node/union.rb
|
|
313
378
|
- lib/rigor/version.rb
|
|
314
379
|
- sig/rigor.rbs
|
|
380
|
+
- sig/rigor/analysis/check_rules/always_truthy_condition_collector.rbs
|
|
381
|
+
- sig/rigor/analysis/check_rules/dead_assignment_collector.rbs
|
|
382
|
+
- sig/rigor/analysis/dependency_source_inference/gem_resolver.rbs
|
|
383
|
+
- sig/rigor/analysis/dependency_source_inference/index.rbs
|
|
315
384
|
- sig/rigor/analysis/fact_store.rbs
|
|
316
385
|
- sig/rigor/ast.rbs
|
|
386
|
+
- sig/rigor/cli/diff_command.rbs
|
|
387
|
+
- sig/rigor/cli/explain_command.rbs
|
|
388
|
+
- sig/rigor/cli/sig_gen_command.rbs
|
|
389
|
+
- sig/rigor/cli/type_scan_command.rbs
|
|
317
390
|
- sig/rigor/environment.rbs
|
|
318
391
|
- sig/rigor/inference.rbs
|
|
392
|
+
- sig/rigor/inference/builtins.rbs
|
|
393
|
+
- sig/rigor/inference/builtins/method_catalog.rbs
|
|
394
|
+
- sig/rigor/inference/builtins/numeric_catalog.rbs
|
|
395
|
+
- sig/rigor/plugin.rbs
|
|
396
|
+
- sig/rigor/plugin/access_denied_error.rbs
|
|
397
|
+
- sig/rigor/plugin/base.rbs
|
|
398
|
+
- sig/rigor/plugin/blueprint.rbs
|
|
399
|
+
- sig/rigor/plugin/fact_store.rbs
|
|
400
|
+
- sig/rigor/plugin/io_boundary.rbs
|
|
401
|
+
- sig/rigor/plugin/load_error.rbs
|
|
402
|
+
- sig/rigor/plugin/loader.rbs
|
|
403
|
+
- sig/rigor/plugin/manifest.rbs
|
|
404
|
+
- sig/rigor/plugin/registry.rbs
|
|
405
|
+
- sig/rigor/plugin/services.rbs
|
|
406
|
+
- sig/rigor/plugin/trust_policy.rbs
|
|
407
|
+
- sig/rigor/plugin/type_node_resolver.rbs
|
|
319
408
|
- sig/rigor/rbs_extended.rbs
|
|
320
409
|
- sig/rigor/reflection.rbs
|
|
321
410
|
- sig/rigor/scope.rbs
|