rigortype 0.4.1 → 0.4.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 (182) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -1
  3. data/data/builtins/ruby_core/io.yml +1 -0
  4. data/data/builtins/ruby_core/proc.yml +4 -0
  5. data/data/builtins/ruby_core/random.yml +4 -0
  6. data/data/builtins/ruby_core/struct.yml +3 -0
  7. data/data/core_overlay/env.rbs +34 -0
  8. data/data/core_overlay/gc.rbs +50 -0
  9. data/data/core_overlay/hash.rbs +45 -0
  10. data/data/core_overlay/integer.rbs +31 -0
  11. data/data/core_overlay/io_buffer.rbs +27 -0
  12. data/data/core_overlay/kernel.rbs +40 -0
  13. data/data/core_overlay/match_data.rbs +28 -0
  14. data/data/core_overlay/module.rbs +51 -0
  15. data/data/core_overlay/object_space.rbs +29 -0
  16. data/data/core_overlay/proc.rbs +45 -0
  17. data/data/core_overlay/range.rbs +40 -0
  18. data/data/core_overlay/source_range.rbs +78 -0
  19. data/data/core_overlay/string.rbs +86 -0
  20. data/data/vendored_gem_sigs/prime/integer-extension.rbs +41 -0
  21. data/data/vendored_gem_sigs/prime/prime.rbs +372 -0
  22. data/docs/handbook/01-getting-started.md +3 -3
  23. data/docs/handbook/06-classes.md +3 -1
  24. data/docs/handbook/11-sig-gen.md +6 -0
  25. data/docs/handbook/appendix-liskov.md +5 -0
  26. data/docs/manual/03-configuration.md +1 -1
  27. data/docs/manual/04-diagnostics.md +2 -1
  28. data/docs/manual/06-baseline.md +2 -0
  29. data/docs/manual/07-plugins.md +1 -1
  30. data/docs/manual/18-removing-dead-code.md +32 -2
  31. data/docs/manual/plugins/README.md +6 -1
  32. data/docs/manual/plugins/rigor-activerecord.md +21 -0
  33. data/docs/manual/plugins/rigor-alba.md +60 -0
  34. data/docs/manual/plugins/rigor-minitest.md +22 -4
  35. data/docs/manual/plugins/rigor-typelizer.md +71 -0
  36. data/lib/rigor/analysis/check_rules/ivar_write_collector.rb +27 -3
  37. data/lib/rigor/analysis/check_rules/lexical_method_sites.rb +21 -92
  38. data/lib/rigor/analysis/check_rules/ruby_deprecations.rb +275 -0
  39. data/lib/rigor/analysis/check_rules/rule_ids.rb +4 -0
  40. data/lib/rigor/analysis/check_rules/source_arity.rb +21 -2
  41. data/lib/rigor/analysis/check_rules.rb +289 -57
  42. data/lib/rigor/analysis/dependency_recorder.rb +15 -0
  43. data/lib/rigor/analysis/dependency_source_inference/builder.rb +8 -1
  44. data/lib/rigor/analysis/dependency_source_inference/gem_resolver.rb +21 -0
  45. data/lib/rigor/analysis/dependency_source_inference/index.rb +36 -11
  46. data/lib/rigor/analysis/dependency_source_inference/walker.rb +196 -27
  47. data/lib/rigor/analysis/erb_template_detector.rb +2 -1
  48. data/lib/rigor/analysis/incremental.rb +29 -9
  49. data/lib/rigor/analysis/incremental_run_slot/write_guard.rb +30 -5
  50. data/lib/rigor/analysis/incremental_run_slot.rb +3 -1
  51. data/lib/rigor/analysis/incremental_session.rb +14 -1
  52. data/lib/rigor/analysis/reachability/graph.rb +123 -23
  53. data/lib/rigor/analysis/reachability/scan.rb +290 -36
  54. data/lib/rigor/analysis/rule_catalog.rb +43 -0
  55. data/lib/rigor/analysis/run_cache_key.rb +16 -1
  56. data/lib/rigor/analysis/runner/diagnostic_aggregator.rb +87 -5
  57. data/lib/rigor/analysis/runner/pool_coordinator.rb +50 -11
  58. data/lib/rigor/analysis/runner/run_snapshots.rb +6 -1
  59. data/lib/rigor/analysis/runner.rb +34 -3
  60. data/lib/rigor/analysis/worker_session.rb +7 -4
  61. data/lib/rigor/cache/incremental_snapshot.rb +22 -0
  62. data/lib/rigor/cli/annotate_command.rb +5 -0
  63. data/lib/rigor/cli/baseline_command.rb +7 -18
  64. data/lib/rigor/cli/check_command.rb +2 -1
  65. data/lib/rigor/cli/trace_command.rb +5 -0
  66. data/lib/rigor/cli/type_of_command.rb +5 -3
  67. data/lib/rigor/cli/unused_command.rb +13 -7
  68. data/lib/rigor/cli.rb +10 -2
  69. data/lib/rigor/configuration/severity_profile.rb +6 -0
  70. data/lib/rigor/configuration.rb +46 -2
  71. data/lib/rigor/environment/gated_signature_guard.rb +43 -0
  72. data/lib/rigor/environment/gated_signature_plan.rb +339 -0
  73. data/lib/rigor/environment/rbs_coverage_report.rb +1 -1
  74. data/lib/rigor/environment/rbs_loader.rb +283 -14
  75. data/lib/rigor/environment/required_features.rb +206 -0
  76. data/lib/rigor/environment.rb +21 -3
  77. data/lib/rigor/inference/acceptance.rb +28 -3
  78. data/lib/rigor/inference/builtins/cruby_definers.rb +61 -0
  79. data/lib/rigor/inference/builtins/method_catalog.rb +3 -0
  80. data/lib/rigor/inference/def_node_resolver.rb +23 -1
  81. data/lib/rigor/inference/expression_typer.rb +215 -16
  82. data/lib/rigor/inference/global_write_census.rb +7 -4
  83. data/lib/rigor/inference/guard_rebinding.rb +1 -1
  84. data/lib/rigor/inference/in_effect_refinements/proc_literals.rb +83 -0
  85. data/lib/rigor/inference/in_effect_refinements/refine_defs.rb +54 -0
  86. data/lib/rigor/inference/in_effect_refinements/scope_reads.rb +282 -0
  87. data/lib/rigor/inference/in_effect_refinements/walk.rb +276 -0
  88. data/lib/rigor/inference/in_effect_refinements.rb +256 -0
  89. data/lib/rigor/inference/key_presence_guard/scan.rb +281 -0
  90. data/lib/rigor/inference/key_presence_guard.rb +303 -0
  91. data/lib/rigor/inference/macro_block_self_type.rb +59 -12
  92. data/lib/rigor/inference/method_dispatcher/alias_strict_nominals.rb +36 -0
  93. data/lib/rigor/inference/method_dispatcher/arithmetic_sequence_elements.rb +73 -0
  94. data/lib/rigor/inference/method_dispatcher/imprecise_argument.rb +68 -0
  95. data/lib/rigor/inference/method_dispatcher/integer_step_block_params.rb +81 -0
  96. data/lib/rigor/inference/method_dispatcher/iterator_dispatch.rb +6 -0
  97. data/lib/rigor/inference/method_dispatcher/keyword_arguments.rb +267 -0
  98. data/lib/rigor/inference/method_dispatcher/method_folding.rb +2 -1
  99. data/lib/rigor/inference/method_dispatcher/overload_selector.rb +122 -105
  100. data/lib/rigor/inference/method_dispatcher/rbs_dispatch.rb +259 -28
  101. data/lib/rigor/inference/method_dispatcher/splat_arity.rb +71 -0
  102. data/lib/rigor/inference/method_dispatcher.rb +44 -11
  103. data/lib/rigor/inference/module_function_state.rb +2 -1
  104. data/lib/rigor/inference/narrowing.rb +20 -6
  105. data/lib/rigor/inference/object_mixins.rb +180 -0
  106. data/lib/rigor/inference/project_patched_methods.rb +10 -5
  107. data/lib/rigor/inference/project_patched_scanner.rb +71 -3
  108. data/lib/rigor/inference/refine_census.rb +239 -0
  109. data/lib/rigor/inference/refine_self.rb +317 -0
  110. data/lib/rigor/inference/refined_dispatch/own_method.rb +403 -0
  111. data/lib/rigor/inference/refined_dispatch.rb +272 -0
  112. data/lib/rigor/inference/scope_indexer/mixin_accumulator.rb +13 -0
  113. data/lib/rigor/inference/scope_indexer.rb +687 -60
  114. data/lib/rigor/inference/statement_evaluator.rb +71 -20
  115. data/lib/rigor/inference/string_mutation.rb +9 -3
  116. data/lib/rigor/inference/synthetic_method_scanner.rb +2 -1
  117. data/lib/rigor/inference/version_guard.rb +19 -10
  118. data/lib/rigor/language_server/project_context.rb +31 -0
  119. data/lib/rigor/language_server/server.rb +18 -0
  120. data/lib/rigor/plugin/inflector.rb +1 -1
  121. data/lib/rigor/plugin/io_boundary.rb +42 -3
  122. data/lib/rigor/plugin/macro/block_as_method.rb +51 -8
  123. data/lib/rigor/project_environment.rb +29 -6
  124. data/lib/rigor/protection/mutation_cache.rb +1 -1
  125. data/lib/rigor/protection/mutator.rb +1 -1
  126. data/lib/rigor/reflection/constant_ancestors.rb +127 -11
  127. data/lib/rigor/reflection/constant_path.rb +13 -2
  128. data/lib/rigor/reflection.rb +40 -8
  129. data/lib/rigor/scope/discovery_index.rb +40 -1
  130. data/lib/rigor/scope/resolution_chain.rb +159 -11
  131. data/lib/rigor/scope.rb +189 -10
  132. data/lib/rigor/sig_gen/classification.rb +4 -1
  133. data/lib/rigor/sig_gen/generator.rb +55 -5
  134. data/lib/rigor/sig_gen/method_candidate.rb +2 -2
  135. data/lib/rigor/sig_gen/skip_reason_catalog.rb +12 -0
  136. data/lib/rigor/source/alias_names.rb +52 -0
  137. data/lib/rigor/source/literals.rb +3 -2
  138. data/lib/rigor/source/symbol_name.rb +20 -0
  139. data/lib/rigor/type/combinator.rb +34 -2
  140. data/lib/rigor/type/float_range.rb +4 -1
  141. data/lib/rigor/type/nominal.rb +6 -1
  142. data/lib/rigor/version.rb +1 -1
  143. data/plugins/rigor-ac-library-rb/lib/rigor/plugin/ac_library_rb.rb +28 -0
  144. data/plugins/rigor-ac-library-rb/lib/rigor-ac-library-rb.rb +3 -0
  145. data/plugins/rigor-ac-library-rb/sig/ac_library_rb/convolution.rbs +7 -0
  146. data/plugins/rigor-ac-library-rb/sig/ac_library_rb/data_structures.rbs +160 -0
  147. data/plugins/rigor-ac-library-rb/sig/ac_library_rb/graph.rbs +94 -0
  148. data/plugins/rigor-ac-library-rb/sig/ac_library_rb/math.rbs +42 -0
  149. data/plugins/rigor-ac-library-rb/sig/ac_library_rb/modint.rbs +71 -0
  150. data/plugins/rigor-ac-library-rb/sig/ac_library_rb/object.rbs +37 -0
  151. data/plugins/rigor-ac-library-rb/sig/ac_library_rb/segtree.rbs +83 -0
  152. data/plugins/rigor-actionpack/lib/rigor/plugin/actionpack/analyzer.rb +2 -1
  153. data/plugins/rigor-activerecord/lib/rigor/plugin/activerecord/association_roots.rb +100 -0
  154. data/plugins/rigor-activerecord/lib/rigor/plugin/activerecord/model_discoverer.rb +94 -10
  155. data/plugins/rigor-activerecord/lib/rigor/plugin/activerecord.rb +43 -2
  156. data/plugins/rigor-activerecord/sig/active_record/relation.rbs +3 -1
  157. data/plugins/rigor-alba/lib/rigor/plugin/alba/resource_collector.rb +149 -0
  158. data/plugins/rigor-alba/lib/rigor/plugin/alba/resource_discoverer.rb +74 -0
  159. data/plugins/rigor-alba/lib/rigor/plugin/alba/resource_index.rb +104 -0
  160. data/plugins/rigor-alba/lib/rigor/plugin/alba.rb +85 -0
  161. data/plugins/rigor-alba/lib/rigor-alba.rb +3 -0
  162. data/plugins/rigor-alba/sig/alba.rbs +4 -0
  163. data/plugins/rigor-ffi/lib/rigor/plugin/ffi/analyzer.rb +2 -2
  164. data/plugins/rigor-ffi/lib/rigor/plugin/ffi/target_detector.rb +29 -12
  165. data/plugins/rigor-ffi/lib/rigor/plugin/ffi.rb +7 -6
  166. data/plugins/rigor-minitest/lib/rigor/plugin/minitest/assertion_analyzer.rb +130 -21
  167. data/plugins/rigor-minitest/lib/rigor/plugin/minitest.rb +6 -4
  168. data/plugins/rigor-pundit/lib/rigor/plugin/pundit/analyzer.rb +4 -4
  169. data/plugins/rigor-rails-i18n/lib/rigor/plugin/rails_i18n/analyzer.rb +1 -1
  170. data/plugins/rigor-rails-routes/lib/rigor/plugin/rails_routes/routes_parser.rb +1 -1
  171. data/plugins/rigor-rbs-inline/lib/rigor/plugin/rbs_inline.rb +31 -0
  172. data/plugins/rigor-typelizer/lib/rigor/plugin/typelizer/serializer_collector.rb +102 -0
  173. data/plugins/rigor-typelizer/lib/rigor/plugin/typelizer/serializer_discoverer.rb +87 -0
  174. data/plugins/rigor-typelizer/lib/rigor/plugin/typelizer/serializer_index.rb +76 -0
  175. data/plugins/rigor-typelizer/lib/rigor/plugin/typelizer.rb +73 -0
  176. data/plugins/rigor-typelizer/lib/rigor-typelizer.rb +3 -0
  177. data/sig/rigor/analysis/dependency_source_inference/index.rbs +1 -1
  178. data/sig/rigor/plugin/io_boundary.rbs +3 -0
  179. data/sig/rigor/scope.rbs +27 -4
  180. data/sig/rigor/source.rbs +4 -0
  181. data/sig/rigor.rbs +3 -1
  182. metadata +66 -1
@@ -0,0 +1,73 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "rigor/plugin"
4
+
5
+ require_relative "typelizer/serializer_index"
6
+ require_relative "typelizer/serializer_collector"
7
+ require_relative "typelizer/serializer_discoverer"
8
+
9
+ module Rigor
10
+ module Plugin
11
+ # rigor-typelizer — roots the serializer classes the typelizer gem
12
+ # (https://github.com/skryukov/typelizer) generates TypeScript interfaces from, so `rigor unused` does not
13
+ # list them as removal candidates.
14
+ #
15
+ # typelizer's `Typelizer.target_serializers` is `base_classes + base_classes.flat_map(&:descendants)`, where
16
+ # `base_classes` holds every named class that ran `include Typelizer::DSL` or `extend Typelizer::DSL`. Such
17
+ # a class may never be referenced from Ruby and still be consumed by the frontend through the generated
18
+ # type, so the plugin publishes it — and every project subclass of it — as a `:reachability_roots` fact.
19
+ #
20
+ # The plugin adds no diagnostic and no return type. It models nothing at runtime: `reject_class` (a lambda
21
+ # in typelizer's configuration that can drop a class from the output) is not evaluated, so a rejected class
22
+ # is still rooted. That costs a hidden candidate, never a false report.
23
+ class Typelizer < Rigor::Plugin::Base
24
+ manifest(
25
+ id: "typelizer",
26
+ target_gems: ["typelizer"],
27
+ version: "0.1.0",
28
+ description: "Roots the serializer classes typelizer generates TypeScript interfaces from, " \
29
+ "for `rigor unused`.",
30
+ config_schema: {
31
+ # Typelizer::Railtie sets exactly these two when `Typelizer.dirs` is empty.
32
+ "dirs" => { kind: :array, default: %w[app/resources app/serializers] }
33
+ },
34
+ produces: [:reachability_roots]
35
+ )
36
+
37
+ producer :serializer_index, watch: -> { watch_globs } do |_params|
38
+ SerializerDiscoverer.new(io_boundary: io_boundary, dirs: @dirs, project_paths: @project_paths).discover
39
+ end
40
+
41
+ def init(services)
42
+ @dirs = Array(config.fetch("dirs")).map(&:to_s)
43
+ @project_paths = Array(services.configuration.paths).map(&:to_s)
44
+ end
45
+
46
+ def prepare(services)
47
+ index = producer_value(:serializer_index)
48
+ return if index.nil?
49
+
50
+ roots = index.roots
51
+ return if roots.empty?
52
+
53
+ services.fact_store.publish(plugin_id: manifest.id, name: :reachability_roots, value: roots)
54
+ end
55
+
56
+ private
57
+
58
+ # Superclass resolution reads every file of the project's `paths:` (a shadowing `Admin::Base` may live
59
+ # outside `dirs`), so all of them are watched, not only `dirs`.
60
+ def watch_globs
61
+ (@dirs + @project_paths).filter_map do |entry|
62
+ if io_boundary.directory?(File.expand_path(entry))
63
+ [entry, "**/*.rb"]
64
+ elsif entry.end_with?(".rb") && io_boundary.file?(File.expand_path(entry))
65
+ [File.dirname(entry), File.basename(entry)]
66
+ end
67
+ end
68
+ end
69
+ end
70
+
71
+ Rigor::Plugin.register(Typelizer)
72
+ end
73
+ end
@@ -0,0 +1,3 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "rigor/plugin/typelizer"
@@ -2,7 +2,7 @@ module Rigor
2
2
  module Analysis
3
3
  module DependencySourceInference
4
4
  class Index
5
- def initialize: (?resolved_gems: untyped, ?unresolvable: untyped, ?method_catalog: untyped, ?budget_exceeded: untyped, ?class_to_gem: untyped, ?budget_overrun_strategy: untyped) -> void
5
+ def initialize: (?resolved_gems: untyped, ?unresolvable: untyped, ?method_catalog: untyped, ?budget_exceeded: untyped, ?class_to_gem: untyped, ?budget_overrun_strategy: untyped, ?gem_modes: untyped, ?refinements: untyped) -> void
6
6
  end
7
7
  end
8
8
  end
@@ -4,6 +4,9 @@ class Rigor::Plugin::IoBoundary
4
4
  def file?: (untyped) -> bool
5
5
  def directory?: (untyped) -> bool
6
6
  def list_directory: (untyped) -> Array[String]
7
+ # Records a `:names` glob row (membership only); a caller needing a match's content `read_file`s it. A `..`
8
+ # segment, a brace or a backslash in `pattern` raises `AccessDeniedError`.
9
+ def glob: (untyped root, untyped pattern) -> Array[String]
7
10
  # sig-gen gap: #1156 — the generator pins the empty-summary literal (`count: 0, first_path: nil`); the
8
11
  # record's fields are the running count and the first refused path, nil when nothing was refused.
9
12
  def refusal_summary: () -> { count: Integer, first_path: String?, nearest_root: String? }?
data/sig/rigor/scope.rbs CHANGED
@@ -29,6 +29,10 @@ module Rigor
29
29
  attr_reader opaque_block_self: bool
30
30
  # sig-gen gap: #1154 — sig-gen skips the reader (sig.skipped.untyped-return): an `attr_reader`
31
31
  # over an ivar assigned in `initialize` from a parameter, so inference reaches `untyped`.
32
+ # Issue #1759 — `:refinement` (REFINEMENT_BLOCK_SELF) directly in a `refine X do … end` block body.
33
+ attr_reader block_self_unknown: bool | :refinement
34
+ # sig-gen gap: #1154 — sig-gen skips the reader (sig.skipped.untyped-return): an `attr_reader`
35
+ # over an ivar assigned in `initialize` from a parameter, so inference reaches `untyped`.
32
36
  attr_reader singleton_class_body: bool
33
37
  attr_reader lexical_nesting: Array[String]?
34
38
  # Issue #1429 — a guard's narrowing of a constant reference, keyed by its spelling.
@@ -40,6 +44,9 @@ module Rigor
40
44
  # Issue #1446 — the classes a class guard narrowed a `bot` receiver to.
41
45
  # sig-gen gap: #1154 — a reader over an ivar `initialize` assigns from a parameter.
42
46
  attr_reader bot_guard_classes: Hash[[Symbol, Symbol | String], Array[String]]
47
+ # Issue #1667 — the modules a plugin-declared refined block runs under, in declaration order.
48
+ # sig-gen gap: #1154 — a reader over an ivar `initialize` assigns from a parameter.
49
+ attr_reader declared_refinements: Array[String]
43
50
 
44
51
  # ADR-53 Track A — the seed-time discovery tables live on the
45
52
  # DiscoveryIndex; Scope keeps per-table readers as delegates.
@@ -64,8 +71,11 @@ module Rigor
64
71
  # deferred-range table's row shape is hand-written.
65
72
  def discovered_deferred_ranges: () -> Hash[String, Array[[Integer, Integer, Symbol?, Symbol?, String?]]]
66
73
  # sig-gen gap: #1148 — sig-gen skips the endless-def reader (untyped return), so the refinement table's
67
- # shape is hand-written.
68
- def discovered_refinements: () -> Hash[String, Hash[Symbol, Array[String]]]
74
+ # shape is hand-written. A method key is a Symbol or the `"*"` wildcard (ADR-121 WD7).
75
+ def discovered_refinements: () -> Hash[String, Hash[Symbol | String, Array[String]]]
76
+ # authored: the list holds module names and the `InEffectRefinements::UNKNOWN` Symbol; sig-gen reads the delegated
77
+ # return through an unsigned class as untyped.
78
+ def in_effect_refinements: (untyped node, ?Array[String] declared) -> Array[String | Symbol]
69
79
  # sig-gen gap: #1148 — sig-gen skips the endless-def reader (untyped return), so the census shape is
70
80
  # hand-written.
71
81
  def discovered_global_write_census: () -> Set[Array[untyped]]
@@ -144,7 +154,7 @@ module Rigor
144
154
  # sig-gen gap: #1150 — `Data.define` members carry no type, as for every other row in this class.
145
155
  attr_reader discovered_deferred_ranges: Hash[String, Array[[Integer, Integer, Symbol?, Symbol?, String?]]]
146
156
  # sig-gen gap: #1150 — `Data.define` members carry no type, as for every other row in this class.
147
- attr_reader discovered_refinements: Hash[String, Hash[Symbol, Array[String]]]
157
+ attr_reader discovered_refinements: Hash[String, Hash[Symbol | String, Array[String]]]
148
158
  # sig-gen gap: #1150 — `Data.define` members carry no type, as for every other row in this class.
149
159
  attr_reader discovered_global_write_census: Set[Array[untyped]]
150
160
  attr_reader run_generation: Object?
@@ -157,6 +167,9 @@ module Rigor
157
167
  # `untyped`: the value is an `Inference::LastLine::SelfEvidence` (or nil), and that class carries no signature,
158
168
  # as `Inference::MatchRebinding::Frame` carries none for `match_frame`.
159
169
  attr_reader implicit_self_evidence: untyped
170
+ # sig-gen gap: #1150 — `Data.define` members carry no type; the value is an `Inference::InEffectRefinements`
171
+ # (or nil), which carries no signature either.
172
+ attr_reader in_effect_refinements: untyped
160
173
  # sig-gen gap: #1150 — `Data.define` members carry no type, as for every other row in this class.
161
174
  attr_reader possible_discovered_methods: Hash[String, Hash[Symbol, Symbol]]
162
175
  # sig-gen gap: #1150 — `Data.define` members carry no type, as for every other row in this class.
@@ -188,7 +201,7 @@ module Rigor
188
201
  # authored: ADR-119 WD1 sibling pairing; no inferred signature exists for it (#1150).
189
202
  def sibling_tables: () -> Hash[Symbol, untyped]
190
203
 
191
- def with: (?declared_types: Hash[untyped, Type::t], ?class_ivars: Hash[String, Hash[Symbol, Type::t]], ?class_cvars: Hash[String, Hash[Symbol, Type::t]], ?program_globals: Hash[Symbol, Type::t], ?program_global_seeds: Hash[Symbol, Type::t], ?discovered_classes: Hash[String, Type::Singleton], ?in_source_constants: Hash[String, Type::t], ?discovered_methods: Hash[String, Hash[Symbol, Symbol]], ?discovered_def_nodes: Hash[String, Hash[Symbol, untyped]], ?discovered_def_nestings: Hash[untyped, Array[String]], ?discovered_singleton_def_nodes: Hash[String, Hash[Symbol, untyped]], ?discovered_def_sources: Hash[String, Hash[Symbol, String]], ?discovered_singleton_def_sources: Hash[String, Hash[Symbol, String]], ?discovered_method_visibilities: Hash[String, Hash[Symbol, Symbol]], ?discovered_parameter_envelopes: Hash[String, Hash[untyped, untyped]], ?discovered_superclasses: Hash[String, String], ?discovered_includes: Hash[String, Array[String]], ?discovered_prepends: Hash[String, Array[String]], ?discovered_extends: Hash[String, Array[String]], ?discovered_class_sources: Hash[String, Set[String]], ?constant_sources: Hash[String, Set[String]], ?constant_writers: Hash[String, Array[String]], ?constant_shadowers: Hash[String, Array[String]], ?published_constant_names: Set[String], ?local_constant_names: Set[String], ?published_constant_alias_names: Set[String], ?published_constant_ivars: Hash[String, Set[Symbol]], ?data_member_layouts: Hash[String, Array[Symbol]], ?struct_member_layouts: Hash[String, { members: Array[Symbol], keyword_init: bool }], ?param_inferred_types: Hash[[String, Symbol, Symbol], Hash[Symbol, Type::t]], ?discovered_deferred_ranges: Hash[String, Array[[Integer, Integer, Symbol?, Symbol?, String?]]], ?discovered_refinements: Hash[String, Hash[Symbol, Array[String]]], ?discovered_global_write_census: Set[Array[untyped]], ?run_generation: Object?, ?patched_line_readers: Set[Symbol], ?clears_last_status: bool, ?defines_case_equality: bool, ?implicit_self_evidence: untyped, ?possible_discovered_methods: Hash[String, Hash[Symbol, Symbol]], ?possible_discovered_deferred_ranges: Hash[String, Array[[Integer, Integer, Symbol?, Symbol?, String?]]], ?contested_discovered_def_nodes: Set[Array[untyped]], ?contested_discovered_singleton_def_nodes: Set[Array[untyped]], ?contested_discovered_method_visibilities: Set[Array[untyped]], ?contested_discovered_parameter_envelopes: Set[Array[untyped]]) -> DiscoveryIndex
204
+ def with: (?declared_types: Hash[untyped, Type::t], ?class_ivars: Hash[String, Hash[Symbol, Type::t]], ?class_cvars: Hash[String, Hash[Symbol, Type::t]], ?program_globals: Hash[Symbol, Type::t], ?program_global_seeds: Hash[Symbol, Type::t], ?discovered_classes: Hash[String, Type::Singleton], ?in_source_constants: Hash[String, Type::t], ?discovered_methods: Hash[String, Hash[Symbol, Symbol]], ?discovered_def_nodes: Hash[String, Hash[Symbol, untyped]], ?discovered_def_nestings: Hash[untyped, Array[String]], ?discovered_singleton_def_nodes: Hash[String, Hash[Symbol, untyped]], ?discovered_def_sources: Hash[String, Hash[Symbol, String]], ?discovered_singleton_def_sources: Hash[String, Hash[Symbol, String]], ?discovered_method_visibilities: Hash[String, Hash[Symbol, Symbol]], ?discovered_parameter_envelopes: Hash[String, Hash[untyped, untyped]], ?discovered_superclasses: Hash[String, String], ?discovered_includes: Hash[String, Array[String]], ?discovered_prepends: Hash[String, Array[String]], ?discovered_extends: Hash[String, Array[String]], ?discovered_class_sources: Hash[String, Set[String]], ?constant_sources: Hash[String, Set[String]], ?constant_writers: Hash[String, Array[String]], ?constant_shadowers: Hash[String, Array[String]], ?published_constant_names: Set[String], ?local_constant_names: Set[String], ?published_constant_alias_names: Set[String], ?published_constant_ivars: Hash[String, Set[Symbol]], ?data_member_layouts: Hash[String, Array[Symbol]], ?struct_member_layouts: Hash[String, { members: Array[Symbol], keyword_init: bool }], ?param_inferred_types: Hash[[String, Symbol, Symbol], Hash[Symbol, Type::t]], ?discovered_deferred_ranges: Hash[String, Array[[Integer, Integer, Symbol?, Symbol?, String?]]], ?discovered_refinements: Hash[String, Hash[Symbol | String, Array[String]]], ?discovered_global_write_census: Set[Array[untyped]], ?run_generation: Object?, ?patched_line_readers: Set[Symbol], ?clears_last_status: bool, ?defines_case_equality: bool, ?implicit_self_evidence: untyped, ?in_effect_refinements: untyped, ?possible_discovered_methods: Hash[String, Hash[Symbol, Symbol]], ?possible_discovered_deferred_ranges: Hash[String, Array[[Integer, Integer, Symbol?, Symbol?, String?]]], ?contested_discovered_def_nodes: Set[Array[untyped]], ?contested_discovered_singleton_def_nodes: Set[Array[untyped]], ?contested_discovered_method_visibilities: Set[Array[untyped]], ?contested_discovered_parameter_envelopes: Set[Array[untyped]]) -> DiscoveryIndex
192
205
  end
193
206
 
194
207
  class IndexedKey
@@ -211,8 +224,15 @@ module Rigor
211
224
  def with_lexical_nesting: (Array[String]? chain) -> Scope
212
225
  def struct_fold_safe?: (String | Symbol name) -> bool
213
226
  def entering_opaque_block: () -> Scope
227
+ # sig-gen gap: #1148 — sig-gen skips the endless-def reader (sig.skipped.untyped-return); the row is hand-written.
228
+ def block_self_unknown?: () -> bool
229
+ REFINEMENT_BLOCK_SELF: :refinement
230
+ # sig-gen gap: #1148 — sig-gen skips the endless-def predicate (sig.skipped.untyped-return); the row is hand-written.
231
+ def refinement_block_self?: () -> bool
232
+ def with_block_self_unknown: (bool flag) -> Scope
214
233
  def opaque_block_self?: () -> bool
215
234
  def with_singleton_class_body: (bool) -> Scope
235
+ def with_declared_refinements: (Array[String] names) -> Scope
216
236
  # sig-gen gap: #1148 — sig-gen skips the endless-def reader (sig.skipped.untyped-return); the row is hand-written.
217
237
  def singleton_class_body?: () -> bool
218
238
  def with_discovery: (DiscoveryIndex index) -> Scope
@@ -337,6 +357,7 @@ module Rigor
337
357
  def singleton_extends_of: (String | Symbol class_name) -> Array[String]
338
358
  def indexed_narrowing: (Symbol receiver_kind, String | Symbol receiver_name, untyped key) -> Type::t?
339
359
  def with_indexed_narrowing: (Symbol receiver_kind, String | Symbol receiver_name, untyped key, Type::t type) -> Scope
360
+ def with_isolated_side_tables: () -> Scope
340
361
  def without_indexed_narrowing: (Symbol receiver_kind, String | Symbol receiver_name, untyped key) -> Scope
341
362
  def without_indexed_narrowings_for: (Symbol receiver_kind, String | Symbol receiver_name) -> Scope
342
363
  def method_chain_narrowing: (Symbol receiver_kind, String | Symbol receiver_name, String | Symbol method_name) -> Type::t?
@@ -345,6 +366,8 @@ module Rigor
345
366
  def without_method_chain_narrowings_for: (Symbol receiver_kind, String | Symbol receiver_name) -> Scope
346
367
  def with_fact: (Analysis::FactStore::Fact fact) -> Scope
347
368
  def with_self_type: (Type::t? type) -> Scope
369
+ def with_block_self_type: (Type::t? type, ?keeps_unknown: bool | :refinement) -> Scope
370
+ def block_self_narrowing_unknown?: (Prism::CallNode call_node) -> bool
348
371
  def facts_for: (?target: Analysis::FactStore::Target?, ?bucket: Symbol?) -> Array[Analysis::FactStore::Fact]
349
372
  def local_facts: (String | Symbol name, ?bucket: Symbol?) -> Array[Analysis::FactStore::Fact]
350
373
  def type_of: (untyped node, ?tracer: Inference::FallbackTracer?) -> Type::t
data/sig/rigor/source.rbs CHANGED
@@ -21,6 +21,10 @@ module Rigor
21
21
  def self?.symbol_arg: (untyped? call_node, Integer index) -> Symbol?
22
22
  end
23
23
 
24
+ module SymbolName
25
+ def self?.of: (String? text) -> Symbol?
26
+ end
27
+
24
28
  module NodeWalker
25
29
  def self?.each: (untyped root) { (untyped) -> void } -> nil
26
30
  | (untyped root) -> Enumerator[untyped, nil]
data/sig/rigor.rbs CHANGED
@@ -14,7 +14,9 @@ module Rigor
14
14
  def self.load: (?String? path) -> Configuration
15
15
  def self.discover: () -> String?
16
16
  def self.load_with_includes: (String path, ?visited: Set[String]) -> Hash[String, untyped]
17
- def initialize: (?Hash[String, untyped] data, ?bool effects_key_present) -> void
17
+ def initialize: (?Hash[String, untyped] data, ?bool effects_key_present, ?bool target_ruby_key_present) -> void
18
+ def target_ruby_explicit?: () -> bool
19
+ def stated_runtime_ruby: () -> String?
18
20
  def to_h: () -> Hash[String, untyped]
19
21
  # ADR-103 WD13 — the `effects:` block, nil when the key was absent. Presence is the opt-in.
20
22
  attr_reader effects: Hash[String, untyped]?
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.1
4
+ version: 0.4.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rigor contributors
@@ -310,12 +310,25 @@ files:
310
310
  - data/core_overlay/csv.rbs
311
311
  - data/core_overlay/enumerable.rbs
312
312
  - data/core_overlay/enumerator.rbs
313
+ - data/core_overlay/env.rbs
314
+ - data/core_overlay/gc.rbs
315
+ - data/core_overlay/hash.rbs
313
316
  - data/core_overlay/hash_rbs3.rbs
317
+ - data/core_overlay/integer.rbs
318
+ - data/core_overlay/io_buffer.rbs
319
+ - data/core_overlay/kernel.rbs
320
+ - data/core_overlay/match_data.rbs
321
+ - data/core_overlay/module.rbs
314
322
  - data/core_overlay/numeric.rbs
323
+ - data/core_overlay/object_space.rbs
315
324
  - data/core_overlay/pathname.rbs
325
+ - data/core_overlay/proc.rbs
316
326
  - data/core_overlay/process.rbs
317
327
  - data/core_overlay/psych.rbs
328
+ - data/core_overlay/range.rbs
318
329
  - data/core_overlay/resolv.rbs
330
+ - data/core_overlay/source_range.rbs
331
+ - data/core_overlay/string.rbs
319
332
  - data/core_overlay/string_io.rbs
320
333
  - data/core_overlay/string_scanner.rbs
321
334
  - data/effects/core.yml
@@ -334,6 +347,8 @@ files:
334
347
  - data/vendored_gem_sigs/nokogiri/nokogiri.rbs
335
348
  - data/vendored_gem_sigs/nokogiri/nokogiri_html5.rbs
336
349
  - data/vendored_gem_sigs/pg/pg.rbs
350
+ - data/vendored_gem_sigs/prime/integer-extension.rbs
351
+ - data/vendored_gem_sigs/prime/prime.rbs
337
352
  - data/vendored_gem_sigs/prism/prism_supplement.rbs
338
353
  - data/vendored_gem_sigs/racc/racc.rbs
339
354
  - data/vendored_gem_sigs/redis/errors.rbs
@@ -398,6 +413,7 @@ files:
398
413
  - docs/manual/plugins/rigor-activerecord.md
399
414
  - docs/manual/plugins/rigor-activestorage.md
400
415
  - docs/manual/plugins/rigor-activesupport-core-ext.md
416
+ - docs/manual/plugins/rigor-alba.md
401
417
  - docs/manual/plugins/rigor-devise.md
402
418
  - docs/manual/plugins/rigor-dry-schema.md
403
419
  - docs/manual/plugins/rigor-dry-struct.md
@@ -421,6 +437,7 @@ files:
421
437
  - docs/manual/plugins/rigor-sinatra.md
422
438
  - docs/manual/plugins/rigor-sorbet.md
423
439
  - docs/manual/plugins/rigor-statesman.md
440
+ - docs/manual/plugins/rigor-typelizer.md
424
441
  - docs/manual/plugins/rigor-typescript-utility-types.md
425
442
  - exe/rigor
426
443
  - lib/rigor.rb
@@ -438,6 +455,7 @@ files:
438
455
  - lib/rigor/analysis/check_rules/main_pass_collector.rb
439
456
  - lib/rigor/analysis/check_rules/published_constant_guard.rb
440
457
  - lib/rigor/analysis/check_rules/return_in_ensure_collector.rb
458
+ - lib/rigor/analysis/check_rules/ruby_deprecations.rb
441
459
  - lib/rigor/analysis/check_rules/rule_ids.rb
442
460
  - lib/rigor/analysis/check_rules/rule_walk.rb
443
461
  - lib/rigor/analysis/check_rules/self_closedness_scanner.rb
@@ -632,6 +650,8 @@ files:
632
650
  - lib/rigor/environment/constant_type_cache_holder.rb
633
651
  - lib/rigor/environment/default_libraries.rb
634
652
  - lib/rigor/environment/failure_slot.rb
653
+ - lib/rigor/environment/gated_signature_guard.rb
654
+ - lib/rigor/environment/gated_signature_plan.rb
635
655
  - lib/rigor/environment/hkt_registry_holder.rb
636
656
  - lib/rigor/environment/installed_gem_set.rb
637
657
  - lib/rigor/environment/lockfile_resolver.rb
@@ -644,6 +664,7 @@ files:
644
664
  - lib/rigor/environment/rbs_loader.rb
645
665
  - lib/rigor/environment/reflection.rb
646
666
  - lib/rigor/environment/reporters.rb
667
+ - lib/rigor/environment/required_features.rb
647
668
  - lib/rigor/environment/source_rbs_synthesis.rb
648
669
  - lib/rigor/flow_contribution.rb
649
670
  - lib/rigor/flow_contribution/conflict.rb
@@ -663,6 +684,7 @@ files:
663
684
  - lib/rigor/inference/builtins/array_catalog.rb
664
685
  - lib/rigor/inference/builtins/comparable_catalog.rb
665
686
  - lib/rigor/inference/builtins/complex_catalog.rb
687
+ - lib/rigor/inference/builtins/cruby_definers.rb
666
688
  - lib/rigor/inference/builtins/date_catalog.rb
667
689
  - lib/rigor/inference/builtins/encoding_catalog.rb
668
690
  - lib/rigor/inference/builtins/enumerable_catalog.rb
@@ -712,9 +734,16 @@ files:
712
734
  - lib/rigor/inference/hkt_reducer.rb
713
735
  - lib/rigor/inference/hkt_registry.rb
714
736
  - lib/rigor/inference/hkt_sugar_translator.rb
737
+ - lib/rigor/inference/in_effect_refinements.rb
738
+ - lib/rigor/inference/in_effect_refinements/proc_literals.rb
739
+ - lib/rigor/inference/in_effect_refinements/refine_defs.rb
740
+ - lib/rigor/inference/in_effect_refinements/scope_reads.rb
741
+ - lib/rigor/inference/in_effect_refinements/walk.rb
715
742
  - lib/rigor/inference/index_write_widening.rb
716
743
  - lib/rigor/inference/indexed_narrowing.rb
717
744
  - lib/rigor/inference/jump_targets.rb
745
+ - lib/rigor/inference/key_presence_guard.rb
746
+ - lib/rigor/inference/key_presence_guard/scan.rb
718
747
  - lib/rigor/inference/last_line.rb
719
748
  - lib/rigor/inference/last_line/implicit_self.rb
720
749
  - lib/rigor/inference/last_line/self_evidence.rb
@@ -727,6 +756,7 @@ files:
727
756
  - lib/rigor/inference/match_rebinding/self_calls.rb
728
757
  - lib/rigor/inference/method_dispatcher.rb
729
758
  - lib/rigor/inference/method_dispatcher/alias_strict_nominals.rb
759
+ - lib/rigor/inference/method_dispatcher/arithmetic_sequence_elements.rb
730
760
  - lib/rigor/inference/method_dispatcher/array_to_h_folding.rb
731
761
  - lib/rigor/inference/method_dispatcher/block_folding.rb
732
762
  - lib/rigor/inference/method_dispatcher/call_context.rb
@@ -736,9 +766,12 @@ files:
736
766
  - lib/rigor/inference/method_dispatcher/facet_distribution.rb
737
767
  - lib/rigor/inference/method_dispatcher/file_folding.rb
738
768
  - lib/rigor/inference/method_dispatcher/hash_transform_keys_folding.rb
769
+ - lib/rigor/inference/method_dispatcher/imprecise_argument.rb
770
+ - lib/rigor/inference/method_dispatcher/integer_step_block_params.rb
739
771
  - lib/rigor/inference/method_dispatcher/iterator_dispatch.rb
740
772
  - lib/rigor/inference/method_dispatcher/json_folding.rb
741
773
  - lib/rigor/inference/method_dispatcher/kernel_dispatch.rb
774
+ - lib/rigor/inference/method_dispatcher/keyword_arguments.rb
742
775
  - lib/rigor/inference/method_dispatcher/literal_string_folding.rb
743
776
  - lib/rigor/inference/method_dispatcher/match_data_folding.rb
744
777
  - lib/rigor/inference/method_dispatcher/math_folding.rb
@@ -758,6 +791,7 @@ files:
758
791
  - lib/rigor/inference/method_dispatcher/shellwords_folding.rb
759
792
  - lib/rigor/inference/method_dispatcher/singleton_folding.rb
760
793
  - lib/rigor/inference/method_dispatcher/singleton_mixin_dispatch.rb
794
+ - lib/rigor/inference/method_dispatcher/splat_arity.rb
761
795
  - lib/rigor/inference/method_dispatcher/struct_folding.rb
762
796
  - lib/rigor/inference/method_dispatcher/struct_materialization.rb
763
797
  - lib/rigor/inference/method_dispatcher/time_folding.rb
@@ -769,6 +803,7 @@ files:
769
803
  - lib/rigor/inference/mutation_rejoin.rb
770
804
  - lib/rigor/inference/mutation_widening.rb
771
805
  - lib/rigor/inference/narrowing.rb
806
+ - lib/rigor/inference/object_mixins.rb
772
807
  - lib/rigor/inference/operand_effects.rb
773
808
  - lib/rigor/inference/operand_walk.rb
774
809
  - lib/rigor/inference/optimistic_origin.rb
@@ -784,6 +819,10 @@ files:
784
819
  - lib/rigor/inference/rbs_type_translator.rb
785
820
  - lib/rigor/inference/receiver_alias.rb
786
821
  - lib/rigor/inference/receiver_blind_block.rb
822
+ - lib/rigor/inference/refine_census.rb
823
+ - lib/rigor/inference/refine_self.rb
824
+ - lib/rigor/inference/refined_dispatch.rb
825
+ - lib/rigor/inference/refined_dispatch/own_method.rb
787
826
  - lib/rigor/inference/refinement_mutation.rb
788
827
  - lib/rigor/inference/repeated_or_writes.rb
789
828
  - lib/rigor/inference/return_barrier.rb
@@ -914,12 +953,14 @@ files:
914
953
  - lib/rigor/sig_gen/writer.rb
915
954
  - lib/rigor/signature_path_audit.rb
916
955
  - lib/rigor/source.rb
956
+ - lib/rigor/source/alias_names.rb
917
957
  - lib/rigor/source/constant_path.rb
918
958
  - lib/rigor/source/literals.rb
919
959
  - lib/rigor/source/node_children.rb
920
960
  - lib/rigor/source/node_locator.rb
921
961
  - lib/rigor/source/node_walker.rb
922
962
  - lib/rigor/source/parameter_envelope.rb
963
+ - lib/rigor/source/symbol_name.rb
923
964
  - lib/rigor/testing.rb
924
965
  - lib/rigor/triage.rb
925
966
  - lib/rigor/triage/catalogue.rb
@@ -967,6 +1008,15 @@ files:
967
1008
  - lib/rigor/value_semantics.rb
968
1009
  - lib/rigor/version.rb
969
1010
  - lib/rigortype.rb
1011
+ - plugins/rigor-ac-library-rb/lib/rigor-ac-library-rb.rb
1012
+ - plugins/rigor-ac-library-rb/lib/rigor/plugin/ac_library_rb.rb
1013
+ - plugins/rigor-ac-library-rb/sig/ac_library_rb/convolution.rbs
1014
+ - plugins/rigor-ac-library-rb/sig/ac_library_rb/data_structures.rbs
1015
+ - plugins/rigor-ac-library-rb/sig/ac_library_rb/graph.rbs
1016
+ - plugins/rigor-ac-library-rb/sig/ac_library_rb/math.rbs
1017
+ - plugins/rigor-ac-library-rb/sig/ac_library_rb/modint.rbs
1018
+ - plugins/rigor-ac-library-rb/sig/ac_library_rb/object.rbs
1019
+ - plugins/rigor-ac-library-rb/sig/ac_library_rb/segtree.rbs
970
1020
  - plugins/rigor-actioncable/lib/rigor-actioncable.rb
971
1021
  - plugins/rigor-actioncable/lib/rigor/plugin/actioncable.rb
972
1022
  - plugins/rigor-actioncable/lib/rigor/plugin/actioncable/analyzer.rb
@@ -1007,6 +1057,7 @@ files:
1007
1057
  - plugins/rigor-activerecord/lib/rigor-activerecord.rb
1008
1058
  - plugins/rigor-activerecord/lib/rigor/plugin/activerecord.rb
1009
1059
  - plugins/rigor-activerecord/lib/rigor/plugin/activerecord/analyzer.rb
1060
+ - plugins/rigor-activerecord/lib/rigor/plugin/activerecord/association_roots.rb
1010
1061
  - plugins/rigor-activerecord/lib/rigor/plugin/activerecord/effects.rb
1011
1062
  - plugins/rigor-activerecord/lib/rigor/plugin/activerecord/model_discoverer.rb
1012
1063
  - plugins/rigor-activerecord/lib/rigor/plugin/activerecord/model_index.rb
@@ -1025,6 +1076,12 @@ files:
1025
1076
  - plugins/rigor-activesupport-core-ext/lib/rigor/plugin/activesupport_core_ext.rb
1026
1077
  - plugins/rigor-activesupport-core-ext/lib/rigor/plugin/activesupport_core_ext/effects.rb
1027
1078
  - plugins/rigor-activesupport-core-ext/sig/active_support/core_ext.rbs
1079
+ - plugins/rigor-alba/lib/rigor-alba.rb
1080
+ - plugins/rigor-alba/lib/rigor/plugin/alba.rb
1081
+ - plugins/rigor-alba/lib/rigor/plugin/alba/resource_collector.rb
1082
+ - plugins/rigor-alba/lib/rigor/plugin/alba/resource_discoverer.rb
1083
+ - plugins/rigor-alba/lib/rigor/plugin/alba/resource_index.rb
1084
+ - plugins/rigor-alba/sig/alba.rbs
1028
1085
  - plugins/rigor-devise/lib/rigor-devise.rb
1029
1086
  - plugins/rigor-devise/lib/rigor/plugin/devise.rb
1030
1087
  - plugins/rigor-dry-monads/lib/rigor-dry-monads.rb
@@ -1150,6 +1207,11 @@ files:
1150
1207
  - plugins/rigor-sorbet/sig/sorbet.rbs
1151
1208
  - plugins/rigor-statesman/lib/rigor-statesman.rb
1152
1209
  - plugins/rigor-statesman/lib/rigor/plugin/statesman.rb
1210
+ - plugins/rigor-typelizer/lib/rigor-typelizer.rb
1211
+ - plugins/rigor-typelizer/lib/rigor/plugin/typelizer.rb
1212
+ - plugins/rigor-typelizer/lib/rigor/plugin/typelizer/serializer_collector.rb
1213
+ - plugins/rigor-typelizer/lib/rigor/plugin/typelizer/serializer_discoverer.rb
1214
+ - plugins/rigor-typelizer/lib/rigor/plugin/typelizer/serializer_index.rb
1153
1215
  - plugins/rigor-typescript-utility-types/lib/rigor-typescript-utility-types.rb
1154
1216
  - plugins/rigor-typescript-utility-types/lib/rigor/plugin/typescript_utility_types.rb
1155
1217
  - sig/prism_node_children.rbs
@@ -1267,6 +1329,7 @@ post_install_message: |
1267
1329
  rdoc_options: []
1268
1330
  require_paths:
1269
1331
  - lib
1332
+ - plugins/rigor-ac-library-rb/lib
1270
1333
  - plugins/rigor-actioncable/lib
1271
1334
  - plugins/rigor-actionmailer/lib
1272
1335
  - plugins/rigor-actionpack/lib
@@ -1275,6 +1338,7 @@ require_paths:
1275
1338
  - plugins/rigor-activerecord/lib
1276
1339
  - plugins/rigor-activestorage/lib
1277
1340
  - plugins/rigor-activesupport-core-ext/lib
1341
+ - plugins/rigor-alba/lib
1278
1342
  - plugins/rigor-devise/lib
1279
1343
  - plugins/rigor-dry-monads/lib
1280
1344
  - plugins/rigor-dry-schema/lib
@@ -1305,6 +1369,7 @@ require_paths:
1305
1369
  - plugins/rigor-sinatra/lib
1306
1370
  - plugins/rigor-sorbet/lib
1307
1371
  - plugins/rigor-statesman/lib
1372
+ - plugins/rigor-typelizer/lib
1308
1373
  - plugins/rigor-typescript-utility-types/lib
1309
1374
  required_ruby_version: !ruby/object:Gem::Requirement
1310
1375
  requirements: