issue #61 add more tests for typed values

pull/81/head
Dibyendu Majumdar 9 years ago
parent d7a8aab035
commit dac7789d7a

@ -79,6 +79,7 @@ typedef LUAI_UACINT l_uacInt;
/* internal assertions for in-house debugging */
#if defined(lua_assert)
#warning lua_assert has been defined
#define check_exp(c,e) (lua_assert(c), (e))
/* to avoid problems with conditions too long */
#define lua_longassert(c) { if (!(c)) lua_assert(0); }

@ -57,6 +57,11 @@ checkmessage('local t: integer[] = {false}', 'value cannot be converted to integ
checkmessage('local x=function() return "hi" end; local t: integer[] = {x()}', 'value cannot be converted to integer')
checkmessage('local x=function() return "hi" end; local t: integer[] = {}; t[1] = x()', 'integer expected')
checkmessage('local i: integer, t: integer[], j: number', 'uninitialized integer[] in local variable')
checkmessage('local t: integer = "a"', 'Invalid local assignment')
checkmessage('local t: integer = function() return "hell" end', 'Invalid local assignment')
checkmessage('local function j() return "hell" end; local t: integer = j()', 'integer expected')
checkmessage('local t: integer = 5; local x=function() return "string" end; local f=function() t = x() end; f()', 'upvalue of integer type, cannot be set to non integer value')
checkmessage('local t: integer = 5.5', 'Invalid local assignment')
checkmessage('local t: number[] = {}; local t2: number[] = {1.0}; t=t2[1]', 'Invalid assignment: number[] expected')
checkmessage('local t: number[] = {}; t=1', 'Invalid assignment: number[] expected')
@ -73,3 +78,8 @@ checkmessage('local t: number[] = {false}', 'value cannot be converted to number
checkmessage('local x=function() return "hi" end; local t: number[] = {x()}', 'value cannot be converted to number')
checkmessage('local x=function() return "hi" end; local t: number[] = {}; t[1] = x()', 'number expected')
checkmessage('local i: integer, t: number[], j: number', 'uninitialized number[] in local variable')
checkmessage('local t: number = "a"', 'Invalid local assignment')
checkmessage('local t: number = function() return "hell" end', 'Invalid local assignment')
checkmessage('local function j() return "hell" end; local t: number = j()', 'number expected')
checkmessage('local t: number = 5.5; local x=function() return "string" end; local f=function() t = x() end; f()', 'upvalue of number type, cannot be set to non number value')
checkmessage('local t: number = 5', 'Invalid local assignment')

Loading…
Cancel
Save