Overloaded functions bug
umby24 opened this issue · comments
In C#, I have an overloaded function, GetBlock(int) and GetBlock(string), which I am providing to Lua to be used.
If I run GetBlock(int) multiple times from lua, it is fine. However, once I have used the string overload, I can no longer use the int overload. It will default to the string overload every time.
Example code:
local newblock = G_Blocks:GetBlock(1)
local newblock2 = G_Blocks:GetBlock("Stone")
local newblock3 = G_Blocks:GetBlock(1)
newblock and newblock2 will function properly, but newblock3 will be attempting to run the string overload rather than the int.
I'm seeing similar behavior with overloads involving params object[] values
, e.g.:
Bar Foo(IEnumerable enumerable)
{
...
}
Bar Foo(NLua.LuaTable luaTable)
{
...
}
Bar Foo(params object[] values)
{
...
}
As soon as that third overload is selected, that's all the lua environment will ever use. Up until that point, the appropriate overloads are selected, contextually.