Sha256: 217a5f24b82600bc8472131dca9f8861c00c82b9f3040fbef4b28accb0d0ff91

Contents?: true

Size: 784 Bytes

Versions: 2

Compression:

Stored size: 784 Bytes

Contents

require 'yoda/typing/tree/method_inferable'

module Yoda
  module Typing
    module Tree
      class MethodDef < Base
        include MethodInferable

        # @!method node
        #   @return [AST::DefNode]

        # @return [Types::Base]
        def infer_type
          infer_method_type(receiver_type: self_type)
        end

        # @return [Symbol]
        def node_name
          node.name
        end

        # @return [AST::ParametersNode]
        def parameters_node
          node.parameters
        end

        # @return [Types::Type]
        def body_node
          node.body
        end

        # @return [Types::Type]
        def self_type
          @self_type ||= begin
            context.method_receiver
          end
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
yoda-language-server-0.10.1 lib/yoda/typing/tree/method_def.rb
yoda-language-server-0.10.0 lib/yoda/typing/tree/method_def.rb