added new (optional) types to lparser.c (no idea what does it affect)

master
annelin 3 years ago
parent be65484feb
commit 73de201165

@ -1445,9 +1445,9 @@ static void ravi_typecheck(LexState *ls, expdesc *v, ravi_type_map *var_types,
}
/* if we are calling a function then convert return types */
else if ((vartype == RAVI_TM_FLOAT || vartype == RAVI_TM_INTEGER ||
vartype == RAVI_TM_FLOAT_ARRAY || vartype == RAVI_TM_INTEGER_ARRAY ||
vartype == RAVI_TM_TABLE || vartype == RAVI_TM_STRING_OR_NIL ||
vartype == RAVI_TM_FUNCTION_OR_NIL || vartype == RAVI_TM_USERDATA_OR_NIL) &&
vartype == RAVI_TM_TABLE || vartype == RAVI_TM_STRING ||
vartype == RAVI_TM_FUNCTION || vartype == RAVI_TM_USERDATA ||
vartype == RAVI_TM_FLOAT_ARRAY || vartype == RAVI_TM_INTEGER_ARRAY) &&
v->k == VCALL) {
/* For local variable declarations that call functions e.g.
* local i = func()
@ -1474,9 +1474,9 @@ static void ravi_typecheck(LexState *ls, expdesc *v, ravi_type_map *var_types,
/* do we need to convert ? */
ravi_code_typecoersion(ls, a + (i - n), var_types[i], NULL);
}
else if (vartype == RAVI_TM_STRING_OR_NIL ||
vartype == RAVI_TM_FUNCTION_OR_NIL ||
vartype == RAVI_TM_USERDATA_OR_NIL) {
else if (vartype == RAVI_TM_FLOAT_OR_NIL || vartype == RAVI_TM_INTEGER_OR_NIL ||
vartype == RAVI_TM_TABLE_OR_NIL || vartype == RAVI_TM_STRING_OR_NIL ||
vartype == RAVI_TM_FUNCTION_OR_NIL || vartype == RAVI_TM_USERDATA_OR_NIL) {
TString *usertype = usertypes[n]; // NULL if var_types[n] is not userdata
/* we need to make sure that a register is assigned to 'v'
so that we can emit type assertion instructions. This would have

Loading…
Cancel
Save