solargraph 0.38.5 → 0.38.6
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/.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
         
     |