Class: Dhall::TypeChecker::Enum

Inherits:
Object
  • Object
show all
Defined in:
lib/dhall/typecheck.rb

Instance Method Summary collapse

Constructor Details

#initialize(enum) ⇒ Enum

Returns a new instance of Enum.



688
689
690
# File 'lib/dhall/typecheck.rb', line 688

def initialize(enum)
	@enum = enum
end

Instance Method Details

#annotate(context) ⇒ Object



692
693
694
695
696
697
698
699
700
701
# File 'lib/dhall/typecheck.rb', line 692

def annotate(context)
	type = Dhall::UnionType.new(
		alternatives: { @enum.tag => nil }
	).merge(@enum.alternatives)

	# Annotate to sanity check
	TypeChecker.for(type).annotate(context)

	Dhall::TypeAnnotation.new(value: @enum, type: type)
end