require("import")
import("template_inherit")
ti=template_inherit
local env = _ENV
if not env then env = getfenv () end
setmetatable(env, {__index=function (t,i) error("undefined global variable `"..i.."'",2) end})
fi = ti.FooInt()
assert(fi:blah() == "Foo")
assert(fi:foomethod() == "foomethod")
bi = ti.BarInt()
assert(bi:blah() == "Bar")
assert(bi:foomethod() == "foomethod")
assert(ti.invoke_blah_int(fi) == "Foo")
assert(ti.invoke_blah_int(bi) == "Bar")
bd = ti.BarDouble()
success = pcall(ti.invoke_blah_int, bd)
assert(not success)