pike.git/
src/
pike_types.cmod
Branch:
Tag:
Non-build tags
All tags
No tags
2021-03-22
2021-03-22 14:12:22 by Henrik Grubbström (Grubba) <grubba@grubba.org>
ff85728dd10ee735f8773db52b79ab102b468571 (
28
lines) (+
15
/-
13
)
[
Show
|
Annotate
]
Branch:
master
Compiler
[Typechecker]
: Added flags to pike_types_le().
3102:
t = t2; } else if (zero_implied && (t2->type == T_ZERO)) { t = t1;
-
} else if ((t1->type == T_NOT) && pike_types_le(t1->car, t2)) {
+
} else if ((t1->type == T_NOT) && pike_types_le(t1->car, t2
, 0, 0
)) {
t = mixed_type_string;
-
} else if ((t2->type == T_NOT) && pike_types_le(t2->car, t1)) {
+
} else if ((t2->type == T_NOT) && pike_types_le(t2->car, t1
, 0, 0
)) {
t = mixed_type_string; } else if ((t1->type ^ '0') < (t2->type ^ '0')) { /* Note: Adjusted order to get markers first. */
3257:
/* FALLTHRU */ default: #if 0
-
if (pike_types_le(t1, t2)) {
+
if (pike_types_le(t1, t2
, 0, 0
)) {
t = t2;
-
} else if (pike_types_le(t2, t1)) {
+
} else if (pike_types_le(t2, t1
, 0, 0
)) {
t = t1; } else #endif /* 0 */
9098:
return !!res; }
-
int pike_types_le(struct pike_type *a,struct pike_type *b)
+
int pike_types_le(struct pike_type *a,
struct pike_type *b
,
+
enum pt_cmp_flags aflags, enum pt_cmp_flags bflags
)
{ struct remap_state remap; struct pike_type *tmp, *tmp2 = NULL;
9110:
memset(&remap, 0, sizeof(remap));
-
tmp = low_type_binop(PT_BINOP_MINUS, a, b, &remap,
0
,
0
, 0);
+
tmp = low_type_binop(PT_BINOP_MINUS, a, b, &remap,
aflags
,
bflags
, 0);
if (tmp) { struct mapping *markers = allocate_mapping(10);
9139:
fprintf(stderr, "\n\n"); tmp3 = low_type_binop(PT_BINOP_MINUS, a, b, &remap,
-
0
,
0
, PT_FLAG_REMAP_TRACE);
+
aflags
,
bflags
, PT_FLAG_REMAP_TRACE);
fprintf(stderr, "tmp3: "); simple_describe_type(tmp3); fprintf(stderr, "\n\n");
10546:
} else { copy_pike_type(res, soft_type); }
-
} else if (pike_types_le(soft_type, orig_type)) {
+
} else if (pike_types_le(soft_type, orig_type
, 0, 0
)) {
copy_pike_type(res, orig_type);
-
} else if (pike_types_le(orig_type, soft_type)) {
+
} else if (pike_types_le(orig_type, soft_type
, 0, 0
)) {
copy_pike_type(res, soft_type); } else { copy_pike_type(res, object_type_string);
10564:
} else { copy_pike_type(res, soft_type); }
-
} else if (pike_types_le(soft_type, orig_type)) {
+
} else if (pike_types_le(soft_type, orig_type
, 0, 0
)) {
copy_pike_type(res, soft_type);
-
} else if (pike_types_le(orig_type, soft_type)) {
+
} else if (pike_types_le(orig_type, soft_type
, 0, 0
)) {
copy_pike_type(res, orig_type); } }
12839:
implements_mode=0; /* Note the argument order. */
-
pike_types_le(type_b, type_a);
+
pike_types_le(type_b, type_a
, 0, 0
);
#if 0 if(!(implements_a && implements_b &&
12884:
implements_mode=0; /* Note the argument order. */
-
pike_types_le(type_b, type_a);
+
pike_types_le(type_b, type_a
, 0, 0
);
#if 0 if(!(implements_a && implements_b &&