Sha256: f77d0bca59a9907b000c610960f471df8a079b51fa4eb697841fdc047c385df1

Contents?: true

Size: 817 Bytes

Versions: 2

Compression:

Stored size: 817 Bytes

Contents

require 'yoda/typing/tree/method_inferable'

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

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

        # @return [Types::Base]
        def infer_type
          infer_method_type(receiver_type: receiver_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 receiver_type
          @receiver_type ||= begin
            infer_child(node.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/singleton_method_def.rb
yoda-language-server-0.10.0 lib/yoda/typing/tree/singleton_method_def.rb