mirror of
https://github.com/DarkPlacesEngine/gmqcc.git
synced 2025-01-31 12:00:38 +00:00
allow comparing explicitly against nil
This commit is contained in:
parent
663723f00a
commit
6cf25c0ec6
1 changed files with 6 additions and 2 deletions
|
@ -897,7 +897,11 @@ static bool parser_sy_apply_operator(parser_t *parser, shunt *sy)
|
|||
out = fold::binary(ctx, generated_op, exprs[0], exprs[1]);
|
||||
break;
|
||||
case opid2('!', '='):
|
||||
if (exprs[0]->m_vtype != exprs[1]->m_vtype) {
|
||||
#define NotComparable \
|
||||
exprs[0]->m_vtype != TYPE_NIL && \
|
||||
exprs[1]->m_vtype != TYPE_NIL && \
|
||||
exprs[0]->m_vtype != exprs[1]->m_vtype
|
||||
if (NotComparable) {
|
||||
compile_error(ctx, "invalid types used in expression: cannot perform comparison between types %s and %s",
|
||||
type_name[exprs[0]->m_vtype],
|
||||
type_name[exprs[1]->m_vtype]);
|
||||
|
@ -907,7 +911,7 @@ static bool parser_sy_apply_operator(parser_t *parser, shunt *sy)
|
|||
out = fold::binary(ctx, type_ne_instr[exprs[0]->m_vtype], exprs[0], exprs[1]);
|
||||
break;
|
||||
case opid2('=', '='):
|
||||
if (exprs[0]->m_vtype != exprs[1]->m_vtype) {
|
||||
if (NotComparable) {
|
||||
compile_error(ctx, "invalid types used in expression: cannot perform comparison between types %s and %s",
|
||||
type_name[exprs[0]->m_vtype],
|
||||
type_name[exprs[1]->m_vtype]);
|
||||
|
|
Loading…
Reference in a new issue