rigortype 0.1.5 → 0.1.7
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 +76 -79
- data/lib/rigor/analysis/baseline.rb +347 -0
- data/lib/rigor/analysis/buffer_binding.rb +36 -0
- data/lib/rigor/analysis/check_rules.rb +68 -3
- data/lib/rigor/analysis/dependency_source_inference/index.rb +14 -1
- data/lib/rigor/analysis/dependency_source_inference/return_type_heuristic.rb +105 -0
- data/lib/rigor/analysis/dependency_source_inference/walker.rb +32 -12
- data/lib/rigor/analysis/project_scan.rb +39 -0
- data/lib/rigor/analysis/runner.rb +309 -22
- data/lib/rigor/analysis/worker_session.rb +14 -2
- data/lib/rigor/builtins/hkt_builtins.rb +342 -0
- data/lib/rigor/builtins/static_return_refinements.rb +142 -0
- data/lib/rigor/cache/store.rb +33 -3
- data/lib/rigor/cli/baseline_command.rb +377 -0
- data/lib/rigor/cli/lsp_command.rb +129 -0
- data/lib/rigor/cli/type_of_command.rb +44 -5
- data/lib/rigor/cli.rb +142 -13
- data/lib/rigor/configuration.rb +58 -2
- data/lib/rigor/environment/hkt_registry_holder.rb +33 -0
- data/lib/rigor/environment/rbs_coverage_report.rb +1 -1
- data/lib/rigor/environment/rbs_loader.rb +67 -2
- data/lib/rigor/environment/reporters.rb +40 -0
- data/lib/rigor/environment.rb +119 -9
- data/lib/rigor/flow_contribution/fact.rb +20 -10
- data/lib/rigor/inference/acceptance.rb +48 -3
- data/lib/rigor/inference/expression_typer.rb +64 -2
- data/lib/rigor/inference/hkt_body.rb +171 -0
- data/lib/rigor/inference/hkt_body_parser.rb +363 -0
- data/lib/rigor/inference/hkt_reducer.rb +256 -0
- data/lib/rigor/inference/hkt_registry.rb +223 -0
- data/lib/rigor/inference/method_dispatcher/overload_selector.rb +125 -30
- data/lib/rigor/inference/method_dispatcher/rbs_dispatch.rb +32 -11
- data/lib/rigor/inference/method_dispatcher/receiver_affinity.rb +87 -0
- data/lib/rigor/inference/method_dispatcher.rb +174 -6
- data/lib/rigor/inference/narrowing.rb +103 -1
- data/lib/rigor/inference/project_patched_methods.rb +70 -0
- data/lib/rigor/inference/project_patched_scanner.rb +210 -0
- data/lib/rigor/inference/scope_indexer.rb +209 -19
- data/lib/rigor/inference/statement_evaluator.rb +172 -11
- data/lib/rigor/inference/synthetic_method_scanner.rb +94 -16
- data/lib/rigor/language_server/buffer_table.rb +63 -0
- data/lib/rigor/language_server/completion_provider.rb +438 -0
- data/lib/rigor/language_server/debouncer.rb +86 -0
- data/lib/rigor/language_server/diagnostic_publisher.rb +167 -0
- data/lib/rigor/language_server/document_symbol_provider.rb +142 -0
- data/lib/rigor/language_server/folding_range_provider.rb +75 -0
- data/lib/rigor/language_server/hover_provider.rb +74 -0
- data/lib/rigor/language_server/hover_renderer.rb +312 -0
- data/lib/rigor/language_server/loop.rb +71 -0
- data/lib/rigor/language_server/project_context.rb +145 -0
- data/lib/rigor/language_server/selection_range_provider.rb +93 -0
- data/lib/rigor/language_server/server.rb +384 -0
- data/lib/rigor/language_server/signature_help_provider.rb +249 -0
- data/lib/rigor/language_server/synchronized_writer.rb +28 -0
- data/lib/rigor/language_server/uri.rb +40 -0
- data/lib/rigor/language_server.rb +29 -0
- data/lib/rigor/plugin/base.rb +63 -0
- data/lib/rigor/plugin/macro/heredoc_template.rb +127 -13
- data/lib/rigor/plugin/macro/trait_registry.rb +1 -1
- data/lib/rigor/plugin/manifest.rb +54 -7
- data/lib/rigor/plugin/registry.rb +19 -0
- data/lib/rigor/rbs_extended/hkt_directives.rb +326 -0
- data/lib/rigor/rbs_extended.rb +82 -2
- data/lib/rigor/sig_gen/generator.rb +12 -3
- data/lib/rigor/type/app.rb +107 -0
- data/lib/rigor/type.rb +1 -0
- data/lib/rigor/version.rb +1 -1
- data/sig/rigor/environment.rbs +10 -4
- data/sig/rigor/inference.rbs +2 -0
- data/sig/rigor.rbs +4 -1
- metadata +56 -1
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative "../trinary"
|
|
4
|
+
|
|
5
|
+
module Rigor
|
|
6
|
+
module Type
|
|
7
|
+
# A defunctionalised higher-kinded type application — the abstract
|
|
8
|
+
# "apply type-constructor `uri` to argument list `args`" carrier.
|
|
9
|
+
#
|
|
10
|
+
# `uri` is a namespaced `Symbol` of the form `:author::name`
|
|
11
|
+
# (e.g. `:"json::value"`, `:"dry_monads::result"`); the `::`
|
|
12
|
+
# namespace separator is mandatory per ADR-20 WD1 to prevent
|
|
13
|
+
# cross-plugin tag collisions.
|
|
14
|
+
#
|
|
15
|
+
# `args` is an ordered, frozen `Array` of `Rigor::Type` values
|
|
16
|
+
# carrying the application's argument list. At least one argument
|
|
17
|
+
# is required; arity-zero "HKT" forms are not modelled by this
|
|
18
|
+
# carrier (use a plain type alias instead).
|
|
19
|
+
#
|
|
20
|
+
# `bound` is a `Rigor::Type` representing the value Rigor MUST
|
|
21
|
+
# erase to when this `App` cannot be reduced — registered at
|
|
22
|
+
# `%a{rigor:v1:hkt_register}` time, defaulting to
|
|
23
|
+
# `Rigor::Type::Dynamic[Rigor::Type::Top]` per ADR-20 D5 / WD2. It
|
|
24
|
+
# also drives the lattice probes (`top` / `bot` / `dynamic`) and
|
|
25
|
+
# the acceptance fallback while no reduction is wired (Slice 1).
|
|
26
|
+
#
|
|
27
|
+
# Slice 1 ships the carrier as **opaque**: every operation
|
|
28
|
+
# delegates to `bound` since no reduction surface exists yet. Slice
|
|
29
|
+
# 2 introduces the conditional / indexed-access evaluator that
|
|
30
|
+
# reduces `App` to its registered body before delegating; the
|
|
31
|
+
# carrier shape stays identical.
|
|
32
|
+
#
|
|
33
|
+
# Display form per ADR-20 OQ5: bare RBS-style `uri[arg1, arg2]`,
|
|
34
|
+
# not the wrapped `App[uri, [arg1, arg2]]` faithful form. Two
|
|
35
|
+
# `App` values are structurally equal iff their `uri`, `args`,
|
|
36
|
+
# AND `bound` match.
|
|
37
|
+
#
|
|
38
|
+
# See docs/adr/20-lightweight-hkt.md.
|
|
39
|
+
class App
|
|
40
|
+
URI_SEPARATOR = "::"
|
|
41
|
+
|
|
42
|
+
attr_reader :uri, :args, :bound
|
|
43
|
+
|
|
44
|
+
def initialize(uri, args, bound:)
|
|
45
|
+
raise ArgumentError, "uri must be a Symbol, got #{uri.class}" unless uri.is_a?(Symbol)
|
|
46
|
+
unless uri.to_s.include?(URI_SEPARATOR)
|
|
47
|
+
raise ArgumentError,
|
|
48
|
+
"uri must be namespaced as `:author#{URI_SEPARATOR}name` per ADR-20 WD1, got #{uri.inspect}"
|
|
49
|
+
end
|
|
50
|
+
raise ArgumentError, "args must be an Array, got #{args.class}" unless args.is_a?(Array)
|
|
51
|
+
raise ArgumentError, "args must be non-empty (use a plain type alias for arity-0 forms)" if args.empty?
|
|
52
|
+
raise ArgumentError, "bound must be a Rigor type, got #{bound.class}" if bound.nil?
|
|
53
|
+
|
|
54
|
+
@uri = uri
|
|
55
|
+
@args = args.dup.freeze
|
|
56
|
+
@bound = bound
|
|
57
|
+
freeze
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
def describe(verbosity = :short)
|
|
61
|
+
rendered = args.map { |t| t.describe(verbosity) }.join(", ")
|
|
62
|
+
"#{uri}[#{rendered}]"
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
def erase_to_rbs
|
|
66
|
+
bound.erase_to_rbs
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
def top
|
|
70
|
+
bound.top
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
def bot
|
|
74
|
+
bound.bot
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
def dynamic
|
|
78
|
+
bound.dynamic
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
def accepts(other, mode: :gradual)
|
|
82
|
+
Inference::Acceptance.accepts(bound, other, mode: mode)
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
def ==(other)
|
|
86
|
+
other.is_a?(App) && uri == other.uri && args == other.args && bound == other.bound
|
|
87
|
+
end
|
|
88
|
+
alias eql? ==
|
|
89
|
+
|
|
90
|
+
def hash
|
|
91
|
+
[App, uri, args, bound].hash
|
|
92
|
+
end
|
|
93
|
+
|
|
94
|
+
def inspect
|
|
95
|
+
"#<Rigor::Type::App #{describe(:short)} (bound=#{bound.describe(:short)})>"
|
|
96
|
+
end
|
|
97
|
+
|
|
98
|
+
# ADR-20 Slice 2a — reduce this application against a
|
|
99
|
+
# registry. Returns the reducer's output (`bound` when
|
|
100
|
+
# reduction is blocked or fuel exhausts).
|
|
101
|
+
def reduce(registry, fuel: nil)
|
|
102
|
+
fuel ||= Inference::HktReducer::DEFAULT_FUEL
|
|
103
|
+
registry.reduce(self, fuel: fuel)
|
|
104
|
+
end
|
|
105
|
+
end
|
|
106
|
+
end
|
|
107
|
+
end
|
data/lib/rigor/type.rb
CHANGED
|
@@ -23,6 +23,7 @@ require_relative "type/union"
|
|
|
23
23
|
require_relative "type/difference"
|
|
24
24
|
require_relative "type/refined"
|
|
25
25
|
require_relative "type/intersection"
|
|
26
|
+
require_relative "type/app"
|
|
26
27
|
require_relative "type/bound_method"
|
|
27
28
|
require_relative "type/accepts_result"
|
|
28
29
|
require_relative "type/combinator"
|
data/lib/rigor/version.rb
CHANGED
data/sig/rigor/environment.rbs
CHANGED
|
@@ -8,19 +8,24 @@ module Rigor
|
|
|
8
8
|
attr_reader rbs_loader: RbsLoader?
|
|
9
9
|
attr_reader plugin_registry: untyped?
|
|
10
10
|
attr_reader dependency_source_index: untyped?
|
|
11
|
-
attr_reader
|
|
12
|
-
attr_reader boundary_cross_reporter: untyped?
|
|
11
|
+
attr_reader reporters: untyped
|
|
13
12
|
attr_reader name_scope: untyped?
|
|
14
13
|
attr_reader synthetic_method_index: untyped?
|
|
14
|
+
attr_reader project_patched_methods: untyped?
|
|
15
|
+
attr_reader hkt_registry: untyped?
|
|
15
16
|
|
|
16
17
|
def self.default: () -> Environment
|
|
17
|
-
def self.for_project: (?root: String, ?libraries: Array[String], ?signature_paths: Array[String | _ToPath]?, ?cache_store: untyped?, ?plugin_registry: untyped?, ?dependency_source_index: untyped?, ?rbs_extended_reporter: untyped?, ?boundary_cross_reporter: untyped?, ?bundler_bundle_path: String?, ?bundler_auto_detect: bool, ?synthetic_method_index: untyped?) -> Environment
|
|
18
|
+
def self.for_project: (?root: String, ?libraries: Array[String], ?signature_paths: Array[String | _ToPath]?, ?cache_store: untyped?, ?plugin_registry: untyped?, ?dependency_source_index: untyped?, ?rbs_extended_reporter: untyped?, ?boundary_cross_reporter: untyped?, ?bundler_bundle_path: String?, ?bundler_auto_detect: bool, ?synthetic_method_index: untyped?, ?project_patched_methods: untyped?) -> Environment
|
|
18
19
|
|
|
19
|
-
def initialize: (?class_registry: ClassRegistry, ?rbs_loader: RbsLoader?, ?plugin_registry: untyped?, ?dependency_source_index: untyped?, ?rbs_extended_reporter: untyped?, ?boundary_cross_reporter: untyped?, ?synthetic_method_index: untyped?) -> void
|
|
20
|
+
def initialize: (?class_registry: ClassRegistry, ?rbs_loader: RbsLoader?, ?plugin_registry: untyped?, ?dependency_source_index: untyped?, ?rbs_extended_reporter: untyped?, ?boundary_cross_reporter: untyped?, ?synthetic_method_index: untyped?, ?project_patched_methods: untyped?) -> void
|
|
21
|
+
def rbs_extended_reporter: () -> untyped?
|
|
22
|
+
def boundary_cross_reporter: () -> untyped?
|
|
23
|
+
def attach_reporters!: (rbs_extended_reporter: untyped?, boundary_cross_reporter: untyped?) -> nil
|
|
20
24
|
def nominal_for_name: (String | Symbol name) -> Type::Nominal?
|
|
21
25
|
def singleton_for_name: (String | Symbol name) -> Type::Singleton?
|
|
22
26
|
def constant_for_name: (String | Symbol name) -> Type::t?
|
|
23
27
|
def class_known?: (String | Symbol name) -> bool
|
|
28
|
+
def rbs_module?: (String | Symbol name) -> bool
|
|
24
29
|
def class_ordering: (String | Symbol lhs, String | Symbol rhs) -> ordering
|
|
25
30
|
def reflection: () -> untyped?
|
|
26
31
|
|
|
@@ -48,6 +53,7 @@ module Rigor
|
|
|
48
53
|
|
|
49
54
|
def initialize: (?libraries: Array[String], ?signature_paths: Array[String | _ToPath], ?cache_store: untyped?) -> void
|
|
50
55
|
def class_known?: (String | Symbol name) -> bool
|
|
56
|
+
def rbs_module?: (String | Symbol name) -> bool
|
|
51
57
|
def instance_definition: (String | Symbol class_name) -> untyped?
|
|
52
58
|
def instance_method: (class_name: String | Symbol, method_name: String | Symbol) -> untyped?
|
|
53
59
|
def uncached_instance_definition: (String | Symbol class_name) -> untyped?
|
data/sig/rigor/inference.rbs
CHANGED
|
@@ -134,6 +134,8 @@ module Rigor
|
|
|
134
134
|
def self?.index: (untyped root, default_scope: Scope) -> Hash[untyped, Scope]
|
|
135
135
|
def self?.build_declaration_overrides: (untyped root) -> Hash[untyped, Type::t]
|
|
136
136
|
def self?.record_declarations: (untyped node, Array[String] qualified_prefix, Hash[untyped, Type::t] identity_table, Hash[String, Type::t] discovered) -> void
|
|
137
|
+
def self?.discovered_classes_for_paths: (Array[String] paths, ?buffer: untyped) -> Hash[String, Type::t]
|
|
138
|
+
def self?.collect_class_decls: (untyped node, Array[String] qualified_prefix, Hash[String, Type::t] accumulator) -> void
|
|
137
139
|
def self?.qualified_name_for: (untyped constant_path_node) -> String?
|
|
138
140
|
def self?.render_constant_path: (untyped node) -> String
|
|
139
141
|
def self?.propagate: (untyped node, Hash[untyped, Scope] table, Scope parent_scope) -> void
|
data/sig/rigor.rbs
CHANGED
|
@@ -9,6 +9,7 @@ module Rigor
|
|
|
9
9
|
attr_reader paths: Array[String]
|
|
10
10
|
attr_reader plugins: Array[String]
|
|
11
11
|
attr_reader cache_path: String
|
|
12
|
+
attr_reader baseline_path: String?
|
|
12
13
|
|
|
13
14
|
def self.load: (?String path) -> Configuration
|
|
14
15
|
def initialize: (?Hash[String, untyped] data) -> void
|
|
@@ -104,8 +105,10 @@ module Rigor
|
|
|
104
105
|
# otherwise raises `RBS::UnknownTypeName` for the named type.
|
|
105
106
|
attr_reader cache_store: untyped
|
|
106
107
|
attr_reader plugin_registry: untyped
|
|
107
|
-
|
|
108
|
+
attr_reader buffer: untyped
|
|
109
|
+
def initialize: (configuration: Configuration, ?explain: bool, ?cache_store: untyped, ?plugin_requirer: untyped, ?workers: Integer, ?collect_stats: bool, ?buffer: untyped, ?prebuilt: untyped, ?environment: untyped) -> void
|
|
108
110
|
def run: (?Array[String] paths) -> Result
|
|
111
|
+
def prepare_project_scan: (?paths: Array[String]) -> untyped
|
|
109
112
|
end
|
|
110
113
|
end
|
|
111
114
|
end
|
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.7
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Rigor contributors
|
|
@@ -9,6 +9,26 @@ bindir: exe
|
|
|
9
9
|
cert_chain: []
|
|
10
10
|
date: 1980-01-01 00:00:00.000000000 Z
|
|
11
11
|
dependencies:
|
|
12
|
+
- !ruby/object:Gem::Dependency
|
|
13
|
+
name: language_server-protocol
|
|
14
|
+
requirement: !ruby/object:Gem::Requirement
|
|
15
|
+
requirements:
|
|
16
|
+
- - ">="
|
|
17
|
+
- !ruby/object:Gem::Version
|
|
18
|
+
version: '3.17'
|
|
19
|
+
- - "<"
|
|
20
|
+
- !ruby/object:Gem::Version
|
|
21
|
+
version: '4.0'
|
|
22
|
+
type: :runtime
|
|
23
|
+
prerelease: false
|
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
25
|
+
requirements:
|
|
26
|
+
- - ">="
|
|
27
|
+
- !ruby/object:Gem::Version
|
|
28
|
+
version: '3.17'
|
|
29
|
+
- - "<"
|
|
30
|
+
- !ruby/object:Gem::Version
|
|
31
|
+
version: '4.0'
|
|
12
32
|
- !ruby/object:Gem::Dependency
|
|
13
33
|
name: prism
|
|
14
34
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -203,6 +223,8 @@ files:
|
|
|
203
223
|
- data/builtins/ruby_core/time.yml
|
|
204
224
|
- exe/rigor
|
|
205
225
|
- lib/rigor.rb
|
|
226
|
+
- lib/rigor/analysis/baseline.rb
|
|
227
|
+
- lib/rigor/analysis/buffer_binding.rb
|
|
206
228
|
- lib/rigor/analysis/check_rules.rb
|
|
207
229
|
- lib/rigor/analysis/check_rules/always_truthy_condition_collector.rb
|
|
208
230
|
- lib/rigor/analysis/check_rules/dead_assignment_collector.rb
|
|
@@ -212,9 +234,11 @@ files:
|
|
|
212
234
|
- lib/rigor/analysis/dependency_source_inference/builder.rb
|
|
213
235
|
- lib/rigor/analysis/dependency_source_inference/gem_resolver.rb
|
|
214
236
|
- lib/rigor/analysis/dependency_source_inference/index.rb
|
|
237
|
+
- lib/rigor/analysis/dependency_source_inference/return_type_heuristic.rb
|
|
215
238
|
- lib/rigor/analysis/dependency_source_inference/walker.rb
|
|
216
239
|
- lib/rigor/analysis/diagnostic.rb
|
|
217
240
|
- lib/rigor/analysis/fact_store.rb
|
|
241
|
+
- lib/rigor/analysis/project_scan.rb
|
|
218
242
|
- lib/rigor/analysis/result.rb
|
|
219
243
|
- lib/rigor/analysis/rule_catalog.rb
|
|
220
244
|
- lib/rigor/analysis/run_stats.rb
|
|
@@ -222,8 +246,10 @@ files:
|
|
|
222
246
|
- lib/rigor/analysis/worker_session.rb
|
|
223
247
|
- lib/rigor/ast.rb
|
|
224
248
|
- lib/rigor/ast/type_node.rb
|
|
249
|
+
- lib/rigor/builtins/hkt_builtins.rb
|
|
225
250
|
- lib/rigor/builtins/imported_refinements.rb
|
|
226
251
|
- lib/rigor/builtins/regex_refinement.rb
|
|
252
|
+
- lib/rigor/builtins/static_return_refinements.rb
|
|
227
253
|
- lib/rigor/cache/descriptor.rb
|
|
228
254
|
- lib/rigor/cache/rbs_class_ancestor_table.rb
|
|
229
255
|
- lib/rigor/cache/rbs_class_type_param_names.rb
|
|
@@ -235,8 +261,10 @@ files:
|
|
|
235
261
|
- lib/rigor/cache/rbs_known_class_names.rb
|
|
236
262
|
- lib/rigor/cache/store.rb
|
|
237
263
|
- lib/rigor/cli.rb
|
|
264
|
+
- lib/rigor/cli/baseline_command.rb
|
|
238
265
|
- lib/rigor/cli/diff_command.rb
|
|
239
266
|
- lib/rigor/cli/explain_command.rb
|
|
267
|
+
- lib/rigor/cli/lsp_command.rb
|
|
240
268
|
- lib/rigor/cli/sig_gen_command.rb
|
|
241
269
|
- lib/rigor/cli/type_of_command.rb
|
|
242
270
|
- lib/rigor/cli/type_of_renderer.rb
|
|
@@ -249,12 +277,14 @@ files:
|
|
|
249
277
|
- lib/rigor/environment.rb
|
|
250
278
|
- lib/rigor/environment/bundle_sig_discovery.rb
|
|
251
279
|
- lib/rigor/environment/class_registry.rb
|
|
280
|
+
- lib/rigor/environment/hkt_registry_holder.rb
|
|
252
281
|
- lib/rigor/environment/lockfile_resolver.rb
|
|
253
282
|
- lib/rigor/environment/rbs_collection_discovery.rb
|
|
254
283
|
- lib/rigor/environment/rbs_coverage_report.rb
|
|
255
284
|
- lib/rigor/environment/rbs_hierarchy.rb
|
|
256
285
|
- lib/rigor/environment/rbs_loader.rb
|
|
257
286
|
- lib/rigor/environment/reflection.rb
|
|
287
|
+
- lib/rigor/environment/reporters.rb
|
|
258
288
|
- lib/rigor/flow_contribution.rb
|
|
259
289
|
- lib/rigor/flow_contribution/conflict.rb
|
|
260
290
|
- lib/rigor/flow_contribution/element.rb
|
|
@@ -288,6 +318,10 @@ files:
|
|
|
288
318
|
- lib/rigor/inference/expression_typer.rb
|
|
289
319
|
- lib/rigor/inference/fallback.rb
|
|
290
320
|
- lib/rigor/inference/fallback_tracer.rb
|
|
321
|
+
- lib/rigor/inference/hkt_body.rb
|
|
322
|
+
- lib/rigor/inference/hkt_body_parser.rb
|
|
323
|
+
- lib/rigor/inference/hkt_reducer.rb
|
|
324
|
+
- lib/rigor/inference/hkt_registry.rb
|
|
291
325
|
- lib/rigor/inference/macro_block_self_type.rb
|
|
292
326
|
- lib/rigor/inference/method_dispatcher.rb
|
|
293
327
|
- lib/rigor/inference/method_dispatcher/block_folding.rb
|
|
@@ -299,16 +333,35 @@ files:
|
|
|
299
333
|
- lib/rigor/inference/method_dispatcher/method_folding.rb
|
|
300
334
|
- lib/rigor/inference/method_dispatcher/overload_selector.rb
|
|
301
335
|
- lib/rigor/inference/method_dispatcher/rbs_dispatch.rb
|
|
336
|
+
- lib/rigor/inference/method_dispatcher/receiver_affinity.rb
|
|
302
337
|
- lib/rigor/inference/method_dispatcher/shape_dispatch.rb
|
|
303
338
|
- lib/rigor/inference/method_parameter_binder.rb
|
|
304
339
|
- lib/rigor/inference/multi_target_binder.rb
|
|
305
340
|
- lib/rigor/inference/narrowing.rb
|
|
341
|
+
- lib/rigor/inference/project_patched_methods.rb
|
|
342
|
+
- lib/rigor/inference/project_patched_scanner.rb
|
|
306
343
|
- lib/rigor/inference/rbs_type_translator.rb
|
|
307
344
|
- lib/rigor/inference/scope_indexer.rb
|
|
308
345
|
- lib/rigor/inference/statement_evaluator.rb
|
|
309
346
|
- lib/rigor/inference/synthetic_method.rb
|
|
310
347
|
- lib/rigor/inference/synthetic_method_index.rb
|
|
311
348
|
- lib/rigor/inference/synthetic_method_scanner.rb
|
|
349
|
+
- lib/rigor/language_server.rb
|
|
350
|
+
- lib/rigor/language_server/buffer_table.rb
|
|
351
|
+
- lib/rigor/language_server/completion_provider.rb
|
|
352
|
+
- lib/rigor/language_server/debouncer.rb
|
|
353
|
+
- lib/rigor/language_server/diagnostic_publisher.rb
|
|
354
|
+
- lib/rigor/language_server/document_symbol_provider.rb
|
|
355
|
+
- lib/rigor/language_server/folding_range_provider.rb
|
|
356
|
+
- lib/rigor/language_server/hover_provider.rb
|
|
357
|
+
- lib/rigor/language_server/hover_renderer.rb
|
|
358
|
+
- lib/rigor/language_server/loop.rb
|
|
359
|
+
- lib/rigor/language_server/project_context.rb
|
|
360
|
+
- lib/rigor/language_server/selection_range_provider.rb
|
|
361
|
+
- lib/rigor/language_server/server.rb
|
|
362
|
+
- lib/rigor/language_server/signature_help_provider.rb
|
|
363
|
+
- lib/rigor/language_server/synchronized_writer.rb
|
|
364
|
+
- lib/rigor/language_server/uri.rb
|
|
312
365
|
- lib/rigor/plugin.rb
|
|
313
366
|
- lib/rigor/plugin/access_denied_error.rb
|
|
314
367
|
- lib/rigor/plugin/base.rb
|
|
@@ -328,6 +381,7 @@ files:
|
|
|
328
381
|
- lib/rigor/plugin/trust_policy.rb
|
|
329
382
|
- lib/rigor/plugin/type_node_resolver.rb
|
|
330
383
|
- lib/rigor/rbs_extended.rb
|
|
384
|
+
- lib/rigor/rbs_extended/hkt_directives.rb
|
|
331
385
|
- lib/rigor/rbs_extended/reporter.rb
|
|
332
386
|
- lib/rigor/reflection.rb
|
|
333
387
|
- lib/rigor/scope.rb
|
|
@@ -350,6 +404,7 @@ files:
|
|
|
350
404
|
- lib/rigor/trinary.rb
|
|
351
405
|
- lib/rigor/type.rb
|
|
352
406
|
- lib/rigor/type/accepts_result.rb
|
|
407
|
+
- lib/rigor/type/app.rb
|
|
353
408
|
- lib/rigor/type/bot.rb
|
|
354
409
|
- lib/rigor/type/bound_method.rb
|
|
355
410
|
- lib/rigor/type/combinator.rb
|