18 lines
603 B
Lua
18 lines
603 B
Lua
|
local env = empty_environment()
|
||
|
env = add_decl(env, mk_var_decl("or", mk_arrow(Bool, Bool, Bool)))
|
||
|
env = add_decl(env, mk_var_decl("A", Bool))
|
||
|
local Or = Const("or")
|
||
|
local A = Const("A")
|
||
|
local B = Const("B")
|
||
|
local tc = type_checker(env)
|
||
|
local F = Or(A, B)
|
||
|
assert(tc:infer(F) == Bool)
|
||
|
assert(not pcall(function()
|
||
|
-- The following test must fail since B is not
|
||
|
-- declared in env.
|
||
|
-- This test make sure that infer and check are
|
||
|
-- not sharing the same cache.
|
||
|
print(tc:check(F))
|
||
|
end
|
||
|
))
|