solargraph 0.39.15 → 0.39.16
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/Rakefile +12 -1
- data/lib/solargraph/api_map.rb +18 -15
- data/lib/solargraph/api_map/store.rb +1 -1
- data/lib/solargraph/complex_type.rb +2 -2
- data/lib/solargraph/core_fills.rb +8 -4
- data/lib/solargraph/parser/legacy/node_processors/send_node.rb +2 -1
- data/lib/solargraph/parser/rubyvm/node_processors/send_node.rb +2 -1
- data/lib/solargraph/pin/base_method.rb +8 -0
- data/lib/solargraph/pin/conversions.rb +2 -3
- data/lib/solargraph/pin/yard_pin/method.rb +4 -4
- data/lib/solargraph/source/chain.rb +18 -5
- data/lib/solargraph/version.rb +1 -1
- data/lib/solargraph/yard_map.rb +2 -0
- data/lib/solargraph/yard_map/mapper.rb +3 -3
- 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: 949ea02c957254c5fd37a427a4eacbdc55b185c14e2372b659eb0ec4ca3fd254
         | 
| 4 | 
            +
              data.tar.gz: cdd35fd88fc71ed5421d1a4cbd6033791e44a00bc6bd695ea57055004ea09c94
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 4db457d03f5464a15fedd4b6cd6dc60b591a7574013ef5babb246d33e6469078134511a77f80455dc52e47ac1d8d428b78e02c3bc818fe58b665e32f45331a7c
         | 
| 7 | 
            +
              data.tar.gz: 17b166d81771a0a508e954c7c83ce9ceed0830a0d7c4f4d568a57cac1eb8b23524be0a23f4eaa049fd99b90415faea7be664c02b939e5103795cabc15a4a3ca4
         | 
    
        data/Rakefile
    CHANGED
    
    | @@ -11,4 +11,15 @@ end | |
| 11 11 | 
             
            desc "Open a Pry session preloaded with this library"
         | 
| 12 12 | 
             
            task :console do
         | 
| 13 13 | 
             
              sh "pry -I lib -r solargraph.rb"
         | 
| 14 | 
            -
            end
         | 
| 14 | 
            +
            end
         | 
| 15 | 
            +
             | 
| 16 | 
            +
            desc "Run the type checker"
         | 
| 17 | 
            +
            task :typecheck do
         | 
| 18 | 
            +
              sh "bundle exec solargraph typecheck --level typed"
         | 
| 19 | 
            +
            end
         | 
| 20 | 
            +
             | 
| 21 | 
            +
            desc "Run all tests"
         | 
| 22 | 
            +
            task :test do
         | 
| 23 | 
            +
              Rake::Task["typecheck"].invoke
         | 
| 24 | 
            +
              Rake::Task["spec"].invoke
         | 
| 25 | 
            +
            end
         | 
    
        data/lib/solargraph/api_map.rb
    CHANGED
    
    | @@ -386,9 +386,7 @@ module Solargraph | |
| 386 386 | 
             
                # @return [Array<Solargraph::Pin::Base>]
         | 
| 387 387 | 
             
                def get_path_suggestions path
         | 
| 388 388 | 
             
                  return [] if path.nil?
         | 
| 389 | 
            -
                   | 
| 390 | 
            -
                  result.concat store.get_path_pins(path)
         | 
| 391 | 
            -
                  resolve_method_aliases(result)
         | 
| 389 | 
            +
                  resolve_method_aliases store.get_path_pins(path)
         | 
| 392 390 | 
             
                end
         | 
| 393 391 |  | 
| 394 392 | 
             
                # Get an array of pins that match the specified path.
         | 
| @@ -447,7 +445,7 @@ module Solargraph | |
| 447 445 | 
             
                # @return [Array<Solargraph::Pin::Base>]
         | 
| 448 446 | 
             
                def locate_pins location
         | 
| 449 447 | 
             
                  return [] if location.nil? || !source_map_hash.has_key?(location.filename)
         | 
| 450 | 
            -
                  source_map_hash[location.filename].locate_pins(location)
         | 
| 448 | 
            +
                  resolve_method_aliases source_map_hash[location.filename].locate_pins(location)
         | 
| 451 449 | 
             
                end
         | 
| 452 450 |  | 
| 453 451 | 
             
                # @raise [FileNotFoundError] if the cursor's file is not in the ApiMap
         | 
| @@ -464,7 +462,7 @@ module Solargraph | |
| 464 462 | 
             
                # @return [Array<Pin::Symbol>]
         | 
| 465 463 | 
             
                def document_symbols filename
         | 
| 466 464 | 
             
                  return [] unless source_map_hash.has_key?(filename) # @todo Raise error?
         | 
| 467 | 
            -
                  source_map_hash[filename].document_symbols
         | 
| 465 | 
            +
                  resolve_method_aliases source_map_hash[filename].document_symbols
         | 
| 468 466 | 
             
                end
         | 
| 469 467 |  | 
| 470 468 | 
             
                # @return [Array<SourceMap>]
         | 
| @@ -659,6 +657,7 @@ module Solargraph | |
| 659 657 | 
             
                  return nil if name.nil?
         | 
| 660 658 | 
             
                  return nil if skip.include?(root)
         | 
| 661 659 | 
             
                  skip.add root
         | 
| 660 | 
            +
                  possibles = []
         | 
| 662 661 | 
             
                  if name == ''
         | 
| 663 662 | 
             
                    if root == ''
         | 
| 664 663 | 
             
                      return ''
         | 
| @@ -674,16 +673,19 @@ module Solargraph | |
| 674 673 | 
             
                      incs = store.get_includes(roots.join('::'))
         | 
| 675 674 | 
             
                      incs.each do |inc|
         | 
| 676 675 | 
             
                        foundinc = inner_qualify(name, inc, skip)
         | 
| 677 | 
            -
                         | 
| 676 | 
            +
                        possibles.push foundinc unless foundinc.nil?
         | 
| 678 677 | 
             
                      end
         | 
| 679 678 | 
             
                      roots.pop
         | 
| 680 679 | 
             
                    end
         | 
| 681 | 
            -
                     | 
| 682 | 
            -
             | 
| 683 | 
            -
                       | 
| 684 | 
            -
             | 
| 680 | 
            +
                    if possibles.empty?
         | 
| 681 | 
            +
                      incs = store.get_includes('')
         | 
| 682 | 
            +
                      incs.each do |inc|
         | 
| 683 | 
            +
                        foundinc = inner_qualify(name, inc, skip)
         | 
| 684 | 
            +
                        possibles.push foundinc unless foundinc.nil?
         | 
| 685 | 
            +
                      end
         | 
| 685 686 | 
             
                    end
         | 
| 686 687 | 
             
                    return name if store.namespace_exists?(name)
         | 
| 688 | 
            +
                    return possibles.last
         | 
| 687 689 | 
             
                  end
         | 
| 688 690 | 
             
                end
         | 
| 689 691 |  | 
| @@ -723,7 +725,7 @@ module Solargraph | |
| 723 725 | 
             
                  result = []
         | 
| 724 726 | 
             
                  pins.each do |pin|
         | 
| 725 727 | 
             
                    resolved = resolve_method_alias(pin)
         | 
| 726 | 
            -
                    next  | 
| 728 | 
            +
                    next if resolved.respond_to?(:visibility) && !visibility.include?(resolved.visibility)
         | 
| 727 729 | 
             
                    result.push resolved
         | 
| 728 730 | 
             
                  end
         | 
| 729 731 | 
             
                  result
         | 
| @@ -737,15 +739,16 @@ module Solargraph | |
| 737 739 | 
             
                  origin = get_method_stack(pin.full_context.namespace, pin.original, scope: pin.scope).first
         | 
| 738 740 | 
             
                  @method_alias_stack.pop
         | 
| 739 741 | 
             
                  return pin if origin.nil?
         | 
| 740 | 
            -
                   | 
| 742 | 
            +
                  args = {
         | 
| 741 743 | 
             
                    location: pin.location,
         | 
| 742 744 | 
             
                    closure: pin.closure,
         | 
| 743 745 | 
             
                    name: pin.name,
         | 
| 744 746 | 
             
                    comments: origin.comments,
         | 
| 745 747 | 
             
                    scope: origin.scope,
         | 
| 746 | 
            -
                    visibility: origin.visibility | 
| 747 | 
            -
             | 
| 748 | 
            -
                  )
         | 
| 748 | 
            +
                    visibility: origin.visibility
         | 
| 749 | 
            +
                  }
         | 
| 750 | 
            +
                  args[:parameters] = origin.parameters if origin.is_a?(Pin::Method)
         | 
| 751 | 
            +
                  origin.class.new **args
         | 
| 749 752 | 
             
                end
         | 
| 750 753 | 
             
              end
         | 
| 751 754 | 
             
            end
         | 
| @@ -218,7 +218,7 @@ module Solargraph | |
| 218 218 | 
             
                    @pin_select_cache = {}
         | 
| 219 219 | 
             
                    @namespace_map = set.classify(&:namespace).transform_values(&:to_a)
         | 
| 220 220 | 
             
                    @path_pin_hash = set.classify(&:path).transform_values(&:to_a)
         | 
| 221 | 
            -
                    @namespaces = @path_pin_hash.keys.compact
         | 
| 221 | 
            +
                    @namespaces = @path_pin_hash.keys.compact.to_set
         | 
| 222 222 | 
             
                    pins_by_class(Pin::Reference::Include).each do |pin|
         | 
| 223 223 | 
             
                      include_references[pin.namespace] ||= []
         | 
| 224 224 | 
             
                      include_references[pin.namespace].push pin.name
         | 
| @@ -12,7 +12,7 @@ module Solargraph | |
| 12 12 |  | 
| 13 13 | 
             
                # @param types [Array<UniqueType>]
         | 
| 14 14 | 
             
                def initialize types = [UniqueType::UNDEFINED]
         | 
| 15 | 
            -
                  @items = types
         | 
| 15 | 
            +
                  @items = types.uniq(&:to_s)
         | 
| 16 16 | 
             
                end
         | 
| 17 17 |  | 
| 18 18 | 
             
                # @param api_map [ApiMap]
         | 
| @@ -113,7 +113,7 @@ module Solargraph | |
| 113 113 | 
             
                  #
         | 
| 114 114 | 
             
                  # @param *strings [Array<String>] The type definitions to parse
         | 
| 115 115 | 
             
                  # @param partial [Boolean] True if the string is part of a another type
         | 
| 116 | 
            -
                  # @return [ComplexType]
         | 
| 116 | 
            +
                  # @return [ComplexType, Array, nil]
         | 
| 117 117 | 
             
                  def parse *strings, partial: false
         | 
| 118 118 | 
             
                    @cache ||= {}
         | 
| 119 119 | 
             
                    unless partial
         | 
| @@ -53,6 +53,7 @@ module Solargraph | |
| 53 53 | 
             
              @return_single_parameter
         | 
| 54 54 | 
             
            @return_single_parameter
         | 
| 55 55 | 
             
                  )),
         | 
| 56 | 
            +
                  Override.method_return('Array#concat', 'Array'),
         | 
| 56 57 | 
             
                  Override.from_comment('Array#first', %(
         | 
| 57 58 | 
             
            @overload first(num)
         | 
| 58 59 | 
             
              @param num [Integer]
         | 
| @@ -65,6 +66,7 @@ module Solargraph | |
| 65 66 | 
             
              @return [self]
         | 
| 66 67 | 
             
            @return_single_parameter
         | 
| 67 68 | 
             
                  )),
         | 
| 69 | 
            +
                  Override.method_return('Array#map', 'Array'),
         | 
| 68 70 | 
             
                  Override.method_return('Array#uniq', 'self'),
         | 
| 69 71 | 
             
                  Override.method_return('Array#zip', 'Array, nil'),
         | 
| 70 72 |  | 
| @@ -102,6 +104,8 @@ module Solargraph | |
| 102 104 | 
             
            @param_tuple
         | 
| 103 105 | 
             
                  )),
         | 
| 104 106 |  | 
| 107 | 
            +
                  Override.method_return('Hash#merge', 'Hash'),
         | 
| 108 | 
            +
             | 
| 105 109 | 
             
                  Override.from_comment('Integer#+', %(
         | 
| 106 110 | 
             
            @param y [Numeric]
         | 
| 107 111 | 
             
            @return [Numeric]
         | 
| @@ -109,10 +113,6 @@ module Solargraph | |
| 109 113 |  | 
| 110 114 | 
             
                  Override.method_return('Kernel#puts', 'nil'),
         | 
| 111 115 |  | 
| 112 | 
            -
                  # Override.method_return('Module#attr_reader', 'void'),
         | 
| 113 | 
            -
                  # Override.method_return('Module#attr_writer', 'void'),
         | 
| 114 | 
            -
                  # Override.method_return('Module#attr_accessor', 'void'),
         | 
| 115 | 
            -
             | 
| 116 116 | 
             
                  Override.from_comment('Numeric#+', %(
         | 
| 117 117 | 
             
            @param y [Numeric]
         | 
| 118 118 | 
             
            @return [Numeric]
         | 
| @@ -148,6 +148,10 @@ module Solargraph | |
| 148 148 | 
             
                  Override.method_return('String#lines', 'Array<String>'),
         | 
| 149 149 | 
             
                  Override.from_comment('String#each_line', %(
         | 
| 150 150 | 
             
            @yieldparam [String]
         | 
| 151 | 
            +
                  )),
         | 
| 152 | 
            +
                  Override.from_comment('String.new', %(
         | 
| 153 | 
            +
            @overload new(*)
         | 
| 154 | 
            +
              @return [self]
         | 
| 151 155 | 
             
                  ))
         | 
| 152 156 | 
             
                ].concat(
         | 
| 153 157 | 
             
                  methods_with_yieldparam_subtypes.map do |path|
         | 
| @@ -90,7 +90,8 @@ module Solargraph | |
| 90 90 | 
             
                        if node.children[2].is_a?(AST::Node) && node.children[2].type == :const
         | 
| 91 91 | 
             
                          cp = region.closure
         | 
| 92 92 | 
             
                          node.children[2..-1].each do |i|
         | 
| 93 | 
            -
                             | 
| 93 | 
            +
                            type = region.scope == :class ? Pin::Reference::Extend : Pin::Reference::Include
         | 
| 94 | 
            +
                            pins.push type.new(
         | 
| 94 95 | 
             
                              location: get_node_location(i),
         | 
| 95 96 | 
             
                              closure: cp,
         | 
| 96 97 | 
             
                              name: unpack_name(i)
         | 
| @@ -91,7 +91,8 @@ module Solargraph | |
| 91 91 | 
             
                        return unless Parser.is_ast_node?(node.children.last)
         | 
| 92 92 | 
             
                        node.children.last.children[0..-2].each do |i|
         | 
| 93 93 | 
             
                          next unless [:COLON2, :COLON3, :CONST].include?(i.type)
         | 
| 94 | 
            -
                           | 
| 94 | 
            +
                          type = region.scope == :class ? Pin::Reference::Extend : Pin::Reference::Include
         | 
| 95 | 
            +
                          pins.push type.new(
         | 
| 95 96 | 
             
                            location: get_node_location(i),
         | 
| 96 97 | 
             
                            closure: region.closure,
         | 
| 97 98 | 
             
                            name: unpack_name(i)
         | 
| @@ -84,6 +84,14 @@ module Solargraph | |
| 84 84 | 
             
                    @explicit
         | 
| 85 85 | 
             
                  end
         | 
| 86 86 |  | 
| 87 | 
            +
                  def completion_item_kind
         | 
| 88 | 
            +
                    Solargraph::LanguageServer::CompletionItemKinds::METHOD
         | 
| 89 | 
            +
                  end
         | 
| 90 | 
            +
             | 
| 91 | 
            +
                  def symbol_kind
         | 
| 92 | 
            +
                    Solargraph::LanguageServer::SymbolKinds::METHOD
         | 
| 93 | 
            +
                  end
         | 
| 94 | 
            +
             | 
| 87 95 | 
             
                  private
         | 
| 88 96 |  | 
| 89 97 | 
             
                  # @return [ComplexType]
         | 
| @@ -23,16 +23,15 @@ module Solargraph | |
| 23 23 |  | 
| 24 24 | 
             
                  # @return [Hash]
         | 
| 25 25 | 
             
                  def resolve_completion_item
         | 
| 26 | 
            -
                     | 
| 26 | 
            +
                    @resolve_completion_item ||= begin
         | 
| 27 27 | 
             
                      extra = {}
         | 
| 28 28 | 
             
                      alldoc = ''
         | 
| 29 29 | 
             
                      # alldoc += link_documentation unless link_documentation.nil?
         | 
| 30 30 | 
             
                      # alldoc += "\n\n" unless alldoc.empty?
         | 
| 31 31 | 
             
                      alldoc += documentation unless documentation.nil?
         | 
| 32 32 | 
             
                      extra[:documentation] = alldoc unless alldoc.empty?
         | 
| 33 | 
            -
                       | 
| 33 | 
            +
                      completion_item.merge(extra)
         | 
| 34 34 | 
             
                    end
         | 
| 35 | 
            -
                    @resolve_completion_item
         | 
| 36 35 | 
             
                  end
         | 
| 37 36 |  | 
| 38 37 | 
             
                  # @return [Hash]
         | 
| @@ -54,11 +54,11 @@ module Solargraph | |
| 54 54 | 
             
                    # @param a [Array]
         | 
| 55 55 | 
             
                    # @return [String]
         | 
| 56 56 | 
             
                    def arg_name a
         | 
| 57 | 
            -
                      a[0]. | 
| 57 | 
            +
                      a[0].gsub(/[^a-z0-9_]/i, '')
         | 
| 58 58 | 
             
                    end
         | 
| 59 59 |  | 
| 60 60 | 
             
                    # @param a [Array]
         | 
| 61 | 
            -
                    # @return [Symbol]
         | 
| 61 | 
            +
                    # @return [::Symbol]
         | 
| 62 62 | 
             
                    def arg_type a
         | 
| 63 63 | 
             
                      if a[0].start_with?('**')
         | 
| 64 64 | 
             
                        :kwrestarg
         | 
| @@ -66,10 +66,10 @@ module Solargraph | |
| 66 66 | 
             
                        :restarg
         | 
| 67 67 | 
             
                      elsif a[0].start_with?('&')
         | 
| 68 68 | 
             
                        :blockarg
         | 
| 69 | 
            +
                      elsif a[0].end_with?(':')
         | 
| 70 | 
            +
                        a[1] ? :kwoptarg : :kwarg
         | 
| 69 71 | 
             
                      elsif a[1]
         | 
| 70 72 | 
             
                        :optarg
         | 
| 71 | 
            -
                      elsif a[0].end_with?(':')
         | 
| 72 | 
            -
                        a[1] ? :kwarg : :kwoptarg
         | 
| 73 73 | 
             
                      else
         | 
| 74 74 | 
             
                        :arg
         | 
| 75 75 | 
             
                      end
         | 
| @@ -110,18 +110,21 @@ module Solargraph | |
| 110 110 | 
             
                  # @param api_map [ApiMap]
         | 
| 111 111 | 
             
                  # @return [ComplexType]
         | 
| 112 112 | 
             
                  def infer_first_defined pins, context, api_map
         | 
| 113 | 
            -
                     | 
| 113 | 
            +
                    possibles = []
         | 
| 114 114 | 
             
                    pins.each do |pin|
         | 
| 115 115 | 
             
                      # Avoid infinite recursion
         | 
| 116 116 | 
             
                      next if @@inference_stack.include?(pin.identity)
         | 
| 117 117 | 
             
                      @@inference_stack.push pin.identity
         | 
| 118 118 | 
             
                      type = pin.typify(api_map)
         | 
| 119 119 | 
             
                      @@inference_stack.pop
         | 
| 120 | 
            -
                       | 
| 120 | 
            +
                      if type.defined?
         | 
| 121 | 
            +
                        possibles.push type
         | 
| 122 | 
            +
                        break if pin.is_a?(Pin::BaseMethod)
         | 
| 123 | 
            +
                      end
         | 
| 121 124 | 
             
                    end
         | 
| 122 | 
            -
                    if  | 
| 125 | 
            +
                    if possibles.empty?
         | 
| 123 126 | 
             
                      # Limit method inference recursion
         | 
| 124 | 
            -
                      return  | 
| 127 | 
            +
                      return ComplexType::UNDEFINED if @@inference_depth >= 10 && pins.first.is_a?(Pin::BaseMethod)
         | 
| 125 128 | 
             
                      @@inference_depth += 1
         | 
| 126 129 | 
             
                      pins.each do |pin|
         | 
| 127 130 | 
             
                        # Avoid infinite recursion
         | 
| @@ -129,10 +132,20 @@ module Solargraph | |
| 129 132 | 
             
                        @@inference_stack.push pin.identity
         | 
| 130 133 | 
             
                        type = pin.probe(api_map)
         | 
| 131 134 | 
             
                        @@inference_stack.pop
         | 
| 132 | 
            -
                         | 
| 135 | 
            +
                        if type.defined?
         | 
| 136 | 
            +
                          possibles.push type
         | 
| 137 | 
            +
                          break if pin.is_a?(Pin::BaseMethod)
         | 
| 138 | 
            +
                        end
         | 
| 133 139 | 
             
                      end
         | 
| 134 140 | 
             
                      @@inference_depth -= 1
         | 
| 135 141 | 
             
                    end
         | 
| 142 | 
            +
                    return ComplexType::UNDEFINED if possibles.empty?
         | 
| 143 | 
            +
                    type = if possibles.length > 1
         | 
| 144 | 
            +
                      sorted = possibles.map { |t| t.rooted? ? "::#{t}" : t.to_s }.sort { |a, _| a == 'nil' ? 1 : 0 }
         | 
| 145 | 
            +
                      ComplexType.parse(*sorted)
         | 
| 146 | 
            +
                    else
         | 
| 147 | 
            +
                      possibles.first
         | 
| 148 | 
            +
                    end
         | 
| 136 149 | 
             
                    return type if context.nil? || context.return_type.undefined?
         | 
| 137 150 | 
             
                    type.self_to(context.return_type.namespace)
         | 
| 138 151 | 
             
                  end
         | 
    
        data/lib/solargraph/version.rb
    CHANGED
    
    
    
        data/lib/solargraph/yard_map.rb
    CHANGED
    
    | @@ -158,10 +158,12 @@ module Solargraph | |
| 158 158 | 
             
                  @cache ||= YardMap::Cache.new
         | 
| 159 159 | 
             
                end
         | 
| 160 160 |  | 
| 161 | 
            +
                # @return [Hash]
         | 
| 161 162 | 
             
                def pin_class_hash
         | 
| 162 163 | 
             
                  @pin_class_hash ||= pins.to_set.classify(&:class).transform_values(&:to_a)
         | 
| 163 164 | 
             
                end
         | 
| 164 165 |  | 
| 166 | 
            +
                # @return [Array<Pin::Base>]
         | 
| 165 167 | 
             
                def pins_by_class klass
         | 
| 166 168 | 
             
                  @pin_select_cache[klass] ||= pin_class_hash.select { |key, _| key <= klass }.values.flatten
         | 
| 167 169 | 
             
                end
         | 
| @@ -35,10 +35,10 @@ module Solargraph | |
| 35 35 | 
             
                        # This method of superclass detection is a bit of a hack. If
         | 
| 36 36 | 
             
                        # the superclass is a Proxy, it is assumed to be undefined in its
         | 
| 37 37 | 
             
                        # yardoc and converted to a fully qualified namespace.
         | 
| 38 | 
            -
                        if code_object.superclass.is_a?(YARD::CodeObjects::Proxy)
         | 
| 39 | 
            -
                           | 
| 38 | 
            +
                        superclass = if code_object.superclass.is_a?(YARD::CodeObjects::Proxy)
         | 
| 39 | 
            +
                          "::#{code_object.superclass}"
         | 
| 40 40 | 
             
                        else
         | 
| 41 | 
            -
                           | 
| 41 | 
            +
                          code_object.superclass.to_s
         | 
| 42 42 | 
             
                        end
         | 
| 43 43 | 
             
                        result.push Solargraph::Pin::Reference::Superclass.new(name: superclass, closure: nspin)
         | 
| 44 44 | 
             
                      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.39. | 
| 4 | 
            +
              version: 0.39.16
         | 
| 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-09-27 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: backport
         |