Method: Dhall::TypeChecker.for

Defined in:
lib/dhall/typecheck.rb

.for(expr) ⇒ Object

Raises:

  • (TypeError)


29
30
31
32
33
34
35
36
37
38
# File 'lib/dhall/typecheck.rb', line 29

def self.for(expr)
  @typecheckers.each do |node_matcher, (typechecker, extras)|
    if node_matcher === expr
      msg = [:call, :for, :new].find { |m| typechecker.respond_to?(m) }
      return typechecker.public_send(msg, expr, *extras)
    end
  end

  raise TypeError, "Unknown expression: #{expr.inspect}"
end