solargraph 0.54.5 → 0.55.4
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/.github/workflows/typecheck.yml +1 -1
- data/CHANGELOG.md +27 -0
- data/lib/solargraph/api_map/store.rb +9 -4
- data/lib/solargraph/api_map.rb +116 -39
- data/lib/solargraph/complex_type/type_methods.rb +1 -0
- data/lib/solargraph/complex_type/unique_type.rb +91 -9
- data/lib/solargraph/complex_type.rb +35 -6
- data/lib/solargraph/convention/struct_definition/struct_assignment_node.rb +60 -0
- data/lib/solargraph/convention/struct_definition/struct_definition_node.rb +100 -0
- data/lib/solargraph/convention/struct_definition.rb +101 -0
- data/lib/solargraph/convention.rb +1 -0
- data/lib/solargraph/doc_map.rb +83 -23
- data/lib/solargraph/gem_pins.rb +2 -1
- data/lib/solargraph/language_server/host/message_worker.rb +10 -7
- data/lib/solargraph/language_server/host.rb +3 -1
- data/lib/solargraph/language_server/message/extended/check_gem_version.rb +1 -0
- data/lib/solargraph/location.rb +8 -0
- data/lib/solargraph/logging.rb +1 -0
- data/lib/solargraph/parser/comment_ripper.rb +12 -6
- data/lib/solargraph/parser/flow_sensitive_typing.rb +227 -0
- data/lib/solargraph/parser/node_methods.rb +14 -0
- data/lib/solargraph/parser/node_processor.rb +3 -2
- data/lib/solargraph/parser/parser_gem/class_methods.rb +9 -0
- data/lib/solargraph/parser/parser_gem/node_chainer.rb +10 -10
- data/lib/solargraph/parser/parser_gem/node_methods.rb +4 -2
- data/lib/solargraph/parser/parser_gem/node_processors/alias_node.rb +2 -1
- data/lib/solargraph/parser/parser_gem/node_processors/and_node.rb +21 -0
- data/lib/solargraph/parser/parser_gem/node_processors/args_node.rb +4 -2
- data/lib/solargraph/parser/parser_gem/node_processors/block_node.rb +4 -2
- data/lib/solargraph/parser/parser_gem/node_processors/casgn_node.rb +23 -2
- data/lib/solargraph/parser/parser_gem/node_processors/cvasgn_node.rb +2 -1
- data/lib/solargraph/parser/parser_gem/node_processors/def_node.rb +6 -3
- data/lib/solargraph/parser/parser_gem/node_processors/defs_node.rb +2 -1
- data/lib/solargraph/parser/parser_gem/node_processors/gvasgn_node.rb +2 -1
- data/lib/solargraph/parser/parser_gem/node_processors/if_node.rb +21 -0
- data/lib/solargraph/parser/parser_gem/node_processors/ivasgn_node.rb +4 -2
- data/lib/solargraph/parser/parser_gem/node_processors/lvasgn_node.rb +2 -1
- data/lib/solargraph/parser/parser_gem/node_processors/namespace_node.rb +29 -6
- data/lib/solargraph/parser/parser_gem/node_processors/opasgn_node.rb +41 -0
- data/lib/solargraph/parser/parser_gem/node_processors/resbody_node.rb +2 -1
- data/lib/solargraph/parser/parser_gem/node_processors/sclass_node.rb +4 -3
- data/lib/solargraph/parser/parser_gem/node_processors/send_node.rb +28 -16
- data/lib/solargraph/parser/parser_gem/node_processors/sym_node.rb +2 -1
- data/lib/solargraph/parser/parser_gem/node_processors/until_node.rb +29 -0
- data/lib/solargraph/parser/parser_gem/node_processors/while_node.rb +29 -0
- data/lib/solargraph/parser/parser_gem/node_processors.rb +10 -0
- data/lib/solargraph/parser/region.rb +1 -1
- data/lib/solargraph/parser.rb +1 -0
- data/lib/solargraph/pin/base.rb +34 -5
- data/lib/solargraph/pin/base_variable.rb +7 -1
- data/lib/solargraph/pin/block.rb +2 -0
- data/lib/solargraph/pin/breakable.rb +9 -0
- data/lib/solargraph/pin/callable.rb +5 -3
- data/lib/solargraph/pin/closure.rb +6 -1
- data/lib/solargraph/pin/common.rb +5 -0
- data/lib/solargraph/pin/delegated_method.rb +20 -1
- data/lib/solargraph/pin/documenting.rb +16 -0
- data/lib/solargraph/pin/keyword.rb +7 -2
- data/lib/solargraph/pin/local_variable.rb +7 -1
- data/lib/solargraph/pin/method.rb +34 -27
- data/lib/solargraph/pin/namespace.rb +17 -9
- data/lib/solargraph/pin/parameter.rb +17 -5
- data/lib/solargraph/pin/proxy_type.rb +12 -6
- data/lib/solargraph/pin/reference/override.rb +10 -6
- data/lib/solargraph/pin/reference/require.rb +2 -2
- data/lib/solargraph/pin/signature.rb +4 -0
- data/lib/solargraph/pin/singleton.rb +1 -1
- data/lib/solargraph/pin/symbol.rb +3 -2
- data/lib/solargraph/pin/until.rb +18 -0
- data/lib/solargraph/pin/while.rb +18 -0
- data/lib/solargraph/pin.rb +4 -1
- data/lib/solargraph/rbs_map/conversions.rb +172 -56
- data/lib/solargraph/rbs_map/core_fills.rb +32 -16
- data/lib/solargraph/rbs_map/core_map.rb +3 -2
- data/lib/solargraph/shell.rb +1 -0
- data/lib/solargraph/source/chain/array.rb +11 -7
- data/lib/solargraph/source/chain/block_symbol.rb +1 -1
- data/lib/solargraph/source/chain/block_variable.rb +1 -1
- data/lib/solargraph/source/chain/call.rb +53 -23
- data/lib/solargraph/source/chain/constant.rb +1 -1
- data/lib/solargraph/source/chain/hash.rb +4 -3
- data/lib/solargraph/source/chain/head.rb +1 -1
- data/lib/solargraph/source/chain/if.rb +1 -1
- data/lib/solargraph/source/chain/link.rb +2 -0
- data/lib/solargraph/source/chain/literal.rb +22 -2
- data/lib/solargraph/source/chain/or.rb +1 -1
- data/lib/solargraph/source/chain/z_super.rb +1 -1
- data/lib/solargraph/source/chain.rb +78 -48
- data/lib/solargraph/source/source_chainer.rb +2 -2
- data/lib/solargraph/source_map/clip.rb +3 -1
- data/lib/solargraph/source_map/mapper.rb +9 -5
- data/lib/solargraph/type_checker/checks.rb +4 -0
- data/lib/solargraph/type_checker.rb +35 -8
- data/lib/solargraph/version.rb +1 -1
- data/lib/solargraph/yard_map/mapper/to_constant.rb +4 -2
- data/lib/solargraph/yard_map/mapper/to_method.rb +55 -15
- data/lib/solargraph/yard_map/mapper/to_namespace.rb +4 -2
- data/lib/solargraph/yard_map/mapper.rb +4 -3
- data/lib/solargraph/yard_map/to_method.rb +4 -2
- data/lib/solargraph.rb +20 -0
- data/rbs/fills/tuple.rbs +150 -0
- metadata +15 -2
data/lib/solargraph/version.rb
CHANGED
@@ -10,14 +10,16 @@ module Solargraph
|
|
10
10
|
def self.make code_object, closure = nil, spec = nil
|
11
11
|
closure ||= Solargraph::Pin::Namespace.new(
|
12
12
|
name: code_object.namespace.to_s,
|
13
|
-
gates: [code_object.namespace.to_s]
|
13
|
+
gates: [code_object.namespace.to_s],
|
14
|
+
source: :yardoc,
|
14
15
|
)
|
15
16
|
Pin::Constant.new(
|
16
17
|
location: object_location(code_object, spec),
|
17
18
|
closure: closure,
|
18
19
|
name: code_object.name.to_s,
|
19
20
|
comments: code_object.docstring ? code_object.docstring.all.to_s : '',
|
20
|
-
visibility: code_object.visibility
|
21
|
+
visibility: code_object.visibility,
|
22
|
+
source: :yardoc
|
21
23
|
)
|
22
24
|
end
|
23
25
|
end
|
@@ -6,6 +6,11 @@ module Solargraph
|
|
6
6
|
module ToMethod
|
7
7
|
extend YardMap::Helpers
|
8
8
|
|
9
|
+
VISIBILITY_OVERRIDE = {
|
10
|
+
# YARD pays attention to 'private' statements prior to class methods but shouldn't
|
11
|
+
["Rails::Engine", :class, "find_root_with_flag"] => :public
|
12
|
+
}
|
13
|
+
|
9
14
|
# @param code_object [YARD::CodeObjects::Base]
|
10
15
|
# @param name [String, nil]
|
11
16
|
# @param scope [Symbol, nil]
|
@@ -16,29 +21,63 @@ module Solargraph
|
|
16
21
|
def self.make code_object, name = nil, scope = nil, visibility = nil, closure = nil, spec = nil
|
17
22
|
closure ||= Solargraph::Pin::Namespace.new(
|
18
23
|
name: code_object.namespace.to_s,
|
19
|
-
gates: [code_object.namespace.to_s]
|
24
|
+
gates: [code_object.namespace.to_s],
|
25
|
+
type: code_object.namespace.is_a?(YARD::CodeObjects::ClassObject) ? :class : :module,
|
26
|
+
source: :yardoc,
|
20
27
|
)
|
21
28
|
location = object_location(code_object, spec)
|
22
29
|
name ||= code_object.name.to_s
|
23
30
|
return_type = ComplexType::SELF if name == 'new'
|
24
31
|
comments = code_object.docstring ? code_object.docstring.all.to_s : ''
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
32
|
+
final_scope = scope || code_object.scope
|
33
|
+
override_key = [closure.path, final_scope, name]
|
34
|
+
final_visibility = VISIBILITY_OVERRIDE[override_key]
|
35
|
+
final_visibility ||= VISIBILITY_OVERRIDE[override_key[0..-2]]
|
36
|
+
final_visibility ||= :private if closure.path == 'Kernel' && Kernel.private_instance_methods(false).include?(name)
|
37
|
+
final_visibility ||= visibility
|
38
|
+
final_visibility ||= :private if code_object.module_function? && final_scope == :instance
|
39
|
+
final_visibility ||= :public if code_object.module_function? && final_scope == :class
|
40
|
+
final_visibility ||= code_object.visibility
|
41
|
+
if code_object.is_alias?
|
42
|
+
origin_code_object = code_object.namespace.aliases[code_object]
|
43
|
+
pin = Pin::MethodAlias.new(
|
44
|
+
name: name,
|
45
|
+
location: location,
|
46
|
+
original: origin_code_object.name.to_s,
|
47
|
+
closure: closure,
|
48
|
+
comments: comments,
|
49
|
+
scope: final_scope,
|
50
|
+
visibility: final_visibility,
|
51
|
+
explicit: code_object.is_explicit?,
|
52
|
+
return_type: return_type,
|
53
|
+
parameters: [],
|
54
|
+
source: :yardoc,
|
55
|
+
)
|
56
|
+
else
|
57
|
+
pin = Pin::Method.new(
|
58
|
+
location: location,
|
59
|
+
closure: closure,
|
60
|
+
name: name,
|
61
|
+
comments: comments,
|
62
|
+
scope: final_scope,
|
63
|
+
visibility: final_visibility,
|
64
|
+
# @todo Might need to convert overloads to signatures
|
65
|
+
explicit: code_object.is_explicit?,
|
66
|
+
return_type: return_type,
|
67
|
+
attribute: code_object.is_attribute?,
|
68
|
+
parameters: [],
|
69
|
+
source: :yardoc,
|
70
|
+
)
|
71
|
+
pin.parameters.concat get_parameters(code_object, location, comments, pin)
|
72
|
+
pin.parameters.freeze
|
73
|
+
end
|
74
|
+
logger.debug { "ToMethod.make: Just created method pin: #{pin.inspect}" }
|
38
75
|
pin
|
39
76
|
end
|
40
77
|
|
41
78
|
class << self
|
79
|
+
include Logging
|
80
|
+
|
42
81
|
private
|
43
82
|
|
44
83
|
# @param code_object [YARD::CodeObjects::Base]
|
@@ -59,7 +98,8 @@ module Solargraph
|
|
59
98
|
name: arg_name(a),
|
60
99
|
presence: nil,
|
61
100
|
decl: arg_type(a),
|
62
|
-
asgn_code: a[1]
|
101
|
+
asgn_code: a[1],
|
102
|
+
source: :yardoc,
|
63
103
|
)
|
64
104
|
end
|
65
105
|
end
|
@@ -11,7 +11,8 @@ module Solargraph
|
|
11
11
|
closure ||= Solargraph::Pin::Namespace.new(
|
12
12
|
name: code_object.namespace.to_s,
|
13
13
|
closure: Pin::ROOT_PIN,
|
14
|
-
gates: [code_object.namespace.to_s]
|
14
|
+
gates: [code_object.namespace.to_s],
|
15
|
+
source: :yardoc,
|
15
16
|
)
|
16
17
|
Pin::Namespace.new(
|
17
18
|
location: object_location(code_object, spec),
|
@@ -19,7 +20,8 @@ module Solargraph
|
|
19
20
|
comments: code_object.docstring ? code_object.docstring.all.to_s : '',
|
20
21
|
type: code_object.is_a?(YARD::CodeObjects::ClassObject) ? :class : :module,
|
21
22
|
visibility: code_object.visibility,
|
22
|
-
closure: closure
|
23
|
+
closure: closure,
|
24
|
+
source: :yardoc,
|
23
25
|
)
|
24
26
|
end
|
25
27
|
end
|
@@ -47,15 +47,16 @@ module Solargraph
|
|
47
47
|
else
|
48
48
|
code_object.superclass.to_s
|
49
49
|
end
|
50
|
-
result.push Solargraph::Pin::Reference::Superclass.new(name: superclass, closure: nspin)
|
50
|
+
result.push Solargraph::Pin::Reference::Superclass.new(name: superclass, closure: nspin, source: :yard_map)
|
51
51
|
end
|
52
52
|
code_object.class_mixins.each do |m|
|
53
|
-
result.push Solargraph::Pin::Reference::Extend.new(closure: nspin, name: m.path)
|
53
|
+
result.push Solargraph::Pin::Reference::Extend.new(closure: nspin, name: m.path, source: :yard_map)
|
54
54
|
end
|
55
55
|
code_object.instance_mixins.each do |m|
|
56
56
|
result.push Solargraph::Pin::Reference::Include.new(
|
57
57
|
closure: nspin, # @todo Fix this
|
58
|
-
name: m.path
|
58
|
+
name: m.path,
|
59
|
+
source: :yard_map
|
59
60
|
)
|
60
61
|
end
|
61
62
|
elsif code_object.is_a?(YARD::CodeObjects::MethodObject)
|
@@ -23,7 +23,8 @@ module Solargraph
|
|
23
23
|
name: arg_name(a),
|
24
24
|
presence: nil,
|
25
25
|
decl: arg_type(a),
|
26
|
-
asgn_code: a[1]
|
26
|
+
asgn_code: a[1],
|
27
|
+
source: :yard_map
|
27
28
|
)
|
28
29
|
end
|
29
30
|
end
|
@@ -78,7 +79,8 @@ module Solargraph
|
|
78
79
|
scope: scope || code_object.scope,
|
79
80
|
visibility: visibility || code_object.visibility,
|
80
81
|
parameters: InnerMethods.get_parameters(code_object, location, comments),
|
81
|
-
explicit: code_object.is_explicit
|
82
|
+
explicit: code_object.is_explicit?,
|
83
|
+
source: :yard_map
|
82
84
|
)
|
83
85
|
end
|
84
86
|
end
|
data/lib/solargraph.rb
CHANGED
@@ -2,6 +2,7 @@
|
|
2
2
|
|
3
3
|
Encoding.default_external = 'UTF-8'
|
4
4
|
|
5
|
+
require 'bundler'
|
5
6
|
require 'set'
|
6
7
|
require 'yard-solargraph'
|
7
8
|
require 'solargraph/yard_tags'
|
@@ -52,6 +53,25 @@ module Solargraph
|
|
52
53
|
dir = File.dirname(__FILE__)
|
53
54
|
VIEWS_PATH = File.join(dir, 'solargraph', 'views')
|
54
55
|
|
56
|
+
# @param type [Symbol] Type of assert. Not used yet, but may be
|
57
|
+
# used in the future to allow configurable asserts mixes for
|
58
|
+
# different situations.
|
59
|
+
def self.asserts_on?(type)
|
60
|
+
@asserts_on ||= if ENV['SOLARGRAPH_ASSERTS'].nil? || ENV['SOLARGRAPH_ASSERTS'].empty?
|
61
|
+
false
|
62
|
+
elsif ENV['SOLARGRAPH_ASSERTS'] == 'on'
|
63
|
+
true
|
64
|
+
else
|
65
|
+
logger.warn "Unrecognized SOLARGRAPH_ASSERTS value: #{ENV['SOLARGRAPH_ASSERTS']}"
|
66
|
+
false
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
def self.assert_or_log(type, msg = nil, &block)
|
71
|
+
raise (msg || block.call) if asserts_on?(type) && ![:combine_with_visibility].include?(type)
|
72
|
+
logger.info msg, &block
|
73
|
+
end
|
74
|
+
|
55
75
|
# A convenience method for Solargraph::Logging.logger.
|
56
76
|
#
|
57
77
|
# @return [Logger]
|
data/rbs/fills/tuple.rbs
ADDED
@@ -0,0 +1,150 @@
|
|
1
|
+
# <-- liberally borrowed from
|
2
|
+
# https://github.com/ruby/rbs/blob/master/core/array.rbs, which
|
3
|
+
# was generated from
|
4
|
+
# https://github.com/ruby/ruby/blob/master/array.c
|
5
|
+
# -->
|
6
|
+
module Solargraph
|
7
|
+
module Fills
|
8
|
+
class Tuple[unchecked out A,
|
9
|
+
unchecked out B = A,
|
10
|
+
unchecked out C = A | B,
|
11
|
+
unchecked out D = A | B | C,
|
12
|
+
unchecked out E = A | B | C | D,
|
13
|
+
unchecked out F = A | B | C | D | E,
|
14
|
+
unchecked out G = A | B | C | D | E | F,
|
15
|
+
unchecked out H = A | B | C | D | E | F | G,
|
16
|
+
unchecked out I = A | B | C | D | E | F | G | H,
|
17
|
+
unchecked out J = A | B | C | D | E | F | G | H | I] < Array[A | B | C | D | E | F | G | H | I | J]
|
18
|
+
# <!--
|
19
|
+
# rdoc-file=array.c
|
20
|
+
# - self[index] -> object or nil
|
21
|
+
# -->
|
22
|
+
# Returns elements from `self`; does not modify `self`.
|
23
|
+
#
|
24
|
+
# In brief:
|
25
|
+
#
|
26
|
+
# a = [:foo, 'bar', 2]
|
27
|
+
#
|
28
|
+
# # Single argument index: returns one element.
|
29
|
+
# a[0] # => :foo # Zero-based index.
|
30
|
+
#
|
31
|
+
# When a single integer argument `index` is given, returns the element at offset
|
32
|
+
# `index`:
|
33
|
+
#
|
34
|
+
# a = [:foo, 'bar', 2]
|
35
|
+
# a[0] # => :foo
|
36
|
+
# a[2] # => 2
|
37
|
+
# a # => [:foo, "bar", 2]
|
38
|
+
def []: (0 index) -> A
|
39
|
+
| (1 index) -> B
|
40
|
+
| (2 index) -> C
|
41
|
+
| (3 index) -> D
|
42
|
+
| (4 index) -> E
|
43
|
+
| (5 index) -> F
|
44
|
+
| (6 index) -> G
|
45
|
+
| (7 index) -> H
|
46
|
+
| (8 index) -> I
|
47
|
+
| (9 index) -> J
|
48
|
+
| (0 index) -> K
|
49
|
+
| (int index) -> nil
|
50
|
+
|
51
|
+
# <!--
|
52
|
+
# rdoc-file=array.c
|
53
|
+
# - at(index) -> object or nil
|
54
|
+
# -->
|
55
|
+
# Returns the element of `self` specified by the given `index` or `nil` if there
|
56
|
+
# is no such element; `index` must be an [integer-convertible
|
57
|
+
# object](rdoc-ref:implicit_conversion.rdoc@Integer-Convertible+Objects).
|
58
|
+
#
|
59
|
+
# For non-negative `index`, returns the element of `self` at offset `index`:
|
60
|
+
#
|
61
|
+
# a = [:foo, 'bar', 2]
|
62
|
+
# a.at(0) # => :foo
|
63
|
+
# a.at(2) # => 2
|
64
|
+
# a.at(2.0) # => 2
|
65
|
+
#
|
66
|
+
# Related: Array#[]; see also [Methods for
|
67
|
+
# Fetching](rdoc-ref:Array@Methods+for+Fetching).
|
68
|
+
#
|
69
|
+
def at: (0 index) -> A
|
70
|
+
| (1 index) -> B
|
71
|
+
| (2 index) -> C
|
72
|
+
| (3 index) -> D
|
73
|
+
| (4 index) -> E
|
74
|
+
| (5 index) -> F
|
75
|
+
| (6 index) -> G
|
76
|
+
| (7 index) -> H
|
77
|
+
| (8 index) -> I
|
78
|
+
| (9 index) -> J
|
79
|
+
| (int index) -> nil
|
80
|
+
|
81
|
+
# <!--
|
82
|
+
# rdoc-file=array.c
|
83
|
+
# - fetch(index) -> element
|
84
|
+
# - fetch(index, default_value) -> element or default_value
|
85
|
+
# - fetch(index) {|index| ... } -> element or block_return_value
|
86
|
+
# -->
|
87
|
+
# Returns the element of `self` at offset `index` if `index` is in range;
|
88
|
+
# `index` must be an [integer-convertible
|
89
|
+
# object](rdoc-ref:implicit_conversion.rdoc@Integer-Convertible+Objects).
|
90
|
+
#
|
91
|
+
# With the single argument `index` and no block, returns the element at offset
|
92
|
+
# `index`:
|
93
|
+
#
|
94
|
+
# a = [:foo, 'bar', 2]
|
95
|
+
# a.fetch(1) # => "bar"
|
96
|
+
# a.fetch(1.1) # => "bar"
|
97
|
+
#
|
98
|
+
# With arguments `index` and `default_value` (which may be any object) and no
|
99
|
+
# block, returns `default_value` if `index` is out-of-range:
|
100
|
+
#
|
101
|
+
# a = [:foo, 'bar', 2]
|
102
|
+
# a.fetch(1, nil) # => "bar"
|
103
|
+
# a.fetch(3, :foo) # => :foo
|
104
|
+
#
|
105
|
+
# With argument `index` and a block, returns the element at offset `index` if
|
106
|
+
# index is in range (and the block is not called); otherwise calls the block
|
107
|
+
# with index and returns its return value:
|
108
|
+
#
|
109
|
+
# a = [:foo, 'bar', 2]
|
110
|
+
# a.fetch(1) {|index| raise 'Cannot happen' } # => "bar"
|
111
|
+
# a.fetch(50) {|index| "Value for #{index}" } # => "Value for 50"
|
112
|
+
#
|
113
|
+
# Related: see [Methods for Fetching](rdoc-ref:Array@Methods+for+Fetching).
|
114
|
+
#
|
115
|
+
def fetch: (0 index) -> A
|
116
|
+
| (1 index) -> B
|
117
|
+
| (2 index) -> C
|
118
|
+
| (3 index) -> D
|
119
|
+
| (4 index) -> E
|
120
|
+
| (5 index) -> F
|
121
|
+
| (6 index) -> G
|
122
|
+
| (7 index) -> H
|
123
|
+
| (8 index) -> I
|
124
|
+
| (9 index) -> J
|
125
|
+
| (int index) -> void
|
126
|
+
| [T] (0 index, T default) -> (A | T)
|
127
|
+
| [T] (1 index, T default) -> (B | T)
|
128
|
+
| [T] (2 index, T default) -> (C | T)
|
129
|
+
| [T] (3 index, T default) -> (D | T)
|
130
|
+
| [T] (4 index, T default) -> (E | T)
|
131
|
+
| [T] (5 index, T default) -> (F | T)
|
132
|
+
| [T] (6 index, T default) -> (G | T)
|
133
|
+
| [T] (7 index, T default) -> (H | T)
|
134
|
+
| [T] (8 index, T default) -> (I | T)
|
135
|
+
| [T] (9 index, T default) -> (J | T)
|
136
|
+
| [T] (int index, T default) -> (A | B | C | D | E | F |G | H | I | J | T)
|
137
|
+
| [T] (0 index) { (int index) -> T } -> (A | T)
|
138
|
+
| [T] (1 index) { (int index) -> T } -> (B | T)
|
139
|
+
| [T] (2 index) { (int index) -> T } -> (C | T)
|
140
|
+
| [T] (3 index) { (int index) -> T } -> (D | T)
|
141
|
+
| [T] (4 index) { (int index) -> T } -> (E | T)
|
142
|
+
| [T] (5 index) { (int index) -> T } -> (F | T)
|
143
|
+
| [T] (6 index) { (int index) -> T } -> (G | T)
|
144
|
+
| [T] (7 index) { (int index) -> T } -> (H | T)
|
145
|
+
| [T] (8 index) { (int index) -> T } -> (I | T)
|
146
|
+
| [T] (9 index) { (int index) -> T } -> (J | T)
|
147
|
+
| [T] (int index) { (int index) -> T } -> (A | B | C | D | E | F |G | H | I | J | T)
|
148
|
+
end
|
149
|
+
end
|
150
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: solargraph
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.55.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Fred Snyder
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2025-
|
11
|
+
date: 2025-06-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: backport
|
@@ -410,6 +410,9 @@ files:
|
|
410
410
|
- lib/solargraph/convention/gemfile.rb
|
411
411
|
- lib/solargraph/convention/gemspec.rb
|
412
412
|
- lib/solargraph/convention/rakefile.rb
|
413
|
+
- lib/solargraph/convention/struct_definition.rb
|
414
|
+
- lib/solargraph/convention/struct_definition/struct_assignment_node.rb
|
415
|
+
- lib/solargraph/convention/struct_definition/struct_definition_node.rb
|
413
416
|
- lib/solargraph/converters/dd.rb
|
414
417
|
- lib/solargraph/converters/dl.rb
|
415
418
|
- lib/solargraph/converters/dt.rb
|
@@ -493,6 +496,7 @@ files:
|
|
493
496
|
- lib/solargraph/page.rb
|
494
497
|
- lib/solargraph/parser.rb
|
495
498
|
- lib/solargraph/parser/comment_ripper.rb
|
499
|
+
- lib/solargraph/parser/flow_sensitive_typing.rb
|
496
500
|
- lib/solargraph/parser/node_methods.rb
|
497
501
|
- lib/solargraph/parser/node_processor.rb
|
498
502
|
- lib/solargraph/parser/node_processor/base.rb
|
@@ -503,6 +507,7 @@ files:
|
|
503
507
|
- lib/solargraph/parser/parser_gem/node_methods.rb
|
504
508
|
- lib/solargraph/parser/parser_gem/node_processors.rb
|
505
509
|
- lib/solargraph/parser/parser_gem/node_processors/alias_node.rb
|
510
|
+
- lib/solargraph/parser/parser_gem/node_processors/and_node.rb
|
506
511
|
- lib/solargraph/parser/parser_gem/node_processors/args_node.rb
|
507
512
|
- lib/solargraph/parser/parser_gem/node_processors/begin_node.rb
|
508
513
|
- lib/solargraph/parser/parser_gem/node_processors/block_node.rb
|
@@ -511,21 +516,26 @@ files:
|
|
511
516
|
- lib/solargraph/parser/parser_gem/node_processors/def_node.rb
|
512
517
|
- lib/solargraph/parser/parser_gem/node_processors/defs_node.rb
|
513
518
|
- lib/solargraph/parser/parser_gem/node_processors/gvasgn_node.rb
|
519
|
+
- lib/solargraph/parser/parser_gem/node_processors/if_node.rb
|
514
520
|
- lib/solargraph/parser/parser_gem/node_processors/ivasgn_node.rb
|
515
521
|
- lib/solargraph/parser/parser_gem/node_processors/lvasgn_node.rb
|
516
522
|
- lib/solargraph/parser/parser_gem/node_processors/masgn_node.rb
|
517
523
|
- lib/solargraph/parser/parser_gem/node_processors/namespace_node.rb
|
524
|
+
- lib/solargraph/parser/parser_gem/node_processors/opasgn_node.rb
|
518
525
|
- lib/solargraph/parser/parser_gem/node_processors/orasgn_node.rb
|
519
526
|
- lib/solargraph/parser/parser_gem/node_processors/resbody_node.rb
|
520
527
|
- lib/solargraph/parser/parser_gem/node_processors/sclass_node.rb
|
521
528
|
- lib/solargraph/parser/parser_gem/node_processors/send_node.rb
|
522
529
|
- lib/solargraph/parser/parser_gem/node_processors/sym_node.rb
|
530
|
+
- lib/solargraph/parser/parser_gem/node_processors/until_node.rb
|
531
|
+
- lib/solargraph/parser/parser_gem/node_processors/while_node.rb
|
523
532
|
- lib/solargraph/parser/region.rb
|
524
533
|
- lib/solargraph/parser/snippet.rb
|
525
534
|
- lib/solargraph/pin.rb
|
526
535
|
- lib/solargraph/pin/base.rb
|
527
536
|
- lib/solargraph/pin/base_variable.rb
|
528
537
|
- lib/solargraph/pin/block.rb
|
538
|
+
- lib/solargraph/pin/breakable.rb
|
529
539
|
- lib/solargraph/pin/callable.rb
|
530
540
|
- lib/solargraph/pin/class_variable.rb
|
531
541
|
- lib/solargraph/pin/closure.rb
|
@@ -556,6 +566,8 @@ files:
|
|
556
566
|
- lib/solargraph/pin/signature.rb
|
557
567
|
- lib/solargraph/pin/singleton.rb
|
558
568
|
- lib/solargraph/pin/symbol.rb
|
569
|
+
- lib/solargraph/pin/until.rb
|
570
|
+
- lib/solargraph/pin/while.rb
|
559
571
|
- lib/solargraph/position.rb
|
560
572
|
- lib/solargraph/range.rb
|
561
573
|
- lib/solargraph/rbs_map.rb
|
@@ -619,6 +631,7 @@ files:
|
|
619
631
|
- lib/solargraph/yard_map/to_method.rb
|
620
632
|
- lib/solargraph/yard_tags.rb
|
621
633
|
- lib/solargraph/yardoc.rb
|
634
|
+
- rbs/fills/tuple.rbs
|
622
635
|
- solargraph.gemspec
|
623
636
|
homepage: https://solargraph.org
|
624
637
|
licenses:
|