solargraph 0.58.0 → 0.59.0
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/.envrc +3 -0
- data/.gitattributes +2 -0
- data/.github/workflows/linting.yml +6 -5
- data/.github/workflows/plugins.yml +48 -35
- data/.github/workflows/rspec.yml +15 -28
- data/.github/workflows/typecheck.yml +3 -2
- data/.gitignore +1 -0
- data/.rubocop.yml +38 -6
- data/.rubocop_todo.yml +53 -966
- data/CHANGELOG.md +24 -0
- data/Gemfile +3 -1
- data/README.md +3 -3
- data/Rakefile +26 -23
- data/bin/solargraph +9 -8
- data/lib/solargraph/api_map/cache.rb +110 -110
- data/lib/solargraph/api_map/constants.rb +288 -279
- data/lib/solargraph/api_map/index.rb +204 -193
- data/lib/solargraph/api_map/source_to_yard.rb +110 -97
- data/lib/solargraph/api_map/store.rb +395 -384
- data/lib/solargraph/api_map.rb +1029 -945
- data/lib/solargraph/bench.rb +44 -45
- data/lib/solargraph/complex_type/conformance.rb +176 -0
- data/lib/solargraph/complex_type/type_methods.rb +240 -228
- data/lib/solargraph/complex_type/unique_type.rb +641 -482
- data/lib/solargraph/complex_type.rb +557 -444
- data/lib/solargraph/convention/data_definition/data_assignment_node.rb +61 -61
- data/lib/solargraph/convention/data_definition/data_definition_node.rb +93 -91
- data/lib/solargraph/convention/data_definition.rb +108 -105
- data/lib/solargraph/convention/gemfile.rb +15 -15
- data/lib/solargraph/convention/gemspec.rb +23 -23
- data/lib/solargraph/convention/rakefile.rb +17 -17
- data/lib/solargraph/convention/struct_definition/struct_assignment_node.rb +62 -61
- data/lib/solargraph/convention/struct_definition/struct_definition_node.rb +103 -102
- data/lib/solargraph/convention/struct_definition.rb +168 -164
- data/lib/solargraph/convention.rb +78 -78
- data/lib/solargraph/converters/dd.rb +19 -17
- data/lib/solargraph/converters/dl.rb +17 -15
- data/lib/solargraph/converters/dt.rb +17 -15
- data/lib/solargraph/converters/misc.rb +3 -1
- data/lib/solargraph/diagnostics/require_not_found.rb +54 -53
- data/lib/solargraph/diagnostics/rubocop.rb +119 -118
- data/lib/solargraph/diagnostics/rubocop_helpers.rb +70 -68
- data/lib/solargraph/diagnostics/type_check.rb +56 -55
- data/lib/solargraph/diagnostics/update_errors.rb +37 -41
- data/lib/solargraph/doc_map.rb +438 -439
- data/lib/solargraph/equality.rb +34 -34
- data/lib/solargraph/gem_pins.rb +98 -98
- data/lib/solargraph/language_server/error_codes.rb +20 -20
- data/lib/solargraph/language_server/host/diagnoser.rb +89 -89
- data/lib/solargraph/language_server/host/dispatch.rb +130 -130
- data/lib/solargraph/language_server/host/message_worker.rb +113 -112
- data/lib/solargraph/language_server/host/sources.rb +100 -99
- data/lib/solargraph/language_server/host.rb +886 -878
- data/lib/solargraph/language_server/message/base.rb +97 -97
- data/lib/solargraph/language_server/message/client/register_capability.rb +13 -15
- data/lib/solargraph/language_server/message/completion_item/resolve.rb +58 -60
- data/lib/solargraph/language_server/message/extended/check_gem_version.rb +108 -114
- data/lib/solargraph/language_server/message/extended/document.rb +24 -23
- data/lib/solargraph/language_server/message/extended/document_gems.rb +32 -32
- data/lib/solargraph/language_server/message/extended/download_core.rb +20 -19
- data/lib/solargraph/language_server/message/extended/search.rb +20 -20
- data/lib/solargraph/language_server/message/initialize.rb +197 -191
- data/lib/solargraph/language_server/message/text_document/completion.rb +58 -56
- data/lib/solargraph/language_server/message/text_document/definition.rb +49 -40
- data/lib/solargraph/language_server/message/text_document/document_highlight.rb +23 -16
- data/lib/solargraph/language_server/message/text_document/document_symbol.rb +36 -26
- data/lib/solargraph/language_server/message/text_document/formatting.rb +150 -148
- data/lib/solargraph/language_server/message/text_document/hover.rb +58 -58
- data/lib/solargraph/language_server/message/text_document/prepare_rename.rb +18 -11
- data/lib/solargraph/language_server/message/text_document/references.rb +23 -16
- data/lib/solargraph/language_server/message/text_document/rename.rb +26 -19
- data/lib/solargraph/language_server/message/text_document/signature_help.rb +25 -24
- data/lib/solargraph/language_server/message/text_document/type_definition.rb +33 -25
- data/lib/solargraph/language_server/message/workspace/did_change_configuration.rb +41 -35
- data/lib/solargraph/language_server/message/workspace/did_change_watched_files.rb +48 -40
- data/lib/solargraph/language_server/message/workspace/did_change_workspace_folders.rb +32 -26
- data/lib/solargraph/language_server/message/workspace/workspace_symbol.rb +33 -23
- data/lib/solargraph/language_server/message.rb +94 -94
- data/lib/solargraph/language_server/request.rb +29 -27
- data/lib/solargraph/language_server/transport/data_reader.rb +72 -74
- data/lib/solargraph/language_server/uri_helpers.rb +49 -49
- data/lib/solargraph/library.rb +702 -683
- data/lib/solargraph/location.rb +85 -82
- data/lib/solargraph/logging.rb +55 -37
- data/lib/solargraph/page.rb +92 -92
- data/lib/solargraph/parser/comment_ripper.rb +84 -69
- data/lib/solargraph/parser/flow_sensitive_typing.rb +471 -255
- data/lib/solargraph/parser/node_processor/base.rb +122 -92
- data/lib/solargraph/parser/node_processor.rb +63 -62
- data/lib/solargraph/parser/parser_gem/class_methods.rb +165 -149
- data/lib/solargraph/parser/parser_gem/flawed_builder.rb +19 -19
- data/lib/solargraph/parser/parser_gem/node_chainer.rb +191 -166
- data/lib/solargraph/parser/parser_gem/node_methods.rb +507 -486
- data/lib/solargraph/parser/parser_gem/node_processors/and_node.rb +22 -22
- data/lib/solargraph/parser/parser_gem/node_processors/args_node.rb +61 -59
- data/lib/solargraph/parser/parser_gem/node_processors/begin_node.rb +24 -15
- data/lib/solargraph/parser/parser_gem/node_processors/block_node.rb +45 -46
- data/lib/solargraph/parser/parser_gem/node_processors/def_node.rb +60 -53
- data/lib/solargraph/parser/parser_gem/node_processors/defs_node.rb +38 -37
- data/lib/solargraph/parser/parser_gem/node_processors/if_node.rb +53 -23
- data/lib/solargraph/parser/parser_gem/node_processors/ivasgn_node.rb +42 -40
- data/lib/solargraph/parser/parser_gem/node_processors/lvasgn_node.rb +30 -29
- data/lib/solargraph/parser/parser_gem/node_processors/masgn_node.rb +61 -59
- data/lib/solargraph/parser/parser_gem/node_processors/opasgn_node.rb +98 -98
- data/lib/solargraph/parser/parser_gem/node_processors/or_node.rb +22 -0
- data/lib/solargraph/parser/parser_gem/node_processors/orasgn_node.rb +17 -17
- data/lib/solargraph/parser/parser_gem/node_processors/resbody_node.rb +39 -38
- data/lib/solargraph/parser/parser_gem/node_processors/sclass_node.rb +51 -52
- data/lib/solargraph/parser/parser_gem/node_processors/send_node.rb +302 -291
- data/lib/solargraph/parser/parser_gem/node_processors/until_node.rb +29 -29
- data/lib/solargraph/parser/parser_gem/node_processors/when_node.rb +23 -0
- data/lib/solargraph/parser/parser_gem/node_processors/while_node.rb +33 -29
- data/lib/solargraph/parser/parser_gem/node_processors.rb +74 -70
- data/lib/solargraph/parser/parser_gem.rb +14 -12
- data/lib/solargraph/parser/region.rb +75 -69
- data/lib/solargraph/parser/snippet.rb +19 -17
- data/lib/solargraph/parser.rb +25 -23
- data/lib/solargraph/pin/base.rb +773 -729
- data/lib/solargraph/pin/base_variable.rb +375 -126
- data/lib/solargraph/pin/block.rb +127 -104
- data/lib/solargraph/pin/breakable.rb +15 -9
- data/lib/solargraph/pin/callable.rb +275 -231
- data/lib/solargraph/pin/closure.rb +69 -72
- data/lib/solargraph/pin/common.rb +97 -79
- data/lib/solargraph/pin/compound_statement.rb +55 -0
- data/lib/solargraph/pin/constant.rb +43 -45
- data/lib/solargraph/pin/conversions.rb +129 -123
- data/lib/solargraph/pin/delegated_method.rb +131 -120
- data/lib/solargraph/pin/documenting.rb +116 -114
- data/lib/solargraph/pin/instance_variable.rb +38 -34
- data/lib/solargraph/pin/keyword.rb +16 -20
- data/lib/solargraph/pin/local_variable.rb +31 -75
- data/lib/solargraph/pin/method.rb +724 -672
- data/lib/solargraph/pin/method_alias.rb +42 -34
- data/lib/solargraph/pin/namespace.rb +122 -115
- data/lib/solargraph/pin/parameter.rb +339 -275
- data/lib/solargraph/pin/proxy_type.rb +42 -39
- data/lib/solargraph/pin/reference/override.rb +47 -47
- data/lib/solargraph/pin/reference/superclass.rb +17 -15
- data/lib/solargraph/pin/reference/type_alias.rb +16 -0
- data/lib/solargraph/pin/reference.rb +59 -39
- data/lib/solargraph/pin/search.rb +62 -61
- data/lib/solargraph/pin/signature.rb +64 -61
- data/lib/solargraph/pin/symbol.rb +54 -53
- data/lib/solargraph/pin/until.rb +16 -18
- data/lib/solargraph/pin/while.rb +16 -18
- data/lib/solargraph/pin.rb +46 -44
- data/lib/solargraph/pin_cache.rb +248 -245
- data/lib/solargraph/position.rb +139 -119
- data/lib/solargraph/range.rb +113 -112
- data/lib/solargraph/rbs_map/conversions.rb +952 -823
- data/lib/solargraph/rbs_map/core_fills.rb +91 -84
- data/lib/solargraph/rbs_map/core_map.rb +65 -58
- data/lib/solargraph/rbs_map/stdlib_map.rb +71 -43
- data/lib/solargraph/rbs_map.rb +207 -163
- data/lib/solargraph/server_methods.rb +16 -16
- data/lib/solargraph/shell.rb +555 -352
- data/lib/solargraph/source/chain/array.rb +39 -37
- data/lib/solargraph/source/chain/call.rb +377 -337
- data/lib/solargraph/source/chain/class_variable.rb +13 -13
- data/lib/solargraph/source/chain/constant.rb +30 -26
- data/lib/solargraph/source/chain/global_variable.rb +13 -13
- data/lib/solargraph/source/chain/hash.rb +37 -34
- data/lib/solargraph/source/chain/if.rb +30 -28
- data/lib/solargraph/source/chain/instance_variable.rb +36 -13
- data/lib/solargraph/source/chain/link.rb +99 -109
- data/lib/solargraph/source/chain/literal.rb +51 -48
- data/lib/solargraph/source/chain/or.rb +29 -23
- data/lib/solargraph/source/chain/q_call.rb +13 -11
- data/lib/solargraph/source/chain/variable.rb +15 -13
- data/lib/solargraph/source/chain/z_super.rb +28 -30
- data/lib/solargraph/source/chain.rb +304 -291
- data/lib/solargraph/source/change.rb +89 -82
- data/lib/solargraph/source/cursor.rb +172 -166
- data/lib/solargraph/source/encoding_fixes.rb +22 -23
- data/lib/solargraph/source/source_chainer.rb +218 -194
- data/lib/solargraph/source/updater.rb +59 -55
- data/lib/solargraph/source.rb +522 -498
- data/lib/solargraph/source_map/clip.rb +245 -226
- data/lib/solargraph/source_map/data.rb +37 -34
- data/lib/solargraph/source_map/mapper.rb +286 -259
- data/lib/solargraph/source_map.rb +224 -212
- data/lib/solargraph/type_checker/problem.rb +34 -32
- data/lib/solargraph/type_checker/rules.rb +157 -84
- data/lib/solargraph/type_checker.rb +888 -814
- data/lib/solargraph/version.rb +5 -5
- data/lib/solargraph/workspace/config.rb +258 -255
- data/lib/solargraph/workspace/gemspecs.rb +367 -0
- data/lib/solargraph/workspace/require_paths.rb +98 -97
- data/lib/solargraph/workspace.rb +242 -220
- data/lib/solargraph/yard_map/helpers.rb +49 -44
- data/lib/solargraph/yard_map/mapper/to_method.rb +136 -130
- data/lib/solargraph/yard_map/mapper/to_namespace.rb +32 -31
- data/lib/solargraph/yard_map/mapper.rb +84 -79
- data/lib/solargraph/yard_map.rb +17 -18
- data/lib/solargraph/yard_tags.rb +20 -20
- data/lib/solargraph/yardoc.rb +90 -87
- data/lib/solargraph.rb +128 -105
- data/rbs/fills/rubygems/0/dependency.rbs +193 -0
- data/rbs/fills/tuple/tuple.rbs +28 -0
- data/rbs/shims/ast/0/node.rbs +5 -0
- data/rbs/shims/diff-lcs/1.5/diff-lcs.rbs +11 -0
- data/rbs_collection.yaml +1 -1
- data/solargraph.gemspec +37 -35
- metadata +52 -51
- data/lib/solargraph/type_checker/checks.rb +0 -124
- data/lib/solargraph/type_checker/param_def.rb +0 -37
- data/lib/solargraph/yard_map/to_method.rb +0 -89
- data/sig/shims/ast/0/node.rbs +0 -5
- /data/{sig → rbs}/shims/ast/2.4/.rbs_meta.yaml +0 -0
- /data/{sig → rbs}/shims/ast/2.4/ast.rbs +0 -0
- /data/{sig → rbs}/shims/parser/3.2.0.1/builders/default.rbs +0 -0
- /data/{sig → rbs}/shims/parser/3.2.0.1/manifest.yaml +0 -0
- /data/{sig → rbs}/shims/parser/3.2.0.1/parser.rbs +0 -0
- /data/{sig → rbs}/shims/parser/3.2.0.1/polyfill.rbs +0 -0
- /data/{sig → rbs}/shims/thor/1.2.0.1/.rbs_meta.yaml +0 -0
- /data/{sig → rbs}/shims/thor/1.2.0.1/manifest.yaml +0 -0
- /data/{sig → rbs}/shims/thor/1.2.0.1/thor.rbs +0 -0
data/solargraph.gemspec
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
# @sg-ignore Should better support meaning of '&' in RBS
|
|
4
|
+
$LOAD_PATH.unshift "#{File.dirname(__FILE__)}/lib"
|
|
2
5
|
require 'solargraph/version'
|
|
3
6
|
require 'date'
|
|
4
7
|
|
|
@@ -6,12 +9,11 @@ require 'date'
|
|
|
6
9
|
Gem::Specification.new do |s|
|
|
7
10
|
s.name = 'solargraph'
|
|
8
11
|
s.version = Solargraph::VERSION
|
|
9
|
-
s.
|
|
10
|
-
s.
|
|
11
|
-
s.
|
|
12
|
-
s.authors = ["Fred Snyder"]
|
|
12
|
+
s.summary = 'A Ruby language server'
|
|
13
|
+
s.description = 'IDE tools for code completion, inline documentation, and static analysis'
|
|
14
|
+
s.authors = ['Fred Snyder']
|
|
13
15
|
s.email = 'admin@castwide.com'
|
|
14
|
-
s.files = Dir.chdir(File.expand_path(
|
|
16
|
+
s.files = Dir.chdir(File.expand_path(__dir__)) do
|
|
15
17
|
# @sg-ignore Need backtick support
|
|
16
18
|
# @type [String]
|
|
17
19
|
all_files = `git ls-files -z`
|
|
@@ -20,36 +22,36 @@ Gem::Specification.new do |s|
|
|
|
20
22
|
s.homepage = 'https://solargraph.org'
|
|
21
23
|
s.license = 'MIT'
|
|
22
24
|
s.executables = ['solargraph']
|
|
23
|
-
s.metadata[
|
|
24
|
-
s.metadata[
|
|
25
|
-
s.metadata[
|
|
26
|
-
s.metadata[
|
|
27
|
-
s.metadata[
|
|
25
|
+
s.metadata['funding_uri'] = 'https://www.patreon.com/castwide'
|
|
26
|
+
s.metadata['bug_tracker_uri'] = 'https://github.com/castwide/solargraph/issues'
|
|
27
|
+
s.metadata['changelog_uri'] = 'https://github.com/castwide/solargraph/blob/master/CHANGELOG.md'
|
|
28
|
+
s.metadata['source_code_uri'] = 'https://github.com/castwide/solargraph'
|
|
29
|
+
s.metadata['rubygems_mfa_required'] = 'true'
|
|
28
30
|
|
|
29
|
-
s.required_ruby_version = '>= 3.
|
|
31
|
+
s.required_ruby_version = '>= 3.1'
|
|
30
32
|
|
|
31
|
-
s.
|
|
32
|
-
s.
|
|
33
|
-
s.
|
|
34
|
-
s.
|
|
35
|
-
s.
|
|
36
|
-
s.
|
|
37
|
-
s.
|
|
38
|
-
s.
|
|
39
|
-
s.
|
|
40
|
-
s.
|
|
41
|
-
s.
|
|
42
|
-
s.
|
|
43
|
-
s.
|
|
44
|
-
s.
|
|
45
|
-
s.
|
|
46
|
-
s.
|
|
47
|
-
s.
|
|
48
|
-
s.
|
|
49
|
-
s.
|
|
50
|
-
s.
|
|
51
|
-
s.
|
|
52
|
-
s.
|
|
33
|
+
s.add_dependency 'ast', '~> 2.4.3'
|
|
34
|
+
s.add_dependency 'backport', '~> 1.2'
|
|
35
|
+
s.add_dependency 'benchmark', '~> 0.4'
|
|
36
|
+
s.add_dependency 'bundler', '>= 2.0'
|
|
37
|
+
s.add_dependency 'diff-lcs', '~> 1.4'
|
|
38
|
+
s.add_dependency 'jaro_winkler', '~> 1.6', '>= 1.6.1'
|
|
39
|
+
s.add_dependency 'kramdown', '~> 2.3'
|
|
40
|
+
s.add_dependency 'kramdown-parser-gfm', '~> 1.1'
|
|
41
|
+
s.add_dependency 'logger', '~> 1.6'
|
|
42
|
+
s.add_dependency 'observer', '~> 0.1'
|
|
43
|
+
s.add_dependency 'open3', '~> 0.2.1'
|
|
44
|
+
s.add_dependency 'ostruct', '~> 0.6'
|
|
45
|
+
s.add_dependency 'parser', '~> 3.0'
|
|
46
|
+
s.add_dependency 'prism', '~> 1.4'
|
|
47
|
+
s.add_dependency 'rbs', '>= 3.10.0'
|
|
48
|
+
s.add_dependency 'reverse_markdown', '~> 3.0'
|
|
49
|
+
s.add_dependency 'rubocop', '~> 1.76'
|
|
50
|
+
s.add_dependency 'thor', '~> 1.0'
|
|
51
|
+
s.add_dependency 'tilt', '~> 2.0'
|
|
52
|
+
s.add_dependency 'yard', '~> 0.9', '>= 0.9.24'
|
|
53
|
+
s.add_dependency 'yard-activesupport-concern', '~> 0.0'
|
|
54
|
+
s.add_dependency 'yard-solargraph', '~> 0.1'
|
|
53
55
|
|
|
54
56
|
s.add_development_dependency 'pry', '~> 0.15'
|
|
55
57
|
s.add_development_dependency 'public_suffix', '~> 3.1'
|
|
@@ -61,6 +63,7 @@ Gem::Specification.new do |s|
|
|
|
61
63
|
#
|
|
62
64
|
# even more specific on RuboCop itself, which is written into _todo
|
|
63
65
|
# file.
|
|
66
|
+
s.add_development_dependency 'overcommit', '~> 0.68.0'
|
|
64
67
|
s.add_development_dependency 'rubocop', '~> 1.80.0.0'
|
|
65
68
|
s.add_development_dependency 'rubocop-rake', '~> 0.7.1'
|
|
66
69
|
s.add_development_dependency 'rubocop-rspec', '~> 3.6.0'
|
|
@@ -68,7 +71,6 @@ Gem::Specification.new do |s|
|
|
|
68
71
|
s.add_development_dependency 'simplecov', '~> 0.21'
|
|
69
72
|
s.add_development_dependency 'simplecov-lcov', '~> 0.8'
|
|
70
73
|
s.add_development_dependency 'undercover', '~> 0.7'
|
|
71
|
-
s.add_development_dependency 'overcommit', '~> 0.68.0'
|
|
72
74
|
s.add_development_dependency 'webmock', '~> 3.6'
|
|
73
75
|
# work around missing yard dependency needed as of Ruby 3.5
|
|
74
76
|
s.add_development_dependency 'irb', '~> 1.15'
|
metadata
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: solargraph
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.59.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Fred Snyder
|
|
8
8
|
bindir: bin
|
|
9
9
|
cert_chain: []
|
|
10
|
-
date:
|
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
11
11
|
dependencies:
|
|
12
12
|
- !ruby/object:Gem::Dependency
|
|
13
13
|
name: ast
|
|
@@ -156,33 +156,33 @@ dependencies:
|
|
|
156
156
|
- !ruby/object:Gem::Version
|
|
157
157
|
version: '0.1'
|
|
158
158
|
- !ruby/object:Gem::Dependency
|
|
159
|
-
name:
|
|
159
|
+
name: open3
|
|
160
160
|
requirement: !ruby/object:Gem::Requirement
|
|
161
161
|
requirements:
|
|
162
162
|
- - "~>"
|
|
163
163
|
- !ruby/object:Gem::Version
|
|
164
|
-
version:
|
|
164
|
+
version: 0.2.1
|
|
165
165
|
type: :runtime
|
|
166
166
|
prerelease: false
|
|
167
167
|
version_requirements: !ruby/object:Gem::Requirement
|
|
168
168
|
requirements:
|
|
169
169
|
- - "~>"
|
|
170
170
|
- !ruby/object:Gem::Version
|
|
171
|
-
version:
|
|
171
|
+
version: 0.2.1
|
|
172
172
|
- !ruby/object:Gem::Dependency
|
|
173
|
-
name:
|
|
173
|
+
name: ostruct
|
|
174
174
|
requirement: !ruby/object:Gem::Requirement
|
|
175
175
|
requirements:
|
|
176
176
|
- - "~>"
|
|
177
177
|
- !ruby/object:Gem::Version
|
|
178
|
-
version: 0.
|
|
178
|
+
version: '0.6'
|
|
179
179
|
type: :runtime
|
|
180
180
|
prerelease: false
|
|
181
181
|
version_requirements: !ruby/object:Gem::Requirement
|
|
182
182
|
requirements:
|
|
183
183
|
- - "~>"
|
|
184
184
|
- !ruby/object:Gem::Version
|
|
185
|
-
version: 0.
|
|
185
|
+
version: '0.6'
|
|
186
186
|
- !ruby/object:Gem::Dependency
|
|
187
187
|
name: parser
|
|
188
188
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -217,20 +217,14 @@ dependencies:
|
|
|
217
217
|
requirements:
|
|
218
218
|
- - ">="
|
|
219
219
|
- !ruby/object:Gem::Version
|
|
220
|
-
version: 3.
|
|
221
|
-
- - "<="
|
|
222
|
-
- !ruby/object:Gem::Version
|
|
223
|
-
version: 4.0.0.dev.4
|
|
220
|
+
version: 3.10.0
|
|
224
221
|
type: :runtime
|
|
225
222
|
prerelease: false
|
|
226
223
|
version_requirements: !ruby/object:Gem::Requirement
|
|
227
224
|
requirements:
|
|
228
225
|
- - ">="
|
|
229
226
|
- !ruby/object:Gem::Version
|
|
230
|
-
version: 3.
|
|
231
|
-
- - "<="
|
|
232
|
-
- !ruby/object:Gem::Version
|
|
233
|
-
version: 4.0.0.dev.4
|
|
227
|
+
version: 3.10.0
|
|
234
228
|
- !ruby/object:Gem::Dependency
|
|
235
229
|
name: reverse_markdown
|
|
236
230
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -308,33 +302,33 @@ dependencies:
|
|
|
308
302
|
- !ruby/object:Gem::Version
|
|
309
303
|
version: 0.9.24
|
|
310
304
|
- !ruby/object:Gem::Dependency
|
|
311
|
-
name: yard-
|
|
305
|
+
name: yard-activesupport-concern
|
|
312
306
|
requirement: !ruby/object:Gem::Requirement
|
|
313
307
|
requirements:
|
|
314
308
|
- - "~>"
|
|
315
309
|
- !ruby/object:Gem::Version
|
|
316
|
-
version: '0.
|
|
310
|
+
version: '0.0'
|
|
317
311
|
type: :runtime
|
|
318
312
|
prerelease: false
|
|
319
313
|
version_requirements: !ruby/object:Gem::Requirement
|
|
320
314
|
requirements:
|
|
321
315
|
- - "~>"
|
|
322
316
|
- !ruby/object:Gem::Version
|
|
323
|
-
version: '0.
|
|
317
|
+
version: '0.0'
|
|
324
318
|
- !ruby/object:Gem::Dependency
|
|
325
|
-
name: yard-
|
|
319
|
+
name: yard-solargraph
|
|
326
320
|
requirement: !ruby/object:Gem::Requirement
|
|
327
321
|
requirements:
|
|
328
322
|
- - "~>"
|
|
329
323
|
- !ruby/object:Gem::Version
|
|
330
|
-
version: '0.
|
|
324
|
+
version: '0.1'
|
|
331
325
|
type: :runtime
|
|
332
326
|
prerelease: false
|
|
333
327
|
version_requirements: !ruby/object:Gem::Requirement
|
|
334
328
|
requirements:
|
|
335
329
|
- - "~>"
|
|
336
330
|
- !ruby/object:Gem::Version
|
|
337
|
-
version: '0.
|
|
331
|
+
version: '0.1'
|
|
338
332
|
- !ruby/object:Gem::Dependency
|
|
339
333
|
name: pry
|
|
340
334
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -391,6 +385,20 @@ dependencies:
|
|
|
391
385
|
- - "~>"
|
|
392
386
|
- !ruby/object:Gem::Version
|
|
393
387
|
version: '3.5'
|
|
388
|
+
- !ruby/object:Gem::Dependency
|
|
389
|
+
name: overcommit
|
|
390
|
+
requirement: !ruby/object:Gem::Requirement
|
|
391
|
+
requirements:
|
|
392
|
+
- - "~>"
|
|
393
|
+
- !ruby/object:Gem::Version
|
|
394
|
+
version: 0.68.0
|
|
395
|
+
type: :development
|
|
396
|
+
prerelease: false
|
|
397
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
398
|
+
requirements:
|
|
399
|
+
- - "~>"
|
|
400
|
+
- !ruby/object:Gem::Version
|
|
401
|
+
version: 0.68.0
|
|
394
402
|
- !ruby/object:Gem::Dependency
|
|
395
403
|
name: rubocop
|
|
396
404
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -489,20 +497,6 @@ dependencies:
|
|
|
489
497
|
- - "~>"
|
|
490
498
|
- !ruby/object:Gem::Version
|
|
491
499
|
version: '0.7'
|
|
492
|
-
- !ruby/object:Gem::Dependency
|
|
493
|
-
name: overcommit
|
|
494
|
-
requirement: !ruby/object:Gem::Requirement
|
|
495
|
-
requirements:
|
|
496
|
-
- - "~>"
|
|
497
|
-
- !ruby/object:Gem::Version
|
|
498
|
-
version: 0.68.0
|
|
499
|
-
type: :development
|
|
500
|
-
prerelease: false
|
|
501
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
502
|
-
requirements:
|
|
503
|
-
- - "~>"
|
|
504
|
-
- !ruby/object:Gem::Version
|
|
505
|
-
version: 0.68.0
|
|
506
500
|
- !ruby/object:Gem::Dependency
|
|
507
501
|
name: webmock
|
|
508
502
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -538,6 +532,8 @@ executables:
|
|
|
538
532
|
extensions: []
|
|
539
533
|
extra_rdoc_files: []
|
|
540
534
|
files:
|
|
535
|
+
- ".envrc"
|
|
536
|
+
- ".gitattributes"
|
|
541
537
|
- ".github/FUNDING.yml"
|
|
542
538
|
- ".github/workflows/linting.yml"
|
|
543
539
|
- ".github/workflows/plugins.yml"
|
|
@@ -565,6 +561,7 @@ files:
|
|
|
565
561
|
- lib/solargraph/api_map/store.rb
|
|
566
562
|
- lib/solargraph/bench.rb
|
|
567
563
|
- lib/solargraph/complex_type.rb
|
|
564
|
+
- lib/solargraph/complex_type/conformance.rb
|
|
568
565
|
- lib/solargraph/complex_type/type_methods.rb
|
|
569
566
|
- lib/solargraph/complex_type/unique_type.rb
|
|
570
567
|
- lib/solargraph/convention.rb
|
|
@@ -687,12 +684,14 @@ files:
|
|
|
687
684
|
- lib/solargraph/parser/parser_gem/node_processors/masgn_node.rb
|
|
688
685
|
- lib/solargraph/parser/parser_gem/node_processors/namespace_node.rb
|
|
689
686
|
- lib/solargraph/parser/parser_gem/node_processors/opasgn_node.rb
|
|
687
|
+
- lib/solargraph/parser/parser_gem/node_processors/or_node.rb
|
|
690
688
|
- lib/solargraph/parser/parser_gem/node_processors/orasgn_node.rb
|
|
691
689
|
- lib/solargraph/parser/parser_gem/node_processors/resbody_node.rb
|
|
692
690
|
- lib/solargraph/parser/parser_gem/node_processors/sclass_node.rb
|
|
693
691
|
- lib/solargraph/parser/parser_gem/node_processors/send_node.rb
|
|
694
692
|
- lib/solargraph/parser/parser_gem/node_processors/sym_node.rb
|
|
695
693
|
- lib/solargraph/parser/parser_gem/node_processors/until_node.rb
|
|
694
|
+
- lib/solargraph/parser/parser_gem/node_processors/when_node.rb
|
|
696
695
|
- lib/solargraph/parser/parser_gem/node_processors/while_node.rb
|
|
697
696
|
- lib/solargraph/parser/region.rb
|
|
698
697
|
- lib/solargraph/parser/snippet.rb
|
|
@@ -705,6 +704,7 @@ files:
|
|
|
705
704
|
- lib/solargraph/pin/class_variable.rb
|
|
706
705
|
- lib/solargraph/pin/closure.rb
|
|
707
706
|
- lib/solargraph/pin/common.rb
|
|
707
|
+
- lib/solargraph/pin/compound_statement.rb
|
|
708
708
|
- lib/solargraph/pin/constant.rb
|
|
709
709
|
- lib/solargraph/pin/conversions.rb
|
|
710
710
|
- lib/solargraph/pin/delegated_method.rb
|
|
@@ -727,6 +727,7 @@ files:
|
|
|
727
727
|
- lib/solargraph/pin/reference/prepend.rb
|
|
728
728
|
- lib/solargraph/pin/reference/require.rb
|
|
729
729
|
- lib/solargraph/pin/reference/superclass.rb
|
|
730
|
+
- lib/solargraph/pin/reference/type_alias.rb
|
|
730
731
|
- lib/solargraph/pin/search.rb
|
|
731
732
|
- lib/solargraph/pin/signature.rb
|
|
732
733
|
- lib/solargraph/pin/singleton.rb
|
|
@@ -773,8 +774,6 @@ files:
|
|
|
773
774
|
- lib/solargraph/source_map/data.rb
|
|
774
775
|
- lib/solargraph/source_map/mapper.rb
|
|
775
776
|
- lib/solargraph/type_checker.rb
|
|
776
|
-
- lib/solargraph/type_checker/checks.rb
|
|
777
|
-
- lib/solargraph/type_checker/param_def.rb
|
|
778
777
|
- lib/solargraph/type_checker/problem.rb
|
|
779
778
|
- lib/solargraph/type_checker/rules.rb
|
|
780
779
|
- lib/solargraph/version.rb
|
|
@@ -787,6 +786,7 @@ files:
|
|
|
787
786
|
- lib/solargraph/views/search.erb
|
|
788
787
|
- lib/solargraph/workspace.rb
|
|
789
788
|
- lib/solargraph/workspace/config.rb
|
|
789
|
+
- lib/solargraph/workspace/gemspecs.rb
|
|
790
790
|
- lib/solargraph/workspace/require_paths.rb
|
|
791
791
|
- lib/solargraph/yard_map.rb
|
|
792
792
|
- lib/solargraph/yard_map/cache.rb
|
|
@@ -795,27 +795,28 @@ files:
|
|
|
795
795
|
- lib/solargraph/yard_map/mapper/to_constant.rb
|
|
796
796
|
- lib/solargraph/yard_map/mapper/to_method.rb
|
|
797
797
|
- lib/solargraph/yard_map/mapper/to_namespace.rb
|
|
798
|
-
- lib/solargraph/yard_map/to_method.rb
|
|
799
798
|
- lib/solargraph/yard_tags.rb
|
|
800
799
|
- lib/solargraph/yardoc.rb
|
|
801
800
|
- rbs/fills/bundler/0/bundler.rbs
|
|
802
801
|
- rbs/fills/open3/0/open3.rbs
|
|
803
802
|
- rbs/fills/rubygems/0/basic_specification.rbs
|
|
803
|
+
- rbs/fills/rubygems/0/dependency.rbs
|
|
804
804
|
- rbs/fills/rubygems/0/errors.rbs
|
|
805
805
|
- rbs/fills/rubygems/0/spec_fetcher.rbs
|
|
806
806
|
- rbs/fills/rubygems/0/specification.rbs
|
|
807
807
|
- rbs/fills/tuple/tuple.rbs
|
|
808
|
+
- rbs/shims/ast/0/node.rbs
|
|
809
|
+
- rbs/shims/ast/2.4/.rbs_meta.yaml
|
|
810
|
+
- rbs/shims/ast/2.4/ast.rbs
|
|
811
|
+
- rbs/shims/diff-lcs/1.5/diff-lcs.rbs
|
|
812
|
+
- rbs/shims/parser/3.2.0.1/builders/default.rbs
|
|
813
|
+
- rbs/shims/parser/3.2.0.1/manifest.yaml
|
|
814
|
+
- rbs/shims/parser/3.2.0.1/parser.rbs
|
|
815
|
+
- rbs/shims/parser/3.2.0.1/polyfill.rbs
|
|
816
|
+
- rbs/shims/thor/1.2.0.1/.rbs_meta.yaml
|
|
817
|
+
- rbs/shims/thor/1.2.0.1/manifest.yaml
|
|
818
|
+
- rbs/shims/thor/1.2.0.1/thor.rbs
|
|
808
819
|
- rbs_collection.yaml
|
|
809
|
-
- sig/shims/ast/0/node.rbs
|
|
810
|
-
- sig/shims/ast/2.4/.rbs_meta.yaml
|
|
811
|
-
- sig/shims/ast/2.4/ast.rbs
|
|
812
|
-
- sig/shims/parser/3.2.0.1/builders/default.rbs
|
|
813
|
-
- sig/shims/parser/3.2.0.1/manifest.yaml
|
|
814
|
-
- sig/shims/parser/3.2.0.1/parser.rbs
|
|
815
|
-
- sig/shims/parser/3.2.0.1/polyfill.rbs
|
|
816
|
-
- sig/shims/thor/1.2.0.1/.rbs_meta.yaml
|
|
817
|
-
- sig/shims/thor/1.2.0.1/manifest.yaml
|
|
818
|
-
- sig/shims/thor/1.2.0.1/thor.rbs
|
|
819
820
|
- solargraph.gemspec
|
|
820
821
|
homepage: https://solargraph.org
|
|
821
822
|
licenses:
|
|
@@ -833,14 +834,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
833
834
|
requirements:
|
|
834
835
|
- - ">="
|
|
835
836
|
- !ruby/object:Gem::Version
|
|
836
|
-
version: '3.
|
|
837
|
+
version: '3.1'
|
|
837
838
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
838
839
|
requirements:
|
|
839
840
|
- - ">="
|
|
840
841
|
- !ruby/object:Gem::Version
|
|
841
842
|
version: '0'
|
|
842
843
|
requirements: []
|
|
843
|
-
rubygems_version:
|
|
844
|
+
rubygems_version: 4.0.6
|
|
844
845
|
specification_version: 4
|
|
845
846
|
summary: A Ruby language server
|
|
846
847
|
test_files: []
|
|
@@ -1,124 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Solargraph
|
|
4
|
-
class TypeChecker
|
|
5
|
-
# Helper methods for performing type checks
|
|
6
|
-
#
|
|
7
|
-
module Checks
|
|
8
|
-
module_function
|
|
9
|
-
|
|
10
|
-
# Compare an expected type with an inferred type. Common usage is to
|
|
11
|
-
# check if the type declared in a method's @return tag matches the type
|
|
12
|
-
# inferred from static analysis of the code.
|
|
13
|
-
#
|
|
14
|
-
# @param api_map [ApiMap]
|
|
15
|
-
# @param expected [ComplexType]
|
|
16
|
-
# @param inferred [ComplexType]
|
|
17
|
-
# @return [Boolean]
|
|
18
|
-
def types_match? api_map, expected, inferred
|
|
19
|
-
return true if expected.to_s == inferred.to_s
|
|
20
|
-
matches = []
|
|
21
|
-
expected.each do |exp|
|
|
22
|
-
found = false
|
|
23
|
-
inferred.each do |inf|
|
|
24
|
-
# if api_map.super_and_sub?(fuzz(inf), fuzz(exp))
|
|
25
|
-
if either_way?(api_map, inf, exp)
|
|
26
|
-
found = true
|
|
27
|
-
matches.push inf
|
|
28
|
-
break
|
|
29
|
-
end
|
|
30
|
-
end
|
|
31
|
-
return false unless found
|
|
32
|
-
end
|
|
33
|
-
inferred.each do |inf|
|
|
34
|
-
next if matches.include?(inf)
|
|
35
|
-
found = false
|
|
36
|
-
expected.each do |exp|
|
|
37
|
-
# if api_map.super_and_sub?(fuzz(inf), fuzz(exp))
|
|
38
|
-
if either_way?(api_map, inf, exp)
|
|
39
|
-
found = true
|
|
40
|
-
break
|
|
41
|
-
end
|
|
42
|
-
end
|
|
43
|
-
return false unless found
|
|
44
|
-
end
|
|
45
|
-
true
|
|
46
|
-
end
|
|
47
|
-
|
|
48
|
-
# @param api_map [ApiMap]
|
|
49
|
-
# @param expected [ComplexType]
|
|
50
|
-
# @param inferred [ComplexType]
|
|
51
|
-
# @return [Boolean]
|
|
52
|
-
def any_types_match? api_map, expected, inferred
|
|
53
|
-
expected = expected.downcast_to_literal_if_possible
|
|
54
|
-
inferred = inferred.downcast_to_literal_if_possible
|
|
55
|
-
return duck_types_match?(api_map, expected, inferred) if expected.duck_type?
|
|
56
|
-
# walk through the union expected type and see if any members
|
|
57
|
-
# of the union match the inferred type
|
|
58
|
-
expected.each do |exp|
|
|
59
|
-
next if exp.duck_type?
|
|
60
|
-
# @todo: there should be a level of typechecking where all
|
|
61
|
-
# unique types in the inferred must match one of the
|
|
62
|
-
# expected unique types
|
|
63
|
-
inferred.each do |inf|
|
|
64
|
-
# return true if exp == inf || api_map.super_and_sub?(fuzz(inf), fuzz(exp))
|
|
65
|
-
return true if exp == inf || either_way?(api_map, inf, exp)
|
|
66
|
-
end
|
|
67
|
-
end
|
|
68
|
-
false
|
|
69
|
-
end
|
|
70
|
-
|
|
71
|
-
# @param api_map [ApiMap]
|
|
72
|
-
# @param inferred [ComplexType]
|
|
73
|
-
# @param expected [ComplexType]
|
|
74
|
-
# @return [Boolean]
|
|
75
|
-
def all_types_match? api_map, inferred, expected
|
|
76
|
-
expected = expected.downcast_to_literal_if_possible
|
|
77
|
-
inferred = inferred.downcast_to_literal_if_possible
|
|
78
|
-
return duck_types_match?(api_map, expected, inferred) if expected.duck_type?
|
|
79
|
-
inferred.each do |inf|
|
|
80
|
-
next if inf.duck_type?
|
|
81
|
-
return false unless expected.any? { |exp| exp == inf || either_way?(api_map, inf, exp) }
|
|
82
|
-
end
|
|
83
|
-
true
|
|
84
|
-
end
|
|
85
|
-
|
|
86
|
-
# @param api_map [ApiMap]
|
|
87
|
-
# @param expected [ComplexType]
|
|
88
|
-
# @param inferred [ComplexType]
|
|
89
|
-
# @return [Boolean]
|
|
90
|
-
def duck_types_match? api_map, expected, inferred
|
|
91
|
-
raise ArgumentError, 'Expected type must be duck type' unless expected.duck_type?
|
|
92
|
-
expected.each do |exp|
|
|
93
|
-
next unless exp.duck_type?
|
|
94
|
-
quack = exp.to_s[1..-1]
|
|
95
|
-
return false if api_map.get_method_stack(inferred.namespace, quack, scope: inferred.scope).empty?
|
|
96
|
-
end
|
|
97
|
-
true
|
|
98
|
-
end
|
|
99
|
-
|
|
100
|
-
# @param type [ComplexType::UniqueType]
|
|
101
|
-
# @return [String]
|
|
102
|
-
def fuzz type
|
|
103
|
-
if type.parameters?
|
|
104
|
-
type.name
|
|
105
|
-
else
|
|
106
|
-
type.tag
|
|
107
|
-
end
|
|
108
|
-
end
|
|
109
|
-
|
|
110
|
-
# @param api_map [ApiMap]
|
|
111
|
-
# @param cls1 [ComplexType::UniqueType]
|
|
112
|
-
# @param cls2 [ComplexType::UniqueType]
|
|
113
|
-
# @return [Boolean]
|
|
114
|
-
def either_way?(api_map, cls1, cls2)
|
|
115
|
-
# @todo there should be a level of typechecking which uses the
|
|
116
|
-
# full tag with parameters to determine compatibility
|
|
117
|
-
f1 = cls1.name
|
|
118
|
-
f2 = cls2.name
|
|
119
|
-
api_map.type_include?(f1, f2) || api_map.super_and_sub?(f1, f2) || api_map.super_and_sub?(f2, f1)
|
|
120
|
-
# api_map.type_include?(f1, f2) || api_map.super_and_sub?(f1, f2) || api_map.super_and_sub?(f2, f1)
|
|
121
|
-
end
|
|
122
|
-
end
|
|
123
|
-
end
|
|
124
|
-
end
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Solargraph
|
|
4
|
-
class TypeChecker
|
|
5
|
-
# Data about a method parameter definition. This is the information from
|
|
6
|
-
# the args list in the def call, not the `@param` tags.
|
|
7
|
-
#
|
|
8
|
-
class ParamDef
|
|
9
|
-
# @return [String]
|
|
10
|
-
attr_reader :name
|
|
11
|
-
|
|
12
|
-
# @return [Symbol]
|
|
13
|
-
attr_reader :type
|
|
14
|
-
|
|
15
|
-
# @param name [String]
|
|
16
|
-
# @param type [Symbol] The type of parameter, such as :req, :opt, :rest, etc.
|
|
17
|
-
def initialize name, type
|
|
18
|
-
@name = name
|
|
19
|
-
@type = type
|
|
20
|
-
end
|
|
21
|
-
|
|
22
|
-
class << self
|
|
23
|
-
# Get an array of ParamDefs from a method pin.
|
|
24
|
-
#
|
|
25
|
-
# @param pin [Solargraph::Pin::Method]
|
|
26
|
-
# @return [Array<ParamDef>]
|
|
27
|
-
def from pin
|
|
28
|
-
result = []
|
|
29
|
-
pin.parameters.each do |par|
|
|
30
|
-
result.push ParamDef.new(par.name, par.decl)
|
|
31
|
-
end
|
|
32
|
-
result
|
|
33
|
-
end
|
|
34
|
-
end
|
|
35
|
-
end
|
|
36
|
-
end
|
|
37
|
-
end
|
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Solargraph
|
|
4
|
-
class YardMap
|
|
5
|
-
class ToMethod
|
|
6
|
-
module InnerMethods
|
|
7
|
-
module_function
|
|
8
|
-
|
|
9
|
-
# @param code_object [YARD::CodeObjects::Base]
|
|
10
|
-
# @param location [Solargraph::Location]
|
|
11
|
-
# @param comments [String]
|
|
12
|
-
# @return [Array<Solargraph::Pin::Parameter>]
|
|
13
|
-
def get_parameters code_object, location, comments
|
|
14
|
-
return [] unless code_object.is_a?(YARD::CodeObjects::MethodObject)
|
|
15
|
-
# HACK: Skip `nil` and `self` parameters that are sometimes emitted
|
|
16
|
-
# for methods defined in C
|
|
17
|
-
# See https://github.com/castwide/solargraph/issues/345
|
|
18
|
-
# @sg-ignore https://github.com/castwide/solargraph/pull/1114
|
|
19
|
-
code_object.parameters.select { |a| a[0] && a[0] != 'self' }.map do |a|
|
|
20
|
-
Solargraph::Pin::Parameter.new(
|
|
21
|
-
location: location,
|
|
22
|
-
closure: self,
|
|
23
|
-
comments: comments,
|
|
24
|
-
name: arg_name(a),
|
|
25
|
-
presence: nil,
|
|
26
|
-
decl: arg_type(a),
|
|
27
|
-
asgn_code: a[1],
|
|
28
|
-
source: :yard_map
|
|
29
|
-
)
|
|
30
|
-
end
|
|
31
|
-
end
|
|
32
|
-
|
|
33
|
-
# @param a [Array<String>]
|
|
34
|
-
# @return [String]
|
|
35
|
-
def arg_name a
|
|
36
|
-
a[0].gsub(/[^a-z0-9_]/i, '')
|
|
37
|
-
end
|
|
38
|
-
|
|
39
|
-
# @param a [Array]
|
|
40
|
-
# @return [::Symbol]
|
|
41
|
-
def arg_type a
|
|
42
|
-
if a[0].start_with?('**')
|
|
43
|
-
:kwrestarg
|
|
44
|
-
elsif a[0].start_with?('*')
|
|
45
|
-
:restarg
|
|
46
|
-
elsif a[0].start_with?('&')
|
|
47
|
-
:blockarg
|
|
48
|
-
elsif a[0].end_with?(':')
|
|
49
|
-
a[1] ? :kwoptarg : :kwarg
|
|
50
|
-
elsif a[1]
|
|
51
|
-
:optarg
|
|
52
|
-
else
|
|
53
|
-
:arg
|
|
54
|
-
end
|
|
55
|
-
end
|
|
56
|
-
end
|
|
57
|
-
private_constant :InnerMethods
|
|
58
|
-
|
|
59
|
-
include Helpers
|
|
60
|
-
|
|
61
|
-
# @param code_object [YARD::CodeObjects::MethodObject]
|
|
62
|
-
# @param name [String, nil]
|
|
63
|
-
# @param scope [Symbol, nil]
|
|
64
|
-
# @param visibility [Symbol, nil]
|
|
65
|
-
# @param closure [Solargraph::Pin::Base, nil]
|
|
66
|
-
# @param spec [Solargraph::Pin::Base, nil]
|
|
67
|
-
# @return [Solargraph::Pin::Method]
|
|
68
|
-
def make code_object, name = nil, scope = nil, visibility = nil, closure = nil, spec = nil
|
|
69
|
-
closure ||= Solargraph::Pin::Namespace.new(
|
|
70
|
-
name: code_object.namespace.to_s,
|
|
71
|
-
gates: [code_object.namespace.to_s]
|
|
72
|
-
)
|
|
73
|
-
location = object_location(code_object, spec)
|
|
74
|
-
comments = code_object.docstring ? code_object.docstring.all.to_s : ''
|
|
75
|
-
Pin::Method.new(
|
|
76
|
-
location: location,
|
|
77
|
-
closure: closure,
|
|
78
|
-
name: name || code_object.name.to_s,
|
|
79
|
-
comments: comments,
|
|
80
|
-
scope: scope || code_object.scope,
|
|
81
|
-
visibility: visibility || code_object.visibility,
|
|
82
|
-
parameters: InnerMethods.get_parameters(code_object, location, comments),
|
|
83
|
-
explicit: code_object.is_explicit?,
|
|
84
|
-
source: :yard_map
|
|
85
|
-
)
|
|
86
|
-
end
|
|
87
|
-
end
|
|
88
|
-
end
|
|
89
|
-
end
|
data/sig/shims/ast/0/node.rbs
DELETED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|