solargraph 0.58.2 → 0.59.0.dev.1
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/.github/workflows/linting.yml +4 -5
- data/.github/workflows/plugins.yml +40 -36
- data/.github/workflows/rspec.yml +45 -13
- data/.github/workflows/typecheck.yml +2 -2
- data/.gitignore +0 -1
- data/.rubocop_todo.yml +27 -49
- data/CHANGELOG.md +1 -7
- data/README.md +3 -3
- data/Rakefile +1 -0
- data/lib/solargraph/api_map/cache.rb +3 -3
- data/lib/solargraph/api_map/constants.rb +13 -3
- data/lib/solargraph/api_map/index.rb +22 -11
- data/lib/solargraph/api_map/source_to_yard.rb +13 -1
- data/lib/solargraph/api_map/store.rb +11 -8
- data/lib/solargraph/api_map.rb +105 -50
- data/lib/solargraph/complex_type/conformance.rb +176 -0
- data/lib/solargraph/complex_type/type_methods.rb +16 -2
- data/lib/solargraph/complex_type/unique_type.rb +170 -20
- data/lib/solargraph/complex_type.rb +119 -14
- data/lib/solargraph/convention/data_definition/data_definition_node.rb +3 -1
- data/lib/solargraph/convention/data_definition.rb +4 -1
- data/lib/solargraph/convention/struct_definition/struct_assignment_node.rb +1 -0
- data/lib/solargraph/convention/struct_definition/struct_definition_node.rb +1 -0
- data/lib/solargraph/convention/struct_definition.rb +5 -1
- data/lib/solargraph/diagnostics/require_not_found.rb +1 -0
- data/lib/solargraph/diagnostics/rubocop.rb +1 -0
- data/lib/solargraph/diagnostics/rubocop_helpers.rb +2 -0
- data/lib/solargraph/diagnostics/type_check.rb +1 -0
- data/lib/solargraph/doc_map.rb +134 -373
- data/lib/solargraph/equality.rb +1 -1
- data/lib/solargraph/gem_pins.rb +14 -15
- data/lib/solargraph/language_server/host/diagnoser.rb +89 -89
- data/lib/solargraph/language_server/host/dispatch.rb +1 -0
- data/lib/solargraph/language_server/host/message_worker.rb +2 -1
- data/lib/solargraph/language_server/host/sources.rb +1 -0
- data/lib/solargraph/language_server/host.rb +6 -1
- data/lib/solargraph/language_server/message/extended/check_gem_version.rb +2 -7
- data/lib/solargraph/language_server/message/extended/document.rb +1 -0
- data/lib/solargraph/language_server/message/text_document/completion.rb +2 -0
- data/lib/solargraph/language_server/message/text_document/definition.rb +2 -0
- data/lib/solargraph/language_server/message/text_document/document_symbol.rb +2 -0
- data/lib/solargraph/language_server/message/text_document/formatting.rb +2 -0
- data/lib/solargraph/language_server/message/text_document/hover.rb +2 -0
- data/lib/solargraph/language_server/message/text_document/signature_help.rb +1 -0
- data/lib/solargraph/language_server/message/text_document/type_definition.rb +2 -0
- data/lib/solargraph/language_server/message/workspace/workspace_symbol.rb +2 -0
- data/lib/solargraph/library.rb +59 -13
- data/lib/solargraph/location.rb +9 -4
- data/lib/solargraph/logging.rb +21 -1
- data/lib/solargraph/parser/comment_ripper.rb +7 -0
- data/lib/solargraph/parser/flow_sensitive_typing.rb +330 -102
- data/lib/solargraph/parser/node_processor/base.rb +32 -2
- data/lib/solargraph/parser/node_processor.rb +7 -6
- data/lib/solargraph/parser/parser_gem/class_methods.rb +28 -10
- data/lib/solargraph/parser/parser_gem/node_chainer.rb +31 -6
- data/lib/solargraph/parser/parser_gem/node_methods.rb +27 -7
- data/lib/solargraph/parser/parser_gem/node_processors/and_node.rb +4 -4
- data/lib/solargraph/parser/parser_gem/node_processors/args_node.rb +2 -0
- data/lib/solargraph/parser/parser_gem/node_processors/begin_node.rb +9 -0
- data/lib/solargraph/parser/parser_gem/node_processors/block_node.rb +11 -11
- data/lib/solargraph/parser/parser_gem/node_processors/def_node.rb +7 -0
- data/lib/solargraph/parser/parser_gem/node_processors/if_node.rb +36 -6
- data/lib/solargraph/parser/parser_gem/node_processors/ivasgn_node.rb +3 -2
- data/lib/solargraph/parser/parser_gem/node_processors/lvasgn_node.rb +1 -0
- data/lib/solargraph/parser/parser_gem/node_processors/masgn_node.rb +3 -1
- data/lib/solargraph/parser/parser_gem/node_processors/opasgn_node.rb +2 -2
- data/lib/solargraph/parser/parser_gem/node_processors/or_node.rb +22 -0
- data/lib/solargraph/parser/parser_gem/node_processors/orasgn_node.rb +1 -1
- data/lib/solargraph/parser/parser_gem/node_processors/resbody_node.rb +2 -1
- data/lib/solargraph/parser/parser_gem/node_processors/sclass_node.rb +1 -0
- data/lib/solargraph/parser/parser_gem/node_processors/send_node.rb +12 -7
- data/lib/solargraph/parser/parser_gem/node_processors/when_node.rb +23 -0
- data/lib/solargraph/parser/parser_gem/node_processors/while_node.rb +5 -1
- data/lib/solargraph/parser/parser_gem/node_processors.rb +4 -0
- data/lib/solargraph/parser/region.rb +9 -3
- data/lib/solargraph/parser/snippet.rb +1 -1
- data/lib/solargraph/pin/base.rb +53 -21
- data/lib/solargraph/pin/base_variable.rb +312 -20
- data/lib/solargraph/pin/block.rb +26 -4
- data/lib/solargraph/pin/breakable.rb +5 -1
- data/lib/solargraph/pin/callable.rb +50 -3
- data/lib/solargraph/pin/closure.rb +2 -6
- data/lib/solargraph/pin/common.rb +20 -5
- data/lib/solargraph/pin/compound_statement.rb +55 -0
- data/lib/solargraph/pin/conversions.rb +2 -1
- data/lib/solargraph/pin/delegated_method.rb +15 -4
- data/lib/solargraph/pin/documenting.rb +1 -0
- data/lib/solargraph/pin/instance_variable.rb +5 -1
- data/lib/solargraph/pin/keyword.rb +0 -4
- data/lib/solargraph/pin/local_variable.rb +13 -57
- data/lib/solargraph/pin/method.rb +90 -42
- data/lib/solargraph/pin/method_alias.rb +8 -0
- data/lib/solargraph/pin/namespace.rb +7 -1
- data/lib/solargraph/pin/parameter.rb +76 -13
- data/lib/solargraph/pin/proxy_type.rb +2 -1
- data/lib/solargraph/pin/reference/override.rb +1 -1
- data/lib/solargraph/pin/reference/superclass.rb +2 -0
- data/lib/solargraph/pin/reference.rb +2 -0
- data/lib/solargraph/pin/search.rb +1 -0
- data/lib/solargraph/pin/signature.rb +8 -0
- data/lib/solargraph/pin/symbol.rb +1 -1
- data/lib/solargraph/pin/until.rb +1 -1
- data/lib/solargraph/pin/while.rb +1 -1
- data/lib/solargraph/pin.rb +2 -0
- data/lib/solargraph/pin_cache.rb +477 -57
- data/lib/solargraph/position.rb +12 -26
- data/lib/solargraph/range.rb +6 -6
- data/lib/solargraph/rbs_map/conversions.rb +33 -10
- data/lib/solargraph/rbs_map/core_map.rb +24 -17
- data/lib/solargraph/rbs_map/stdlib_map.rb +34 -5
- data/lib/solargraph/rbs_map.rb +74 -20
- data/lib/solargraph/shell.rb +73 -28
- data/lib/solargraph/source/chain/call.rb +52 -17
- data/lib/solargraph/source/chain/constant.rb +2 -0
- data/lib/solargraph/source/chain/hash.rb +1 -0
- data/lib/solargraph/source/chain/if.rb +1 -0
- data/lib/solargraph/source/chain/instance_variable.rb +22 -1
- data/lib/solargraph/source/chain/literal.rb +5 -0
- data/lib/solargraph/source/chain/or.rb +9 -1
- data/lib/solargraph/source/chain.rb +25 -22
- data/lib/solargraph/source/change.rb +9 -2
- data/lib/solargraph/source/cursor.rb +7 -1
- data/lib/solargraph/source/source_chainer.rb +13 -3
- data/lib/solargraph/source/updater.rb +4 -0
- data/lib/solargraph/source.rb +33 -7
- data/lib/solargraph/source_map/clip.rb +13 -2
- data/lib/solargraph/source_map/data.rb +4 -1
- data/lib/solargraph/source_map/mapper.rb +24 -1
- data/lib/solargraph/source_map.rb +14 -6
- data/lib/solargraph/type_checker/problem.rb +3 -1
- data/lib/solargraph/type_checker/rules.rb +75 -2
- data/lib/solargraph/type_checker.rb +111 -30
- data/lib/solargraph/version.rb +1 -1
- data/lib/solargraph/workspace/config.rb +3 -1
- data/lib/solargraph/workspace/gemspecs.rb +367 -0
- data/lib/solargraph/workspace/require_paths.rb +1 -0
- data/lib/solargraph/workspace.rb +158 -16
- data/lib/solargraph/yard_map/helpers.rb +2 -1
- data/lib/solargraph/yard_map/mapper/to_method.rb +5 -1
- data/lib/solargraph/yard_map/mapper/to_namespace.rb +1 -0
- data/lib/solargraph/yard_map/mapper.rb +5 -0
- data/lib/solargraph/yardoc.rb +33 -23
- data/lib/solargraph.rb +24 -3
- data/rbs/fills/rubygems/0/dependency.rbs +193 -0
- data/rbs/fills/tuple/tuple.rbs +28 -0
- data/rbs/shims/ast/0/node.rbs +1 -1
- data/rbs/shims/diff-lcs/1.5/diff-lcs.rbs +11 -0
- data/solargraph.gemspec +2 -1
- metadata +12 -7
- 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
|
@@ -30,12 +30,29 @@ module Solargraph
|
|
|
30
30
|
end
|
|
31
31
|
|
|
32
32
|
def combine_with(other, attrs={})
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
33
|
+
# Parameters can be combined with local variables
|
|
34
|
+
new_attrs = if other.is_a?(Parameter)
|
|
35
|
+
{
|
|
36
|
+
decl: assert_same(other, :decl),
|
|
37
|
+
asgn_code: choose(other, :asgn_code)
|
|
38
|
+
}
|
|
39
|
+
else
|
|
40
|
+
{
|
|
41
|
+
decl: decl,
|
|
42
|
+
asgn_code: asgn_code
|
|
43
|
+
}
|
|
44
|
+
end
|
|
45
|
+
super(other, new_attrs.merge(attrs))
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
def combine_return_type(other)
|
|
49
|
+
out = super
|
|
50
|
+
if out&.undefined?
|
|
51
|
+
# allow our return_type method to provide a better type
|
|
52
|
+
# using :param tag
|
|
53
|
+
out = nil
|
|
54
|
+
end
|
|
55
|
+
out
|
|
39
56
|
end
|
|
40
57
|
|
|
41
58
|
def keyword?
|
|
@@ -43,6 +60,7 @@ module Solargraph
|
|
|
43
60
|
end
|
|
44
61
|
|
|
45
62
|
def kwrestarg?
|
|
63
|
+
# @sg-ignore flow sensitive typing needs to handle attrs
|
|
46
64
|
decl == :kwrestarg || (assignment && [:HASH, :hash].include?(assignment.type))
|
|
47
65
|
end
|
|
48
66
|
|
|
@@ -72,6 +90,11 @@ module Solargraph
|
|
|
72
90
|
end
|
|
73
91
|
end
|
|
74
92
|
|
|
93
|
+
# @return [String]
|
|
94
|
+
def type_arity_decl
|
|
95
|
+
arity_decl + return_type.items.count.to_s
|
|
96
|
+
end
|
|
97
|
+
|
|
75
98
|
def arg?
|
|
76
99
|
decl == :arg
|
|
77
100
|
end
|
|
@@ -80,6 +103,14 @@ module Solargraph
|
|
|
80
103
|
decl == :restarg
|
|
81
104
|
end
|
|
82
105
|
|
|
106
|
+
def mandatory_positional?
|
|
107
|
+
decl == :arg
|
|
108
|
+
end
|
|
109
|
+
|
|
110
|
+
def positional?
|
|
111
|
+
!keyword?
|
|
112
|
+
end
|
|
113
|
+
|
|
83
114
|
def rest?
|
|
84
115
|
decl == :restarg || decl == :kwrestarg
|
|
85
116
|
end
|
|
@@ -123,6 +154,11 @@ module Solargraph
|
|
|
123
154
|
end
|
|
124
155
|
end
|
|
125
156
|
|
|
157
|
+
def reset_generated!
|
|
158
|
+
@return_type = nil if param_tag
|
|
159
|
+
super
|
|
160
|
+
end
|
|
161
|
+
|
|
126
162
|
# @return [String]
|
|
127
163
|
def full
|
|
128
164
|
full_name + case decl
|
|
@@ -135,12 +171,14 @@ module Solargraph
|
|
|
135
171
|
end
|
|
136
172
|
end
|
|
137
173
|
|
|
174
|
+
# @sg-ignore super always sets @return_type to something
|
|
138
175
|
# @return [ComplexType]
|
|
139
176
|
def return_type
|
|
140
177
|
if @return_type.nil?
|
|
141
178
|
@return_type = ComplexType::UNDEFINED
|
|
142
179
|
found = param_tag
|
|
143
180
|
@return_type = ComplexType.try_parse(*found.types) unless found.nil? or found.types.nil?
|
|
181
|
+
# @sg-ignore flow sensitive typing should be able to handle redefinition
|
|
144
182
|
if @return_type.undefined?
|
|
145
183
|
if decl == :restarg
|
|
146
184
|
@return_type = ComplexType.try_parse('::Array')
|
|
@@ -152,22 +190,29 @@ module Solargraph
|
|
|
152
190
|
end
|
|
153
191
|
end
|
|
154
192
|
super
|
|
155
|
-
@return_type
|
|
156
193
|
end
|
|
157
194
|
|
|
158
195
|
# The parameter's zero-based location in the block's signature.
|
|
159
196
|
#
|
|
197
|
+
# @sg-ignore Need to add nil check here
|
|
160
198
|
# @return [Integer]
|
|
161
199
|
def index
|
|
162
|
-
# @type [Method, Block]
|
|
163
200
|
method_pin = closure
|
|
201
|
+
# @sg-ignore Need to add nil check here
|
|
164
202
|
method_pin.parameter_names.index(name)
|
|
165
203
|
end
|
|
166
204
|
|
|
167
205
|
# @param api_map [ApiMap]
|
|
168
206
|
def typify api_map
|
|
169
|
-
|
|
170
|
-
|
|
207
|
+
new_type = super
|
|
208
|
+
return new_type if new_type.defined?
|
|
209
|
+
|
|
210
|
+
# sniff based on param tags
|
|
211
|
+
new_type = closure.is_a?(Pin::Block) ? typify_block_param(api_map) : typify_method_param(api_map)
|
|
212
|
+
|
|
213
|
+
return adjust_type api_map, new_type.self_to_type(full_context) if new_type.defined?
|
|
214
|
+
|
|
215
|
+
adjust_type api_map, super.self_to_type(full_context)
|
|
171
216
|
end
|
|
172
217
|
|
|
173
218
|
# @param atype [ComplexType]
|
|
@@ -176,9 +221,16 @@ module Solargraph
|
|
|
176
221
|
# make sure we get types from up the method
|
|
177
222
|
# inheritance chain if we don't have them on this pin
|
|
178
223
|
ptype = typify api_map
|
|
179
|
-
|
|
224
|
+
return true if ptype.undefined?
|
|
225
|
+
|
|
226
|
+
return true if atype.conforms_to?(api_map,
|
|
227
|
+
ptype,
|
|
228
|
+
:method_call,
|
|
229
|
+
[:allow_empty_params, :allow_undefined])
|
|
230
|
+
ptype.generic?
|
|
180
231
|
end
|
|
181
232
|
|
|
233
|
+
# @sg-ignore flow sensitive typing needs to handle attrs
|
|
182
234
|
def documentation
|
|
183
235
|
tag = param_tag
|
|
184
236
|
return '' if tag.nil? || tag.text.nil?
|
|
@@ -187,12 +239,19 @@ module Solargraph
|
|
|
187
239
|
|
|
188
240
|
private
|
|
189
241
|
|
|
242
|
+
def generate_complex_type
|
|
243
|
+
nil
|
|
244
|
+
end
|
|
245
|
+
|
|
190
246
|
# @return [YARD::Tags::Tag, nil]
|
|
191
247
|
def param_tag
|
|
248
|
+
# @sg-ignore Need to add nil check here
|
|
192
249
|
params = closure.docstring.tags(:param)
|
|
250
|
+
# @sg-ignore Need to add nil check here
|
|
193
251
|
params.each do |p|
|
|
194
252
|
return p if p.name == name
|
|
195
253
|
end
|
|
254
|
+
# @sg-ignore Need to add nil check here
|
|
196
255
|
params[index] if index && params[index] && (params[index].name.nil? || params[index].name.empty?)
|
|
197
256
|
end
|
|
198
257
|
|
|
@@ -200,7 +259,7 @@ module Solargraph
|
|
|
200
259
|
# @return [ComplexType]
|
|
201
260
|
def typify_block_param api_map
|
|
202
261
|
block_pin = closure
|
|
203
|
-
if block_pin.is_a?(Pin::Block) && block_pin.receiver
|
|
262
|
+
if block_pin.is_a?(Pin::Block) && block_pin.receiver && index
|
|
204
263
|
return block_pin.typify_parameters(api_map)[index]
|
|
205
264
|
end
|
|
206
265
|
ComplexType::UNDEFINED
|
|
@@ -209,6 +268,7 @@ module Solargraph
|
|
|
209
268
|
# @param api_map [ApiMap]
|
|
210
269
|
# @return [ComplexType]
|
|
211
270
|
def typify_method_param api_map
|
|
271
|
+
# @sg-ignore Need to add nil check here
|
|
212
272
|
meths = api_map.get_method_stack(closure.full_context.tag, closure.name, scope: closure.scope)
|
|
213
273
|
# meths.shift # Ignore the first one
|
|
214
274
|
meths.each do |meth|
|
|
@@ -222,6 +282,7 @@ module Solargraph
|
|
|
222
282
|
if found.nil? and !index.nil?
|
|
223
283
|
found = params[index] if params[index] && (params[index].name.nil? || params[index].name.empty?)
|
|
224
284
|
end
|
|
285
|
+
# @sg-ignore Need to add nil check here
|
|
225
286
|
return ComplexType.try_parse(*found.types).qualify(api_map, *meth.closure.gates) unless found.nil? || found.types.nil?
|
|
226
287
|
end
|
|
227
288
|
ComplexType::UNDEFINED
|
|
@@ -230,6 +291,7 @@ module Solargraph
|
|
|
230
291
|
# @param heredoc [YARD::Docstring]
|
|
231
292
|
# @param api_map [ApiMap]
|
|
232
293
|
# @param skip [::Array]
|
|
294
|
+
#
|
|
233
295
|
# @return [::Array<YARD::Tags::Tag>]
|
|
234
296
|
def see_reference heredoc, api_map, skip = []
|
|
235
297
|
# This should actually be an intersection type
|
|
@@ -237,7 +299,7 @@ module Solargraph
|
|
|
237
299
|
heredoc.ref_tags.each do |ref|
|
|
238
300
|
# @sg-ignore ref should actually be an intersection type
|
|
239
301
|
next unless ref.tag_name == 'param' && ref.owner
|
|
240
|
-
# @
|
|
302
|
+
# @todo ref should actually be an intersection type
|
|
241
303
|
result = resolve_reference(ref.owner.to_s, api_map, skip)
|
|
242
304
|
return result unless result.nil?
|
|
243
305
|
end
|
|
@@ -257,6 +319,7 @@ module Solargraph
|
|
|
257
319
|
else
|
|
258
320
|
fqns = api_map.qualify(parts.first, namespace)
|
|
259
321
|
return nil if fqns.nil?
|
|
322
|
+
# @sg-ignore Need to add nil check here
|
|
260
323
|
path = fqns + ref[parts.first.length] + parts.last
|
|
261
324
|
end
|
|
262
325
|
pins = api_map.get_path_pins(path)
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
module Solargraph
|
|
4
4
|
module Pin
|
|
5
5
|
class ProxyType < Base
|
|
6
|
-
# @param return_type [ComplexType]
|
|
6
|
+
# @param return_type [ComplexType, ComplexType::UniqueType]
|
|
7
7
|
# @param gates [Array<String>, nil] Namespaces to try while resolving non-rooted types
|
|
8
8
|
# @param binder [ComplexType, ComplexType::UniqueType, nil]
|
|
9
9
|
# @param gates [Array<String>, nil]
|
|
@@ -25,6 +25,7 @@ module Solargraph
|
|
|
25
25
|
def self.anonymous context, closure: nil, binder: nil, **kwargs
|
|
26
26
|
unless closure
|
|
27
27
|
parts = context.namespace.split('::')
|
|
28
|
+
# @sg-ignore Need to add nil check here
|
|
28
29
|
namespace = parts[0..-2].join('::').to_s
|
|
29
30
|
closure = Solargraph::Pin::Namespace.new(name: namespace, source: :proxy_type)
|
|
30
31
|
end
|
|
@@ -10,6 +10,7 @@ module Solargraph
|
|
|
10
10
|
end
|
|
11
11
|
|
|
12
12
|
def generics
|
|
13
|
+
# @type [Array<::String, nil>]
|
|
13
14
|
@generics ||= [].freeze
|
|
14
15
|
end
|
|
15
16
|
|
|
@@ -19,6 +20,7 @@ module Solargraph
|
|
|
19
20
|
|
|
20
21
|
attr_writer :closure
|
|
21
22
|
|
|
23
|
+
# @ sg-ignore need boolish support for ? methods
|
|
22
24
|
def dodgy_return_type_source?
|
|
23
25
|
super || closure&.dodgy_return_type_source?
|
|
24
26
|
end
|
|
@@ -32,8 +34,11 @@ module Solargraph
|
|
|
32
34
|
end
|
|
33
35
|
|
|
34
36
|
def typify api_map
|
|
37
|
+
# @sg-ignore Need to add nil check here
|
|
35
38
|
if return_type.defined?
|
|
39
|
+
# @sg-ignore Need to add nil check here
|
|
36
40
|
qualified = return_type.qualify(api_map, closure.namespace)
|
|
41
|
+
# @sg-ignore Need to add nil check here
|
|
37
42
|
logger.debug { "Signature#typify(self=#{self}) => #{qualified.rooted_tags.inspect}" }
|
|
38
43
|
return qualified
|
|
39
44
|
end
|
|
@@ -46,8 +51,11 @@ module Solargraph
|
|
|
46
51
|
method_stack.each do |pin|
|
|
47
52
|
sig = pin.signatures.find { |s| s.arity == self.arity }
|
|
48
53
|
next unless sig
|
|
54
|
+
# @sg-ignore Need to add nil check here
|
|
49
55
|
unless sig.return_type.undefined?
|
|
56
|
+
# @sg-ignore Need to add nil check here
|
|
50
57
|
qualified = sig.return_type.qualify(api_map, closure.namespace)
|
|
58
|
+
# @sg-ignore Need to add nil check here
|
|
51
59
|
logger.debug { "Signature#typify(self=#{self}) => #{qualified.rooted_tags.inspect}" }
|
|
52
60
|
return qualified
|
|
53
61
|
end
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
module Solargraph
|
|
4
4
|
module Pin
|
|
5
5
|
class Symbol < Base
|
|
6
|
-
# @param location [Solargraph::Location]
|
|
6
|
+
# @param location [Solargraph::Location, nil]
|
|
7
7
|
# @param name [String]
|
|
8
8
|
def initialize(location, name, **kwargs)
|
|
9
9
|
# @sg-ignore "Unrecognized keyword argument kwargs to Solargraph::Pin::Base#initialize"
|
data/lib/solargraph/pin/until.rb
CHANGED
data/lib/solargraph/pin/while.rb
CHANGED
data/lib/solargraph/pin.rb
CHANGED
|
@@ -38,6 +38,8 @@ module Solargraph
|
|
|
38
38
|
autoload :Until, 'solargraph/pin/until'
|
|
39
39
|
autoload :While, 'solargraph/pin/while'
|
|
40
40
|
autoload :Callable, 'solargraph/pin/callable'
|
|
41
|
+
autoload :CompoundStatement,
|
|
42
|
+
'solargraph/pin/compound_statement'
|
|
41
43
|
|
|
42
44
|
ROOT_PIN = Pin::Namespace.new(type: :class, name: '', closure: nil, source: :pin_rb)
|
|
43
45
|
end
|