solargraph 0.58.1 → 0.58.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.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/CHANGELOG.md +7 -1
- data/lib/solargraph/api_map/cache.rb +110 -110
- data/lib/solargraph/api_map/constants.rb +279 -279
- data/lib/solargraph/api_map/index.rb +193 -193
- data/lib/solargraph/api_map/source_to_yard.rb +97 -97
- data/lib/solargraph/api_map/store.rb +384 -384
- data/lib/solargraph/api_map.rb +945 -945
- data/lib/solargraph/complex_type/type_methods.rb +228 -228
- data/lib/solargraph/complex_type/unique_type.rb +482 -482
- data/lib/solargraph/complex_type.rb +444 -444
- data/lib/solargraph/convention/data_definition/data_definition_node.rb +91 -91
- data/lib/solargraph/convention/data_definition.rb +105 -105
- data/lib/solargraph/convention/struct_definition/struct_assignment_node.rb +61 -61
- data/lib/solargraph/convention/struct_definition/struct_definition_node.rb +102 -102
- data/lib/solargraph/convention/struct_definition.rb +164 -164
- data/lib/solargraph/diagnostics/require_not_found.rb +53 -53
- data/lib/solargraph/diagnostics/rubocop.rb +118 -118
- data/lib/solargraph/diagnostics/rubocop_helpers.rb +68 -68
- data/lib/solargraph/diagnostics/type_check.rb +55 -55
- data/lib/solargraph/doc_map.rb +439 -439
- data/lib/solargraph/equality.rb +34 -34
- data/lib/solargraph/gem_pins.rb +98 -98
- 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 +112 -112
- data/lib/solargraph/language_server/host/sources.rb +99 -99
- data/lib/solargraph/language_server/host.rb +878 -878
- data/lib/solargraph/language_server/message/extended/check_gem_version.rb +114 -114
- data/lib/solargraph/language_server/message/extended/document.rb +23 -23
- data/lib/solargraph/language_server/message/text_document/completion.rb +56 -56
- data/lib/solargraph/language_server/message/text_document/definition.rb +40 -40
- data/lib/solargraph/language_server/message/text_document/document_symbol.rb +26 -26
- data/lib/solargraph/language_server/message/text_document/formatting.rb +148 -148
- data/lib/solargraph/language_server/message/text_document/hover.rb +58 -58
- data/lib/solargraph/language_server/message/text_document/signature_help.rb +24 -24
- data/lib/solargraph/language_server/message/text_document/type_definition.rb +25 -25
- data/lib/solargraph/language_server/message/workspace/workspace_symbol.rb +23 -23
- data/lib/solargraph/library.rb +683 -683
- data/lib/solargraph/location.rb +82 -82
- data/lib/solargraph/logging.rb +37 -37
- data/lib/solargraph/parser/comment_ripper.rb +69 -69
- data/lib/solargraph/parser/flow_sensitive_typing.rb +255 -255
- data/lib/solargraph/parser/node_processor/base.rb +92 -92
- data/lib/solargraph/parser/node_processor.rb +62 -62
- data/lib/solargraph/parser/parser_gem/class_methods.rb +149 -149
- data/lib/solargraph/parser/parser_gem/node_chainer.rb +166 -166
- data/lib/solargraph/parser/parser_gem/node_methods.rb +486 -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 +59 -59
- data/lib/solargraph/parser/parser_gem/node_processors/begin_node.rb +15 -15
- data/lib/solargraph/parser/parser_gem/node_processors/block_node.rb +46 -46
- data/lib/solargraph/parser/parser_gem/node_processors/def_node.rb +53 -53
- data/lib/solargraph/parser/parser_gem/node_processors/if_node.rb +23 -23
- data/lib/solargraph/parser/parser_gem/node_processors/ivasgn_node.rb +40 -40
- data/lib/solargraph/parser/parser_gem/node_processors/lvasgn_node.rb +29 -29
- data/lib/solargraph/parser/parser_gem/node_processors/masgn_node.rb +59 -59
- data/lib/solargraph/parser/parser_gem/node_processors/opasgn_node.rb +98 -98
- data/lib/solargraph/parser/parser_gem/node_processors/orasgn_node.rb +17 -17
- data/lib/solargraph/parser/parser_gem/node_processors/resbody_node.rb +38 -38
- data/lib/solargraph/parser/parser_gem/node_processors/sclass_node.rb +52 -52
- data/lib/solargraph/parser/parser_gem/node_processors/send_node.rb +291 -291
- data/lib/solargraph/parser/parser_gem/node_processors/while_node.rb +29 -29
- data/lib/solargraph/parser/parser_gem/node_processors.rb +70 -70
- data/lib/solargraph/parser/region.rb +69 -69
- data/lib/solargraph/parser/snippet.rb +17 -17
- data/lib/solargraph/pin/base.rb +729 -729
- data/lib/solargraph/pin/base_variable.rb +126 -126
- data/lib/solargraph/pin/block.rb +104 -104
- data/lib/solargraph/pin/breakable.rb +9 -9
- data/lib/solargraph/pin/callable.rb +231 -231
- data/lib/solargraph/pin/closure.rb +72 -72
- data/lib/solargraph/pin/common.rb +79 -79
- data/lib/solargraph/pin/conversions.rb +123 -123
- data/lib/solargraph/pin/delegated_method.rb +120 -120
- data/lib/solargraph/pin/documenting.rb +114 -114
- data/lib/solargraph/pin/instance_variable.rb +34 -34
- data/lib/solargraph/pin/keyword.rb +20 -20
- data/lib/solargraph/pin/local_variable.rb +75 -75
- data/lib/solargraph/pin/method.rb +672 -672
- data/lib/solargraph/pin/method_alias.rb +34 -34
- data/lib/solargraph/pin/namespace.rb +115 -115
- data/lib/solargraph/pin/parameter.rb +275 -275
- data/lib/solargraph/pin/proxy_type.rb +39 -39
- data/lib/solargraph/pin/reference/override.rb +47 -47
- data/lib/solargraph/pin/reference/superclass.rb +15 -15
- data/lib/solargraph/pin/reference.rb +39 -39
- data/lib/solargraph/pin/search.rb +61 -61
- data/lib/solargraph/pin/signature.rb +61 -61
- data/lib/solargraph/pin/symbol.rb +53 -53
- data/lib/solargraph/pin/until.rb +18 -18
- data/lib/solargraph/pin/while.rb +18 -18
- data/lib/solargraph/pin.rb +44 -44
- data/lib/solargraph/pin_cache.rb +245 -245
- data/lib/solargraph/position.rb +132 -119
- data/lib/solargraph/range.rb +112 -112
- data/lib/solargraph/rbs_map/conversions.rb +823 -823
- data/lib/solargraph/rbs_map/core_map.rb +58 -58
- data/lib/solargraph/rbs_map/stdlib_map.rb +43 -43
- data/lib/solargraph/rbs_map.rb +163 -163
- data/lib/solargraph/shell.rb +352 -352
- data/lib/solargraph/source/chain/call.rb +337 -337
- data/lib/solargraph/source/chain/constant.rb +26 -26
- data/lib/solargraph/source/chain/hash.rb +34 -34
- data/lib/solargraph/source/chain/if.rb +28 -28
- data/lib/solargraph/source/chain/instance_variable.rb +13 -13
- data/lib/solargraph/source/chain/literal.rb +48 -48
- data/lib/solargraph/source/chain/or.rb +23 -23
- data/lib/solargraph/source/chain.rb +291 -291
- data/lib/solargraph/source/change.rb +82 -82
- data/lib/solargraph/source/cursor.rb +166 -166
- data/lib/solargraph/source/source_chainer.rb +194 -194
- data/lib/solargraph/source/updater.rb +55 -55
- data/lib/solargraph/source.rb +498 -498
- data/lib/solargraph/source_map/clip.rb +226 -226
- data/lib/solargraph/source_map/data.rb +34 -34
- data/lib/solargraph/source_map/mapper.rb +259 -259
- data/lib/solargraph/source_map.rb +212 -212
- data/lib/solargraph/type_checker/checks.rb +124 -124
- data/lib/solargraph/type_checker/param_def.rb +37 -37
- data/lib/solargraph/type_checker/problem.rb +32 -32
- data/lib/solargraph/type_checker/rules.rb +84 -84
- data/lib/solargraph/type_checker.rb +814 -814
- data/lib/solargraph/version.rb +1 -1
- data/lib/solargraph/workspace/config.rb +255 -255
- data/lib/solargraph/workspace/require_paths.rb +97 -97
- data/lib/solargraph/workspace.rb +220 -220
- data/lib/solargraph/yard_map/helpers.rb +44 -44
- data/lib/solargraph/yard_map/mapper/to_method.rb +130 -130
- data/lib/solargraph/yard_map/mapper/to_namespace.rb +31 -31
- data/lib/solargraph/yard_map/mapper.rb +79 -79
- data/lib/solargraph/yard_map/to_method.rb +89 -89
- data/lib/solargraph/yardoc.rb +87 -87
- data/lib/solargraph.rb +105 -105
- data/rbs_collection.yaml +1 -1
- metadata +12 -12
- /data/{sig → rbs}/shims/ast/0/node.rbs +0 -0
- /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
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Solargraph
|
|
4
|
-
module Parser
|
|
5
|
-
module ParserGem
|
|
6
|
-
module NodeProcessors
|
|
7
|
-
class AndNode < Parser::NodeProcessor::Base
|
|
8
|
-
include ParserGem::NodeMethods
|
|
9
|
-
|
|
10
|
-
def process
|
|
11
|
-
process_children
|
|
12
|
-
|
|
13
|
-
position = get_node_start_position(node)
|
|
14
|
-
# @sg-ignore https://github.com/castwide/solargraph/pull/1114
|
|
15
|
-
enclosing_breakable_pin = pins.select{|pin| pin.is_a?(Pin::Breakable) && pin.location.range.contain?(position)}.last
|
|
16
|
-
FlowSensitiveTyping.new(locals, enclosing_breakable_pin).process_and(node)
|
|
17
|
-
end
|
|
18
|
-
end
|
|
19
|
-
end
|
|
20
|
-
end
|
|
21
|
-
end
|
|
22
|
-
end
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Solargraph
|
|
4
|
+
module Parser
|
|
5
|
+
module ParserGem
|
|
6
|
+
module NodeProcessors
|
|
7
|
+
class AndNode < Parser::NodeProcessor::Base
|
|
8
|
+
include ParserGem::NodeMethods
|
|
9
|
+
|
|
10
|
+
def process
|
|
11
|
+
process_children
|
|
12
|
+
|
|
13
|
+
position = get_node_start_position(node)
|
|
14
|
+
# @sg-ignore https://github.com/castwide/solargraph/pull/1114
|
|
15
|
+
enclosing_breakable_pin = pins.select{|pin| pin.is_a?(Pin::Breakable) && pin.location.range.contain?(position)}.last
|
|
16
|
+
FlowSensitiveTyping.new(locals, enclosing_breakable_pin).process_and(node)
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
@@ -1,59 +1,59 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Solargraph
|
|
4
|
-
module Parser
|
|
5
|
-
module ParserGem
|
|
6
|
-
module NodeProcessors
|
|
7
|
-
class ArgsNode < Parser::NodeProcessor::Base
|
|
8
|
-
def process
|
|
9
|
-
callable = region.closure
|
|
10
|
-
if callable.is_a? Pin::Callable
|
|
11
|
-
if node.type == :forward_args
|
|
12
|
-
forward(callable)
|
|
13
|
-
else
|
|
14
|
-
node.children.each do |u|
|
|
15
|
-
loc = get_node_location(u)
|
|
16
|
-
locals.push Solargraph::Pin::Parameter.new(
|
|
17
|
-
location: loc,
|
|
18
|
-
closure: callable,
|
|
19
|
-
comments: comments_for(node),
|
|
20
|
-
name: u.children[0].to_s,
|
|
21
|
-
assignment: u.children[1],
|
|
22
|
-
asgn_code: u.children[1] ? region.code_for(u.children[1]) : nil,
|
|
23
|
-
presence: callable.location.range,
|
|
24
|
-
decl: get_decl(u),
|
|
25
|
-
source: :parser
|
|
26
|
-
)
|
|
27
|
-
callable.parameters.push locals.last
|
|
28
|
-
end
|
|
29
|
-
end
|
|
30
|
-
end
|
|
31
|
-
process_children
|
|
32
|
-
end
|
|
33
|
-
|
|
34
|
-
private
|
|
35
|
-
|
|
36
|
-
# @param callable [Pin::Callable]
|
|
37
|
-
# @return [void]
|
|
38
|
-
def forward(callable)
|
|
39
|
-
loc = get_node_location(node)
|
|
40
|
-
locals.push Solargraph::Pin::Parameter.new(
|
|
41
|
-
location: loc,
|
|
42
|
-
closure: callable,
|
|
43
|
-
presence: region.closure.location.range,
|
|
44
|
-
decl: get_decl(node),
|
|
45
|
-
source: :parser
|
|
46
|
-
)
|
|
47
|
-
callable.parameters.push locals.last
|
|
48
|
-
end
|
|
49
|
-
|
|
50
|
-
# @param node [AST::Node]
|
|
51
|
-
# @return [Symbol]
|
|
52
|
-
def get_decl node
|
|
53
|
-
node.type
|
|
54
|
-
end
|
|
55
|
-
end
|
|
56
|
-
end
|
|
57
|
-
end
|
|
58
|
-
end
|
|
59
|
-
end
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Solargraph
|
|
4
|
+
module Parser
|
|
5
|
+
module ParserGem
|
|
6
|
+
module NodeProcessors
|
|
7
|
+
class ArgsNode < Parser::NodeProcessor::Base
|
|
8
|
+
def process
|
|
9
|
+
callable = region.closure
|
|
10
|
+
if callable.is_a? Pin::Callable
|
|
11
|
+
if node.type == :forward_args
|
|
12
|
+
forward(callable)
|
|
13
|
+
else
|
|
14
|
+
node.children.each do |u|
|
|
15
|
+
loc = get_node_location(u)
|
|
16
|
+
locals.push Solargraph::Pin::Parameter.new(
|
|
17
|
+
location: loc,
|
|
18
|
+
closure: callable,
|
|
19
|
+
comments: comments_for(node),
|
|
20
|
+
name: u.children[0].to_s,
|
|
21
|
+
assignment: u.children[1],
|
|
22
|
+
asgn_code: u.children[1] ? region.code_for(u.children[1]) : nil,
|
|
23
|
+
presence: callable.location.range,
|
|
24
|
+
decl: get_decl(u),
|
|
25
|
+
source: :parser
|
|
26
|
+
)
|
|
27
|
+
callable.parameters.push locals.last
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
process_children
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
private
|
|
35
|
+
|
|
36
|
+
# @param callable [Pin::Callable]
|
|
37
|
+
# @return [void]
|
|
38
|
+
def forward(callable)
|
|
39
|
+
loc = get_node_location(node)
|
|
40
|
+
locals.push Solargraph::Pin::Parameter.new(
|
|
41
|
+
location: loc,
|
|
42
|
+
closure: callable,
|
|
43
|
+
presence: region.closure.location.range,
|
|
44
|
+
decl: get_decl(node),
|
|
45
|
+
source: :parser
|
|
46
|
+
)
|
|
47
|
+
callable.parameters.push locals.last
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
# @param node [AST::Node]
|
|
51
|
+
# @return [Symbol]
|
|
52
|
+
def get_decl node
|
|
53
|
+
node.type
|
|
54
|
+
end
|
|
55
|
+
end
|
|
56
|
+
end
|
|
57
|
+
end
|
|
58
|
+
end
|
|
59
|
+
end
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Solargraph
|
|
4
|
-
module Parser
|
|
5
|
-
module ParserGem
|
|
6
|
-
module NodeProcessors
|
|
7
|
-
class BeginNode < Parser::NodeProcessor::Base
|
|
8
|
-
def process
|
|
9
|
-
process_children
|
|
10
|
-
end
|
|
11
|
-
end
|
|
12
|
-
end
|
|
13
|
-
end
|
|
14
|
-
end
|
|
15
|
-
end
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Solargraph
|
|
4
|
+
module Parser
|
|
5
|
+
module ParserGem
|
|
6
|
+
module NodeProcessors
|
|
7
|
+
class BeginNode < Parser::NodeProcessor::Base
|
|
8
|
+
def process
|
|
9
|
+
process_children
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
@@ -1,46 +1,46 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Solargraph
|
|
4
|
-
module Parser
|
|
5
|
-
module ParserGem
|
|
6
|
-
module NodeProcessors
|
|
7
|
-
class BlockNode < Parser::NodeProcessor::Base
|
|
8
|
-
include ParserGem::NodeMethods
|
|
9
|
-
|
|
10
|
-
def process
|
|
11
|
-
location = get_node_location(node)
|
|
12
|
-
parent = if other_class_eval?
|
|
13
|
-
Solargraph::Pin::Namespace.new(
|
|
14
|
-
location: location,
|
|
15
|
-
type: :class,
|
|
16
|
-
name: unpack_name(node.children[0].children[0]),
|
|
17
|
-
source: :parser,
|
|
18
|
-
)
|
|
19
|
-
else
|
|
20
|
-
region.closure
|
|
21
|
-
end
|
|
22
|
-
block_pin = Solargraph::Pin::Block.new(
|
|
23
|
-
location: location,
|
|
24
|
-
closure: parent,
|
|
25
|
-
node: node,
|
|
26
|
-
receiver: node.children[0],
|
|
27
|
-
comments: comments_for(node),
|
|
28
|
-
scope: region.scope || region.closure.context.scope,
|
|
29
|
-
source: :parser
|
|
30
|
-
)
|
|
31
|
-
pins.push block_pin
|
|
32
|
-
process_children region.update(closure: block_pin)
|
|
33
|
-
end
|
|
34
|
-
|
|
35
|
-
private
|
|
36
|
-
|
|
37
|
-
def other_class_eval?
|
|
38
|
-
node.children[0].type == :send &&
|
|
39
|
-
node.children[0].children[1] == :class_eval &&
|
|
40
|
-
[:cbase, :const].include?(node.children[0].children[0]&.type)
|
|
41
|
-
end
|
|
42
|
-
end
|
|
43
|
-
end
|
|
44
|
-
end
|
|
45
|
-
end
|
|
46
|
-
end
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Solargraph
|
|
4
|
+
module Parser
|
|
5
|
+
module ParserGem
|
|
6
|
+
module NodeProcessors
|
|
7
|
+
class BlockNode < Parser::NodeProcessor::Base
|
|
8
|
+
include ParserGem::NodeMethods
|
|
9
|
+
|
|
10
|
+
def process
|
|
11
|
+
location = get_node_location(node)
|
|
12
|
+
parent = if other_class_eval?
|
|
13
|
+
Solargraph::Pin::Namespace.new(
|
|
14
|
+
location: location,
|
|
15
|
+
type: :class,
|
|
16
|
+
name: unpack_name(node.children[0].children[0]),
|
|
17
|
+
source: :parser,
|
|
18
|
+
)
|
|
19
|
+
else
|
|
20
|
+
region.closure
|
|
21
|
+
end
|
|
22
|
+
block_pin = Solargraph::Pin::Block.new(
|
|
23
|
+
location: location,
|
|
24
|
+
closure: parent,
|
|
25
|
+
node: node,
|
|
26
|
+
receiver: node.children[0],
|
|
27
|
+
comments: comments_for(node),
|
|
28
|
+
scope: region.scope || region.closure.context.scope,
|
|
29
|
+
source: :parser
|
|
30
|
+
)
|
|
31
|
+
pins.push block_pin
|
|
32
|
+
process_children region.update(closure: block_pin)
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
private
|
|
36
|
+
|
|
37
|
+
def other_class_eval?
|
|
38
|
+
node.children[0].type == :send &&
|
|
39
|
+
node.children[0].children[1] == :class_eval &&
|
|
40
|
+
[:cbase, :const].include?(node.children[0].children[0]&.type)
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
end
|
|
@@ -1,53 +1,53 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Solargraph
|
|
4
|
-
module Parser
|
|
5
|
-
module ParserGem
|
|
6
|
-
module NodeProcessors
|
|
7
|
-
class DefNode < Parser::NodeProcessor::Base
|
|
8
|
-
def process
|
|
9
|
-
name = node.children[0].to_s
|
|
10
|
-
scope = region.scope || (region.closure.is_a?(Pin::Singleton) ? :class : :instance)
|
|
11
|
-
methpin = Solargraph::Pin::Method.new(
|
|
12
|
-
location: get_node_location(node),
|
|
13
|
-
closure: region.closure,
|
|
14
|
-
name: name,
|
|
15
|
-
comments: comments_for(node),
|
|
16
|
-
scope: scope,
|
|
17
|
-
visibility: scope == :instance && name == 'initialize' ? :private : region.visibility,
|
|
18
|
-
node: node,
|
|
19
|
-
source: :parser,
|
|
20
|
-
)
|
|
21
|
-
if region.visibility == :module_function
|
|
22
|
-
pins.push Solargraph::Pin::Method.new(
|
|
23
|
-
location: methpin.location,
|
|
24
|
-
closure: methpin.closure,
|
|
25
|
-
name: methpin.name,
|
|
26
|
-
comments: methpin.comments,
|
|
27
|
-
scope: :class,
|
|
28
|
-
visibility: :public,
|
|
29
|
-
parameters: methpin.parameters,
|
|
30
|
-
node: methpin.node,
|
|
31
|
-
source: :parser,
|
|
32
|
-
)
|
|
33
|
-
pins.push Solargraph::Pin::Method.new(
|
|
34
|
-
location: methpin.location,
|
|
35
|
-
closure: methpin.closure,
|
|
36
|
-
name: methpin.name,
|
|
37
|
-
comments: methpin.comments,
|
|
38
|
-
scope: :instance,
|
|
39
|
-
visibility: :private,
|
|
40
|
-
parameters: methpin.parameters,
|
|
41
|
-
node: methpin.node,
|
|
42
|
-
source: :parser,
|
|
43
|
-
)
|
|
44
|
-
else
|
|
45
|
-
pins.push methpin
|
|
46
|
-
end
|
|
47
|
-
process_children region.update(closure: methpin, scope: methpin.scope)
|
|
48
|
-
end
|
|
49
|
-
end
|
|
50
|
-
end
|
|
51
|
-
end
|
|
52
|
-
end
|
|
53
|
-
end
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Solargraph
|
|
4
|
+
module Parser
|
|
5
|
+
module ParserGem
|
|
6
|
+
module NodeProcessors
|
|
7
|
+
class DefNode < Parser::NodeProcessor::Base
|
|
8
|
+
def process
|
|
9
|
+
name = node.children[0].to_s
|
|
10
|
+
scope = region.scope || (region.closure.is_a?(Pin::Singleton) ? :class : :instance)
|
|
11
|
+
methpin = Solargraph::Pin::Method.new(
|
|
12
|
+
location: get_node_location(node),
|
|
13
|
+
closure: region.closure,
|
|
14
|
+
name: name,
|
|
15
|
+
comments: comments_for(node),
|
|
16
|
+
scope: scope,
|
|
17
|
+
visibility: scope == :instance && name == 'initialize' ? :private : region.visibility,
|
|
18
|
+
node: node,
|
|
19
|
+
source: :parser,
|
|
20
|
+
)
|
|
21
|
+
if region.visibility == :module_function
|
|
22
|
+
pins.push Solargraph::Pin::Method.new(
|
|
23
|
+
location: methpin.location,
|
|
24
|
+
closure: methpin.closure,
|
|
25
|
+
name: methpin.name,
|
|
26
|
+
comments: methpin.comments,
|
|
27
|
+
scope: :class,
|
|
28
|
+
visibility: :public,
|
|
29
|
+
parameters: methpin.parameters,
|
|
30
|
+
node: methpin.node,
|
|
31
|
+
source: :parser,
|
|
32
|
+
)
|
|
33
|
+
pins.push Solargraph::Pin::Method.new(
|
|
34
|
+
location: methpin.location,
|
|
35
|
+
closure: methpin.closure,
|
|
36
|
+
name: methpin.name,
|
|
37
|
+
comments: methpin.comments,
|
|
38
|
+
scope: :instance,
|
|
39
|
+
visibility: :private,
|
|
40
|
+
parameters: methpin.parameters,
|
|
41
|
+
node: methpin.node,
|
|
42
|
+
source: :parser,
|
|
43
|
+
)
|
|
44
|
+
else
|
|
45
|
+
pins.push methpin
|
|
46
|
+
end
|
|
47
|
+
process_children region.update(closure: methpin, scope: methpin.scope)
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
end
|
|
@@ -1,23 +1,23 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Solargraph
|
|
4
|
-
module Parser
|
|
5
|
-
module ParserGem
|
|
6
|
-
module NodeProcessors
|
|
7
|
-
class IfNode < Parser::NodeProcessor::Base
|
|
8
|
-
include ParserGem::NodeMethods
|
|
9
|
-
|
|
10
|
-
def process
|
|
11
|
-
process_children
|
|
12
|
-
|
|
13
|
-
position = get_node_start_position(node)
|
|
14
|
-
# @sg-ignore
|
|
15
|
-
# @type [Solargraph::Pin::Breakable, nil]
|
|
16
|
-
enclosing_breakable_pin = pins.select{|pin| pin.is_a?(Pin::Breakable) && pin.location.range.contain?(position)}.last
|
|
17
|
-
FlowSensitiveTyping.new(locals, enclosing_breakable_pin).process_if(node)
|
|
18
|
-
end
|
|
19
|
-
end
|
|
20
|
-
end
|
|
21
|
-
end
|
|
22
|
-
end
|
|
23
|
-
end
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Solargraph
|
|
4
|
+
module Parser
|
|
5
|
+
module ParserGem
|
|
6
|
+
module NodeProcessors
|
|
7
|
+
class IfNode < Parser::NodeProcessor::Base
|
|
8
|
+
include ParserGem::NodeMethods
|
|
9
|
+
|
|
10
|
+
def process
|
|
11
|
+
process_children
|
|
12
|
+
|
|
13
|
+
position = get_node_start_position(node)
|
|
14
|
+
# @sg-ignore
|
|
15
|
+
# @type [Solargraph::Pin::Breakable, nil]
|
|
16
|
+
enclosing_breakable_pin = pins.select{|pin| pin.is_a?(Pin::Breakable) && pin.location.range.contain?(position)}.last
|
|
17
|
+
FlowSensitiveTyping.new(locals, enclosing_breakable_pin).process_if(node)
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
@@ -1,40 +1,40 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Solargraph
|
|
4
|
-
module Parser
|
|
5
|
-
module ParserGem
|
|
6
|
-
module NodeProcessors
|
|
7
|
-
class IvasgnNode < Parser::NodeProcessor::Base
|
|
8
|
-
include ParserGem::NodeMethods
|
|
9
|
-
|
|
10
|
-
def process
|
|
11
|
-
loc = get_node_location(node)
|
|
12
|
-
pins.push Solargraph::Pin::InstanceVariable.new(
|
|
13
|
-
location: loc,
|
|
14
|
-
closure: region.closure,
|
|
15
|
-
name: node.children[0].to_s,
|
|
16
|
-
comments: comments_for(node),
|
|
17
|
-
assignment: node.children[1],
|
|
18
|
-
source: :parser
|
|
19
|
-
)
|
|
20
|
-
if region.visibility == :module_function
|
|
21
|
-
here = get_node_start_position(node)
|
|
22
|
-
named_path = named_path_pin(here)
|
|
23
|
-
if named_path.is_a?(Pin::Method)
|
|
24
|
-
pins.push Solargraph::Pin::InstanceVariable.new(
|
|
25
|
-
location: loc,
|
|
26
|
-
closure: Pin::Namespace.new(type: :module, closure: region.closure.closure, name: region.closure.name),
|
|
27
|
-
name: node.children[0].to_s,
|
|
28
|
-
comments: comments_for(node),
|
|
29
|
-
assignment: node.children[1],
|
|
30
|
-
source: :parser
|
|
31
|
-
)
|
|
32
|
-
end
|
|
33
|
-
end
|
|
34
|
-
process_children
|
|
35
|
-
end
|
|
36
|
-
end
|
|
37
|
-
end
|
|
38
|
-
end
|
|
39
|
-
end
|
|
40
|
-
end
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Solargraph
|
|
4
|
+
module Parser
|
|
5
|
+
module ParserGem
|
|
6
|
+
module NodeProcessors
|
|
7
|
+
class IvasgnNode < Parser::NodeProcessor::Base
|
|
8
|
+
include ParserGem::NodeMethods
|
|
9
|
+
|
|
10
|
+
def process
|
|
11
|
+
loc = get_node_location(node)
|
|
12
|
+
pins.push Solargraph::Pin::InstanceVariable.new(
|
|
13
|
+
location: loc,
|
|
14
|
+
closure: region.closure,
|
|
15
|
+
name: node.children[0].to_s,
|
|
16
|
+
comments: comments_for(node),
|
|
17
|
+
assignment: node.children[1],
|
|
18
|
+
source: :parser
|
|
19
|
+
)
|
|
20
|
+
if region.visibility == :module_function
|
|
21
|
+
here = get_node_start_position(node)
|
|
22
|
+
named_path = named_path_pin(here)
|
|
23
|
+
if named_path.is_a?(Pin::Method)
|
|
24
|
+
pins.push Solargraph::Pin::InstanceVariable.new(
|
|
25
|
+
location: loc,
|
|
26
|
+
closure: Pin::Namespace.new(type: :module, closure: region.closure.closure, name: region.closure.name),
|
|
27
|
+
name: node.children[0].to_s,
|
|
28
|
+
comments: comments_for(node),
|
|
29
|
+
assignment: node.children[1],
|
|
30
|
+
source: :parser
|
|
31
|
+
)
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
process_children
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
end
|
|
@@ -1,29 +1,29 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Solargraph
|
|
4
|
-
module Parser
|
|
5
|
-
module ParserGem
|
|
6
|
-
module NodeProcessors
|
|
7
|
-
class LvasgnNode < Parser::NodeProcessor::Base
|
|
8
|
-
include ParserGem::NodeMethods
|
|
9
|
-
|
|
10
|
-
def process
|
|
11
|
-
here = get_node_start_position(node)
|
|
12
|
-
presence = Range.new(here, region.closure.location.range.ending)
|
|
13
|
-
loc = get_node_location(node)
|
|
14
|
-
locals.push Solargraph::Pin::LocalVariable.new(
|
|
15
|
-
location: loc,
|
|
16
|
-
closure: region.closure,
|
|
17
|
-
name: node.children[0].to_s,
|
|
18
|
-
assignment: node.children[1],
|
|
19
|
-
comments: comments_for(node),
|
|
20
|
-
presence: presence,
|
|
21
|
-
source: :parser
|
|
22
|
-
)
|
|
23
|
-
process_children
|
|
24
|
-
end
|
|
25
|
-
end
|
|
26
|
-
end
|
|
27
|
-
end
|
|
28
|
-
end
|
|
29
|
-
end
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Solargraph
|
|
4
|
+
module Parser
|
|
5
|
+
module ParserGem
|
|
6
|
+
module NodeProcessors
|
|
7
|
+
class LvasgnNode < Parser::NodeProcessor::Base
|
|
8
|
+
include ParserGem::NodeMethods
|
|
9
|
+
|
|
10
|
+
def process
|
|
11
|
+
here = get_node_start_position(node)
|
|
12
|
+
presence = Range.new(here, region.closure.location.range.ending)
|
|
13
|
+
loc = get_node_location(node)
|
|
14
|
+
locals.push Solargraph::Pin::LocalVariable.new(
|
|
15
|
+
location: loc,
|
|
16
|
+
closure: region.closure,
|
|
17
|
+
name: node.children[0].to_s,
|
|
18
|
+
assignment: node.children[1],
|
|
19
|
+
comments: comments_for(node),
|
|
20
|
+
presence: presence,
|
|
21
|
+
source: :parser
|
|
22
|
+
)
|
|
23
|
+
process_children
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|