class Dhallish::Ast::UnionType
Attributes
map[RW]
map: maps labels to ast-nodes that should be types
Public Class Methods
new(map)
click to toggle source
# File lib/ast.rb, line 713 def initialize(map) @map = map end
Public Instance Methods
compute_type(ctx)
click to toggle source
# File lib/ast.rb, line 717 def compute_type(ctx) types_map = {} @map.each { |key, type| assert ("Duplicate labels in Union Types are not allowed") { !types_map.include? key } type_type = type.compute_type ctx assert ("annotated type in union type not a type") { type_type.is_a? Types::Type } types_map[key] = type_type.metadata } Types::Type.new(Types::Union.new types_map) end
evaluate(ctx)
click to toggle source
# File lib/ast.rb, line 728 def evaluate(ctx) res = {} @map.each { |key, node| res[key] = node.evaluate ctx } Types::Union.new(res) end