Merge branch 'alexwarg-fix-lua-getitem'

* alexwarg-fix-lua-getitem:
  Add test case for Lua __getitem + inheritance
  Fix lua base class methods with __getitem
This commit is contained in:
William S Fulton 2016-03-22 20:44:12 +00:00
commit d98f7050a0
4 changed files with 74 additions and 13 deletions

View file

@ -14,6 +14,7 @@ top_builddir = @top_builddir@
CPP_TEST_CASES += \
lua_no_module_global \
lua_inherit_getitem \
C_TEST_CASES += \

View file

@ -0,0 +1,12 @@
require("import") -- the import fn
import("lua_inherit_getitem") -- import lib
local t = lua_inherit_getitem;
local base = t.CBase()
local derived = t.CDerived()
assert(base.Foo ~= nil)
assert(base:Foo() == "CBase::Foo")
assert(derived.Foo == base.Foo)
assert(derived:Foo() == "CBase::Foo")

View file

@ -0,0 +1,19 @@
%module lua_inherit_getitem
%inline %{
class CBase {
public:
const char* Foo(void) {
return "CBase::Foo";
}
};
class CDerived : public CBase {
public:
void *__getitem(const char *name) const {
return NULL;
}
};
%}