pike.git/
src/
pike_types.cmod
Branch:
Tag:
Non-build tags
All tags
No tags
2020-12-05
2020-12-05 14:53:10 by Henrik Grubbström (Grubba) <grubba@grubba.org>
4ba44c76795ea012a6b57ba2c9e33bc67c827f17 (
14
lines) (+
9
/-
5
)
[
Show
|
Annotate
]
Branch:
master
Compiler
[Typechecker]
: Improved checking of function types.
4151:
((op & PT_BINOP_MINUS) ? PT_BINOP_INVERSE_MINUS : 0) | ((op & PT_BINOP_INVERSE_MINUS) ? PT_BINOP_MINUS : 0)); }
+
#endif
/**
-
* Low-level
intersection
(
aka
And
)
of
two types.
+
* Low-level
set
operation
(
AND,
MINUS, OR, etc
)
on
two types.
* * Note: * There are two major operating modes; the external, where
4575:
if (!bret) bret = bi->cdr; tmp = low_type_binop(op, aret, bret, remap,
-
aflags, bflags, remap_flags);
+
aflags
| PT_FLAG_CMP_VOIDABLE
,
+
bflags
| PT_FLAG_CMP_VOIDABLE
, remap_flags);
if (!tmp) goto function_fail; nargs = pop_stack_mark();
4613:
if (!aret) aret = ai->cdr; if (!bret) bret = bi->cdr;
-
tmp = low_type_binop(op, aret, bret, NULL, aflags
,
bflags
,
-
remap_flags);
+
tmp = low_type_binop(op, aret, bret, NULL,
+
aflags
| PT_FLAG_CMP_VOIDABLE
,
+
bflags | PT_FLAG_CMP_VOIDABLE,
remap_flags);
if (!tmp) { if (got_full) goto function_next; got_empty = 1;
4629:
if (got_empty) goto function_next; }
-
/* Note: We have pushed two
typoe
stack marks earlier,
+
/* Note: We have pushed two
type
stack marks earlier,
* so we need to get rid of them before returning. */ if (!got_full) {