"src/vscode:/vscode.git/clone" did not exist on "28284b24bdfb9d02cb8eaf1d216a3fc2cde4e01b"
Commit abdaf4af authored by Vinicius Jarina's avatar Vinicius Jarina
Browse files

Merge pull request #126 from isaacbrodsky/master

Create structs with default parameterless constructor
parents f9c5a807 c6a65b2a
......@@ -1114,6 +1114,14 @@ namespace NLua
}
}
if (klass.UnderlyingSystemType.IsValueType) {
int numLuaParams = LuaLib.LuaGetTop (luaState);
if (numLuaParams == 0) {
translator.Push (luaState, Activator.CreateInstance (klass.UnderlyingSystemType));
return 1;
}
}
string constructorName = (constructors.Length == 0) ? "unknown" : constructors [0].Name;
translator.ThrowError (luaState, String.Format ("{0} does not contain constructor({1}) argument match",
klass.UnderlyingSystemType, constructorName));
......
......@@ -196,7 +196,6 @@ namespace NLuaTest
}
}
/*
* Tests structure assignment
*/
......@@ -215,6 +214,21 @@ namespace NLuaTest
}
}
/*
* Tests structure creation via the default constructor
*/
[Test]
public void TestStructDefaultConstructor ()
{
using (Lua lua = new Lua ())
{
lua.DoString ("luanet.load_assembly('NLuaTest')");
lua.DoString ("TestStruct=luanet.import_type('NLuaTest.Mock.TestStruct')");
lua.DoString ("struct=TestStruct()");
Assert.AreEqual (new TestStruct(), (TestStruct)lua ["struct"]);
}
}
[Test]
public void TestStructHashesEqual()
{
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment