Sha256: f1489aca3825174a7ad678927cac2d408cb840150eb042fa7bd4244ed854f290
Contents?: true
Size: 829 Bytes
Versions: 2
Compression:
Stored size: 829 Bytes
Contents
module Yoda module Typing module Tree class HashTree < Base # @!method node # @return [AST::HashNode] # @return [Types::Type] def infer_type hash = node.contents.each_with_object({}) do |node, memo| case node.type when :pair case node.key.type when :sym memo[node.key.value.to_sym] = infer_child(node.value) when :str memo[node.key.value.to_s] = infer_child(node.value) else # TODO: Support other key types. end when :kwsplat infer_child(node.content) # TODO: merge infered result end end generator.record_type(hash) 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/hash_tree.rb |
yoda-language-server-0.10.0 | lib/yoda/typing/tree/hash_tree.rb |