solargraph 0.38.5 → 0.38.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +1 -2
- data/lib/solargraph/api_map.rb +17 -10
- data/lib/solargraph/documentor.rb +3 -2
- data/lib/solargraph/source/chain.rb +6 -7
- data/lib/solargraph/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 061561cbbc7728685d8db8a482d16004254b6abcefde23ad1c8666f1dc8d37fb
|
4
|
+
data.tar.gz: 5c2a8991b9b2a7264a63337fb2d427b0c62c96843c6014202b2247d6c727558b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fc5d80cf77ad1c3b505ea3ecfbaaf514d2c49c7b93654b1e1fbd3b692266e045f4578e7bb15f5594842f677709f0a91b568379950648141012c694597b969686
|
7
|
+
data.tar.gz: '09e24fd600309f0b4f76391d33ba929bc6d153224acef25c384639f1072b5f9cd999102bdcd63b46e4238ee4089423068ff25d5b93af57c64d40d425cf884008'
|
data/.travis.yml
CHANGED
@@ -19,9 +19,8 @@ matrix:
|
|
19
19
|
allow_failures:
|
20
20
|
- rvm: 2.7
|
21
21
|
os: osx
|
22
|
+
- rvm: jruby-head
|
22
23
|
|
23
|
-
# Update RubyGems and Bundler due to error with Bundler 1.16.1 and RubyGems 2.7.3
|
24
|
-
# See https://github.com/travis-ci/travis-ci/issues/8978
|
25
24
|
before_install:
|
26
25
|
- ruby ./travis-bundler.rb
|
27
26
|
- bundle install
|
data/lib/solargraph/api_map.rb
CHANGED
@@ -513,7 +513,7 @@ module Solargraph
|
|
513
513
|
cls = qualify(sub)
|
514
514
|
until fqsup.nil? || cls.nil?
|
515
515
|
return true if cls == fqsup
|
516
|
-
cls =
|
516
|
+
cls = qualify_superclass(cls)
|
517
517
|
end
|
518
518
|
false
|
519
519
|
end
|
@@ -567,9 +567,8 @@ module Solargraph
|
|
567
567
|
fqim = qualify(im, fqns)
|
568
568
|
result.concat inner_get_methods(fqim, scope, visibility, deep, skip, true) unless fqim.nil?
|
569
569
|
end
|
570
|
-
|
571
|
-
unless
|
572
|
-
fqsc = qualify(sc, fqns.split('::')[0..-2].join('::'))
|
570
|
+
fqsc = qualify_superclass(fqns)
|
571
|
+
unless fqsc.nil?
|
573
572
|
result.concat inner_get_methods(fqsc, scope, visibility, true, skip, no_core) unless fqsc.nil?
|
574
573
|
end
|
575
574
|
else
|
@@ -577,9 +576,8 @@ module Solargraph
|
|
577
576
|
fqem = qualify(em, fqns)
|
578
577
|
result.concat inner_get_methods(fqem, :instance, visibility, deep, skip, true) unless fqem.nil?
|
579
578
|
end
|
580
|
-
|
581
|
-
unless
|
582
|
-
fqsc = qualify(sc, fqns.split('::')[0..-2].join('::'))
|
579
|
+
fqsc = qualify_superclass(fqns)
|
580
|
+
unless fqsc.nil?
|
583
581
|
result.concat inner_get_methods(fqsc, scope, visibility, true, skip, true) unless fqsc.nil?
|
584
582
|
end
|
585
583
|
unless no_core || fqns.empty?
|
@@ -608,9 +606,9 @@ module Solargraph
|
|
608
606
|
store.get_includes(fqns).each do |is|
|
609
607
|
result.concat inner_get_constants(qualify(is, fqns), [:public], skip)
|
610
608
|
end
|
611
|
-
|
612
|
-
unless %w[Object BasicObject].include?(
|
613
|
-
result.concat inner_get_constants(
|
609
|
+
fqsc = qualify_superclass(fqns)
|
610
|
+
unless %w[Object BasicObject].include?(fqsc)
|
611
|
+
result.concat inner_get_constants(fqsc, [:public], skip)
|
614
612
|
end
|
615
613
|
result
|
616
614
|
end
|
@@ -627,6 +625,15 @@ module Solargraph
|
|
627
625
|
qualify namespace, context.split('::')[0..-2].join('::')
|
628
626
|
end
|
629
627
|
|
628
|
+
def qualify_superclass fqsub
|
629
|
+
sup = store.get_superclass(fqsub)
|
630
|
+
return nil if sup.nil?
|
631
|
+
parts = fqsub.split('::')
|
632
|
+
last = parts.pop
|
633
|
+
parts.pop if last == sup
|
634
|
+
qualify(sup, parts.join('::'))
|
635
|
+
end
|
636
|
+
|
630
637
|
# @param name [String]
|
631
638
|
# @param root [String]
|
632
639
|
# @param skip [Array<String>]
|
@@ -28,7 +28,8 @@ module Solargraph
|
|
28
28
|
@out.puts "Documenting #{name} #{version}"
|
29
29
|
`yard gems #{name} #{version} #{@rebuild ? '--rebuild' : ''}`
|
30
30
|
yd = YARD::Registry.yardoc_file_for_gem(name, "= #{version}")
|
31
|
-
|
31
|
+
# HACK: Ignore errors documenting bundler
|
32
|
+
if !yd && name != 'bundler'
|
32
33
|
@out.puts "#{name} #{version} YARD documentation failed"
|
33
34
|
failures += 1
|
34
35
|
end
|
@@ -61,7 +62,7 @@ module Solargraph
|
|
61
62
|
]
|
62
63
|
o, e, s = Open3.capture3(*cmd)
|
63
64
|
if s.success?
|
64
|
-
o && !o.empty? ? JSON.parse(o) : {}
|
65
|
+
o && !o.empty? ? JSON.parse(o.split("\n").last) : {}
|
65
66
|
else
|
66
67
|
Solargraph.logger.warn e
|
67
68
|
raise BundleNotFoundError, "Failed to load gems from bundle at #{directory}"
|
@@ -105,22 +105,21 @@ module Solargraph
|
|
105
105
|
def infer_first_defined pins, context, api_map
|
106
106
|
type = ComplexType::UNDEFINED
|
107
107
|
pins.each do |pin|
|
108
|
+
# Avoid infinite recursion
|
109
|
+
next if @@inference_stack.include?(pin.identity)
|
110
|
+
@@inference_stack.push pin.identity
|
108
111
|
type = pin.typify(api_map)
|
112
|
+
@@inference_stack.pop
|
109
113
|
break if type.defined?
|
110
114
|
end
|
111
115
|
if type.undefined?
|
112
116
|
# Limit method inference recursion
|
113
117
|
return type if @@inference_depth >= 2 && pins.first.is_a?(Pin::BaseMethod)
|
114
118
|
@@inference_depth += 1
|
115
|
-
name_count = {}
|
116
119
|
pins.each do |pin|
|
117
|
-
# Limit pin name hits for, e.g., variables with insane amounts of definitions
|
118
|
-
name_count[pin.identity] ||= 0
|
119
|
-
name_count[pin.identity] += 1
|
120
|
-
next if name_count[pin.identity] >= 10
|
121
120
|
# Avoid infinite recursion
|
122
|
-
next if @@inference_stack.include?(pin)
|
123
|
-
@@inference_stack.push pin
|
121
|
+
next if @@inference_stack.include?(pin.identity)
|
122
|
+
@@inference_stack.push pin.identity
|
124
123
|
type = pin.probe(api_map)
|
125
124
|
@@inference_stack.pop
|
126
125
|
break if type.defined?
|
data/lib/solargraph/version.rb
CHANGED
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.38.
|
4
|
+
version: 0.38.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Fred Snyder
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-03-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: backport
|