require("import")
import("overload_template")
for k,v in pairs(overload_template) do _G[k]=v end
f = foo()
a = maximum(3,4)
assert(mix1("hi") == 101)
assert(mix1(1.0, 1.0) == 102)
assert(mix1(1.0) == 103)
assert(mix2("hi") == 101)
assert(mix2(1.0, 1.0) == 102)
assert(mix2(1.0) == 103)
assert(mix3("hi") == 101)
assert(mix3(1.0, 1.0) == 102)
assert(mix3(1.0) == 103)
assert(overtparams1(100) == 10)
assert(overtparams1(100.0, 100) == 20)
assert(overtparams2(100.0, 100) == 40)
assert(overloaded() == 60)
assert(overloaded(100.0, 100) == 70)
assert(overloadedagain("hello") == 80)
assert(overloadedagain() == 90)
assert(specialization(10) == 202 or specialization(10.0) == 203)
assert(specialization(10, 10) == 204 or specialization(10.0, 10.0) == 205)
assert(specialization("hi", "hi") == 201)
xyz()
xyz_int()
xyz_double()
assert(overload("hi") == 0)
assert(overload(1) == 10)
assert(overload(1, 1) == 20)
assert(overload(1, "hello") == 30)
k = Klass()
assert(overload(k) == 10)
assert(overload(k, k) == 20)
assert(overload(k, "hello") == 30)
assert(overload() == 50)
assert(nsoverload("hi") == 1000,"nsoverload()")
assert(nsoverload(1) == 1010,"nsoverload(int t)")
assert(nsoverload(1, 1) == 1020,"nsoverload(int t, const int &)")
assert(nsoverload(1, "hello") == 1030,"nsoverload(int t, const char *)")
assert(nsoverload(k) == 1010,"nsoverload(Klass t)")
assert(nsoverload(k, k) == 1020,"nsoverload(Klass t, const Klass &)")
assert(nsoverload(k, "hello") == 1030,"nsoverload(Klass t, const char *)")
assert(nsoverload() == 1050,"nsoverload(const char *)")
A_foo(1)
b = B()
b:foo(1)