eca22edda3
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
25 lines
833 B
Lua
25 lines
833 B
Lua
local env = environment()
|
|
local m = mk_metavar("m", mk_arrow(Bool, Bool))
|
|
local a = Local("a", Bool)
|
|
print(env:normalize(Fun(a, m)))
|
|
print(env:normalize(Fun(a, m(a))))
|
|
local m2 = mk_metavar("m2", mk_arrow(Bool, Bool, Bool))
|
|
print(env:normalize(Fun(a, (m2(a))(a))))
|
|
print("step1")
|
|
env:type_check(m)
|
|
print("step2")
|
|
env:type_check(Fun(a, m(a)))
|
|
print("step3")
|
|
env:type_check(Fun(a, (m2(a))(a)))
|
|
local m3 = mk_metavar("m3", mk_metavar("m4", mk_sort(mk_meta_univ("l"))))
|
|
print("step4")
|
|
env:type_check(m3)
|
|
print("step5")
|
|
-- The following call fails, because the type checker will try to
|
|
-- create a constraint, but constraint generation is not supported by
|
|
-- the type checker used to implement the method type_check
|
|
assert(not pcall(function()
|
|
env:type_check(m3(a))
|
|
end
|
|
))
|
|
print("before end")
|