Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
ruanhaishen
NLua
Commits
abdaf4af
Commit
abdaf4af
authored
Dec 23, 2014
by
Vinicius Jarina
Browse files
Merge pull request #126 from isaacbrodsky/master
Create structs with default parameterless constructor
parents
f9c5a807
c6a65b2a
Changes
2
Hide whitespace changes
Inline
Side-by-side
Core/NLua/Metatables.cs
View file @
abdaf4af
...
@@ -1114,6 +1114,14 @@ namespace NLua
...
@@ -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
;
string
constructorName
=
(
constructors
.
Length
==
0
)
?
"unknown"
:
constructors
[
0
].
Name
;
translator
.
ThrowError
(
luaState
,
String
.
Format
(
"{0} does not contain constructor({1}) argument match"
,
translator
.
ThrowError
(
luaState
,
String
.
Format
(
"{0} does not contain constructor({1}) argument match"
,
klass
.
UnderlyingSystemType
,
constructorName
));
klass
.
UnderlyingSystemType
,
constructorName
));
...
...
tests/LuaTests.cs
View file @
abdaf4af
...
@@ -196,7 +196,6 @@ namespace NLuaTest
...
@@ -196,7 +196,6 @@ namespace NLuaTest
}
}
}
}
/*
/*
* Tests structure assignment
* Tests structure assignment
*/
*/
...
@@ -215,6 +214,21 @@ namespace NLuaTest
...
@@ -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
]
[
Test
]
public
void
TestStructHashesEqual
()
public
void
TestStructHashesEqual
()
{
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment