Sha256: deef3faf1cd8f72fa09313eca96319f761964efddcd045250a33cc88e67960a4

Contents?: true

Size: 499 Bytes

Versions: 2

Compression:

Stored size: 499 Bytes

Contents

module Yoda
  module Typing
    module Tree
      class Case < Base
        # @!method node
        #   @return [AST::CaseNode]

        # @return [Type::Type]
        def infer_type
          subject_node, *when_nodes, else_node = node.children
          infer_child(subject_node)
          when_body_nodes = when_nodes.map { |node| node.children.last }
          generator.union_type(*[*when_body_nodes, else_node].compact.map { |node| infer_child(node) })
        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/case.rb
yoda-language-server-0.10.0 lib/yoda/typing/tree/case.rb